51 lines
3.3 KiB
Python
Executable File
51 lines
3.3 KiB
Python
Executable File
from pydantic import BaseModel, Field, confloat, HttpUrl
|
||
from typing import Optional, List, Dict, Any
|
||
|
||
|
||
class ImageTo3DRequest(BaseModel):
|
||
input_images: List[str] = Field(..., description="输入图片路径列表")
|
||
model: str = Field(default="single", description="模型类型: single 或 multi")
|
||
bucket_name: str = Field(..., description="输入图片路径列表")
|
||
user_id: str = Field(..., description="用户id")
|
||
task_id: str = Field(...)
|
||
callback_url: str # 必填,客户端提供的回调地址
|
||
|
||
|
||
class ToSVGRequest(BaseModel):
|
||
minio_glb_path: str = Field(..., description="输入图片路径列表")
|
||
bucket_name: str = Field(..., description="输入图片路径列表")
|
||
user_id: str = Field(..., description="用户id")
|
||
task_id: str = Field(...)
|
||
callback_url: str # 必填
|
||
|
||
|
||
class Tripo3dApiModel(BaseModel):
|
||
input_images: List[str] = Field(..., description="输入图片路径列表")
|
||
bucket_name: str = Field(..., description="输入图片路径列表")
|
||
user_id: str = Field(..., description="用户id")
|
||
callback_url: str # 必填,客户端提供的回调地址
|
||
task_id: str = Field()
|
||
model: str = Field(default="single", description="模型类型: single 或 multi")
|
||
|
||
model_version: Optional[str] = Field(default="v3.1-20260211", description="Model version, e.g. v3.1-20260211 / v3.0-20250812 / v2.5-20250123")
|
||
poll_interval: Optional[float] = Field(default=2.0, description="Polling interval (seconds)")
|
||
poll_timeout: Optional[float] = Field(default=1800.0, description="Max polling time (seconds)")
|
||
request_timeout: Optional[float] = Field(default=120.0, description="HTTP request timeout (seconds)")
|
||
texture: Optional[bool] = Field(default=True, description="是否生成纹理")
|
||
pbr: Optional[bool] = Field(default=True, description="是否生成 PBR 材质")
|
||
texture_quality: Optional[str] = Field(default="standard", description="Texture quality: standard / detailed")
|
||
texture_alignment: Optional[str] = Field(default="original_image", description="Texture alignment mode: original_image / geometry")
|
||
orientation: Optional[str] = Field(default="default", description="Orientation mode: default / align_image")
|
||
face_limit: Optional[int] = Field(default=None, description="限制输出模型的面数")
|
||
model_seed: Optional[int] = Field(default=None, description="模型生成随机种子")
|
||
texture_seed: Optional[int] = Field(default=None, description="纹理生成随机种子")
|
||
auto_size: Optional[str] = Field(default=None, description="Auto size option")
|
||
quad: Optional[str] = Field(default=None, description="Enable quad remeshing")
|
||
compress: Optional[str] = Field(default=None, description="Compress option")
|
||
generate_parts: Optional[str] = Field(default=None, description="Generate segmented parts")
|
||
smart_low_poly: Optional[str] = Field(default=None, description="Smart low poly optimization")
|
||
download_outputs: Optional[bool] = Field(default=True, description="是否下载输出文件(现在改为上传到 MinIO)")
|
||
save_task_json: Optional[bool] = Field(default=True, description="是否保存 task JSON")
|
||
print_payload: Optional[bool] = Field(default=False, description="是否打印请求 payload")
|
||
print_output: Optional[bool] = Field(default=True, description="是否打印输出结果")
|