from pydantic import BaseModel, Field class RevePostprocessingOperation(BaseModel): process: str = Field(..., description="The postprocessing operation: upscale or remove_background.") upscale_factor: int | None = Field( None, description="Upscale factor (2, 3, or 4). Only used when process is upscale.", ge=2, le=4, ) class ReveImageCreateRequest(BaseModel): prompt: str = Field(...) aspect_ratio: str | None = Field(...) version: str = Field(...) test_time_scaling: int = Field( ..., description="If included, the model will spend more effort making better images. Values between 1 and 15.", ge=1, le=15, ) postprocessing: list[RevePostprocessingOperation] | None = Field( None, description="Optional postprocessing operations to apply after generation." ) class ReveImageEditRequest(BaseModel): edit_instruction: str = Field(...) reference_image: str = Field(..., description="A base64 encoded image to use as reference for the edit.") aspect_ratio: str | None = Field(...) version: str = Field(...) test_time_scaling: int | None = Field( ..., description="If included, the model will spend more effort making better images. Values between 1 and 15.", ge=1, le=15, ) postprocessing: list[RevePostprocessingOperation] | None = Field( None, description="Optional postprocessing operations to apply after generation." ) class ReveImageRemixRequest(BaseModel): prompt: str = Field(...) reference_images: list[str] = Field(..., description="A list of 1-6 base64 encoded reference images.") aspect_ratio: str | None = Field(...) version: str = Field(...) test_time_scaling: int | None = Field( ..., description="If included, the model will spend more effort making better images. Values between 1 and 15.", ge=1, le=15, ) postprocessing: list[RevePostprocessingOperation] | None = Field( None, description="Optional postprocessing operations to apply after generation." ) class ReveImageResponse(BaseModel): image: str | None = Field(None, description="The base64 encoded image data.") request_id: str | None = Field(None, description="A unique id for the request.") credits_used: float | None = Field(None, description="The number of credits used for this request.") version: str | None = Field(None, description="The specific model version used.") content_violation: bool | None = Field( None, description="Indicates whether the generated image violates the content policy." )