FastAPI async wrapper for Freepik cloud AI API supporting image generation (Mystic, Flux Dev/Pro, SeedReam), video generation (Kling, MiniMax, Seedance), image editing (upscale, relight, style transfer, expand, inpaint), and utilities (background removal, classifier, audio isolation). Includes async task tracking with polling, Docker containerization, and Gitea CI/CD workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class UpscaleCreativeRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
prompt: Optional[str] = None
|
|
scale: Optional[int] = Field(None, ge=2, le=4)
|
|
creativity: Optional[float] = Field(None, ge=0.0, le=1.0)
|
|
resemblance: Optional[float] = Field(None, ge=0.0, le=1.0)
|
|
|
|
|
|
class UpscalePrecisionRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
scale: Optional[int] = Field(None, ge=2, le=4)
|
|
|
|
|
|
class RelightRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
prompt: Optional[str] = None
|
|
light_source: Optional[str] = None
|
|
intensity: Optional[float] = Field(None, ge=0.0, le=1.0)
|
|
|
|
|
|
class StyleTransferRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
style_reference: str = Field(..., description='Base64-encoded style reference image')
|
|
strength: Optional[float] = Field(None, ge=0.0, le=1.0)
|
|
|
|
|
|
class ExpandRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
prompt: Optional[str] = None
|
|
direction: Optional[str] = Field(None, description='Expansion direction')
|
|
|
|
|
|
class InpaintRequest(BaseModel):
|
|
image: str = Field(..., description='Base64-encoded image')
|
|
mask: str = Field(..., description='Base64-encoded mask image')
|
|
prompt: str = Field(..., min_length=1)
|