Files
ALwrity/backend/routers/image_studio_router.py
ajaysi 85d6cc1d20 refactor(phase3-session-b3): extract create, transform, compress, convert into sub-routers
Extracted remaining 4 endpoint groups:
- create.py: 7 endpoints (create, 3xtemplates, providers, estimate-cost, platform-specs)
- transform.py: 4 endpoints (image-to-video, talking-avatar, estimate-cost, video serving)
- compress.py: 5 endpoints (compress, batch, estimate, formats, presets)
- convert.py: 4 endpoints (convert-format, batch, supported, recommendations)

Legacy router is now empty (only imports + empty router definition).
All 33 routes preserved. Package is fully modular.
2026-05-14 09:11:51 +05:30

49 lines
2.1 KiB
Python

"""API endpoints for Image Studio operations."""
import base64
from pathlib import Path
from typing import Dict, Any, Optional
from fastapi import APIRouter, Depends, HTTPException, status, Query
from fastapi.responses import FileResponse
from .image_studio.models import (
CreateImageRequest, CostEstimationRequest,
EditImageRequest, EditImageResponse, EditOperationsResponse,
EditModelsResponse, EditModelRecommendationRequest, EditModelRecommendationResponse,
UpscaleImageRequest, UpscaleImageResponse,
FaceSwapRequest, FaceSwapResponse, FaceSwapModelsResponse,
FaceSwapModelRecommendationRequest, FaceSwapModelRecommendationResponse,
ControlImageRequest, ControlImageResponse, ControlOperationsResponse,
SocialOptimizeRequest, SocialOptimizeResponse, PlatformFormatsResponse,
TransformImageToVideoRequestModel, TalkingAvatarRequestModel,
TransformVideoResponse, TransformCostEstimateRequest, TransformCostEstimateResponse,
CompressImageRequest, CompressImageResponse, CompressBatchRequest, CompressBatchResponse,
CompressionEstimateRequest, CompressionEstimateResponse,
CompressionFormatsResponse, CompressionPresetsResponse,
ConvertFormatRequest, ConvertFormatResponse, ConvertFormatBatchRequest, ConvertFormatBatchResponse,
SupportedFormatsResponse, FormatRecommendationsResponse,
)
from .image_studio.deps import get_studio_manager, _require_user_id
from services.image_studio import (
ImageStudioManager,
CreateStudioRequest,
EditStudioRequest,
ControlStudioRequest,
SocialOptimizerRequest,
TransformImageToVideoRequest,
TalkingAvatarRequest,
)
from services.image_studio.face_swap_service import FaceSwapStudioRequest
from services.image_studio.upscale_service import UpscaleStudioRequest
from services.image_studio.templates import Platform, TemplateCategory
from middleware.auth_middleware import get_current_user, get_current_user_with_query_token
from utils.logger_utils import get_service_logger
logger = get_service_logger("api.image_studio")
router = APIRouter(prefix="/api/image-studio", tags=["image-studio"])