Files
realesrgan-api/app/schemas/upscale.py
2026-02-16 19:56:25 +01:00

58 lines
1.5 KiB
Python

"""Schemas for upscaling operations."""
from typing import Optional
from pydantic import BaseModel, Field
class UpscaleOptions(BaseModel):
"""Options for image upscaling."""
model: str = Field(
default='RealESRGAN_x4plus',
description='Model to use for upscaling (RealESRGAN_x2plus, RealESRGAN_x3plus, RealESRGAN_x4plus, etc.)'
)
tile_size: Optional[int] = Field(
default=None,
description='Tile size for processing large images to avoid OOM'
)
tile_pad: Optional[int] = Field(
default=None,
description='Padding between tiles'
)
outscale: Optional[float] = Field(
default=None,
description='Upsampling scale factor'
)
class JobStatus(BaseModel):
"""Job status information."""
job_id: str
status: str # queued, processing, completed, failed
model: str
progress: float = Field(default=0.0, description='Progress as percentage 0-100')
result_path: Optional[str] = None
error: Optional[str] = None
created_at: str
started_at: Optional[str] = None
completed_at: Optional[str] = None
processing_time_seconds: Optional[float] = None
class UpscaleResult(BaseModel):
"""Upscaling result."""
success: bool
message: str
processing_time_seconds: float
model: str
input_size: Optional[tuple] = None
output_size: Optional[tuple] = None
class ModelInfo(BaseModel):
"""Information about an available model."""
name: str
scale: int
path: str
size_mb: float
available: bool