Extracted 4 endpoint groups into separate sub-router modules:
- health.py: 1 endpoint (GET /health)
- upscale.py: 1 endpoint (POST /upscale)
- control.py: 2 endpoints (POST /control/process, GET /control/operations)
- social.py: 2 endpoints (POST /social/optimize, GET /social/platforms/{platform}/formats)
__init__.py now composes these sub-routers into the legacy router.
All 33 routes preserved. No functional changes.
41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
"""Upscale Studio endpoint."""
|
|
|
|
from typing import Dict, Any
|
|
from fastapi import APIRouter, Depends, HTTPException
|
|
|
|
from .models import UpscaleImageRequest, UpscaleImageResponse
|
|
from .deps import get_studio_manager, _require_user_id
|
|
from services.image_studio import ImageStudioManager
|
|
from services.image_studio.upscale_service import UpscaleStudioRequest
|
|
from middleware.auth_middleware import get_current_user
|
|
from utils.logger_utils import get_service_logger
|
|
|
|
logger = get_service_logger("api.image_studio")
|
|
router = APIRouter(tags=["image-studio"])
|
|
|
|
|
|
@router.post("/upscale", response_model=UpscaleImageResponse, summary="Upscale Image")
|
|
async def upscale_image(
|
|
request: UpscaleImageRequest,
|
|
current_user: Dict[str, Any] = Depends(get_current_user),
|
|
studio_manager: ImageStudioManager = Depends(get_studio_manager),
|
|
):
|
|
"""Upscale an image using Stability AI pipelines."""
|
|
try:
|
|
user_id = _require_user_id(current_user, "image upscaling")
|
|
upscale_request = UpscaleStudioRequest(
|
|
image_base64=request.image_base64,
|
|
mode=request.mode,
|
|
target_width=request.target_width,
|
|
target_height=request.target_height,
|
|
preset=request.preset,
|
|
prompt=request.prompt,
|
|
)
|
|
result = await studio_manager.upscale_image(upscale_request, user_id=user_id)
|
|
return UpscaleImageResponse(**result)
|
|
except HTTPException:
|
|
raise
|
|
except Exception as e:
|
|
logger.error(f"[Upscale Image] ❌ Error: {e}", exc_info=True)
|
|
raise HTTPException(status_code=500, detail=f"Image upscaling failed: {e}")
|