Spaces:
Sleeping
Sleeping
File size: 1,521 Bytes
857939a c74caed 857939a e61e906 c74caed e61e906 857939a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
from fastapi import APIRouter, HTTPException, status
import logging
from ....schemas.image import ImageGenerationRequest, ImageGenerationResponse
from ....services.image_service import image_service
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/images", tags=["images"])
@router.post("/generate", response_model=ImageGenerationResponse)
async def generate_image(request: ImageGenerationRequest):
"""
Generate an image using OpenAI DALL-E, optionally with a reference image
Returns base64 encoded image data directly
"""
try:
result = await image_service.generate_image(
prompt=request.prompt,
size=request.size,
n=request.n,
model=request.model,
reference_image=request.reference_image,
)
if not result["success"]:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=result["message"],
)
return ImageGenerationResponse(
success=True,
message=result["message"],
images=result.get("images", []),
count=result.get("count", 0),
)
except HTTPException:
raise
except Exception as e:
logger.error(f"Unexpected error in generate_image: {str(e)}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail="An unexpected error occurred while generating the image",
)
|