Skip to main content
Glama
models.py10.6 kB
from pydantic import BaseModel, Field from typing import Optional, List, Dict, Any class TextToModelRequest(BaseModel): prompt: str = Field(..., description="文本描述,指引3D模型生成,最大1024字符。支持多语言,不支持emoji和部分特殊字符。") model_version: Optional[str] = Field("v2.5-20250123", description="模型版本,可选:v2.5-20250123, v2.0-20240919, v1.4-20240625。默认v2.5-20250123。") negative_prompt: Optional[str] = Field(None, description="反向描述,辅助生成与prompt相反的内容,最大255字符。") face_limit: Optional[int] = Field(None, description="输出模型面数上限。未设置时自适应。仅v2.0及以上版本有效。") texture: Optional[bool] = Field(True, description="是否生成贴图。默认True。仅v2.0及以上版本有效。") pbr: Optional[bool] = Field(True, description="是否生成PBR贴图。默认True。仅v2.0及以上版本有效。若为True,texture自动为True。") model_seed: Optional[int] = Field(None, description="模型生成随机种子。相同种子可复现同一几何。仅v2.0及以上版本有效。") texture_seed: Optional[int] = Field(None, description="贴图生成随机种子。相同种子可复现同一贴图。仅v2.0及以上版本有效。") texture_quality: Optional[str] = Field("standard", description="贴图质量,可选:standard, detailed。默认standard。仅v2.0及以上版本有效。") style: Optional[str] = Field(None, description="风格化类型,如person:person2cartoon, animal:venom, object:clay等。详见官方文档。") auto_size: Optional[bool] = Field(False, description="是否自动缩放到真实世界尺寸(米)。默认False。仅v2.0及以上版本有效。") quad: Optional[bool] = Field(False, description="是否输出四边面网格。默认False。若为True且未设置face_limit,默认10000。仅v2.0及以上版本有效。") class ImageToModelRequest(BaseModel): file_path: Optional[str] = Field(None, description="本地图片文件路径,支持webp、jpeg、png。最大20MB。与url、file_token、object互斥。") file_type: Optional[str] = Field("jpeg", description="图片文件类型,推荐与实际文件一致。") url: Optional[str] = Field(None, description="图片直链URL,支持jpeg/png,最大20MB。与file_path、file_token、object互斥。") file_token: Optional[str] = Field(None, description="图片上传后返回的token。与file_path、url、object互斥。") object: Optional[dict] = Field(None, description="STS上传返回的对象信息。与file_path、url、file_token互斥。") model_version: Optional[str] = Field("v2.5-20250123", description="模型版本,同TextToModelRequest。") face_limit: Optional[int] = Field(None, description="输出模型面数上限。未设置时自适应。仅v2.0及以上版本有效。") texture: Optional[bool] = Field(True, description="是否生成贴图。默认True。仅v2.0及以上版本有效。") pbr: Optional[bool] = Field(True, description="是否生成PBR贴图。默认True。仅v2.0及以上版本有效。若为True,texture自动为True。") model_seed: Optional[int] = Field(None, description="模型生成随机种子。仅v2.0及以上版本有效。") texture_seed: Optional[int] = Field(None, description="贴图生成随机种子。仅v2.0及以上版本有效。") texture_quality: Optional[str] = Field("standard", description="贴图质量,可选:standard, detailed。默认standard。仅v2.0及以上版本有效。") texture_alignment: Optional[str] = Field("original_image", description="贴图对齐方式,可选original_image/geometry。默认original_image。") style: Optional[str] = Field(None, description="风格化类型,详见官方文档。") auto_size: Optional[bool] = Field(False, description="是否自动缩放到真实世界尺寸。默认False。仅v2.0及以上版本有效。") orientation: Optional[str] = Field("default", description="模型朝向,可选align_image/default。默认default。") quad: Optional[bool] = Field(False, description="是否输出四边面网格。默认False。仅v2.0及以上版本有效。") class MultiviewToModelRequest(BaseModel): files: List[Dict[str, Any]] = Field(..., description="多视图图片输入,列表顺序为[front, left, back, right],每项为dict,需包含type和file_token。front必填。") model_version: Optional[str] = Field("v2.5-20250123", description="模型版本,同TextToModelRequest。") face_limit: Optional[int] = Field(None, description="输出模型面数上限。未设置时自适应。仅v2.0及以上版本有效。") texture: Optional[bool] = Field(True, description="是否生成贴图。默认True。仅v2.0及以上版本有效。") pbr: Optional[bool] = Field(True, description="是否生成PBR贴图。默认True。仅v2.0及以上版本有效。若为True,texture自动为True。") model_seed: Optional[int] = Field(None, description="模型生成随机种子。仅v2.0及以上版本有效。") texture_seed: Optional[int] = Field(None, description="贴图生成随机种子。仅v2.0及以上版本有效。") texture_quality: Optional[str] = Field("standard", description="贴图质量,可选:standard, detailed。默认standard。仅v2.0及以上版本有效。") style: Optional[str] = Field(None, description="风格化类型,详见官方文档。") auto_size: Optional[bool] = Field(False, description="是否自动缩放到真实世界尺寸。默认False。仅v2.0及以上版本有效。") quad: Optional[bool] = Field(False, description="是否输出四边面网格。默认False。仅v2.0及以上版本有效。") class TextureModelRequest(BaseModel): original_model_task_id: str = Field(..., description="原始模型任务ID,需为text_to_model/image_to_model/multiview_to_model类型且成功。") texture: Optional[bool] = Field(True, description="是否生成贴图。默认True。") pbr: Optional[bool] = Field(True, description="是否生成PBR贴图。默认True。若为True,texture自动为True。") model_seed: Optional[int] = Field(None, description="模型生成随机种子。") texture_seed: Optional[int] = Field(None, description="贴图生成随机种子。") texture_quality: Optional[str] = Field("standard", description="贴图质量,可选:standard, detailed。默认standard。") texture_alignment: Optional[str] = Field("original_image", description="贴图对齐方式,可选original_image/geometry。默认original_image。") class RefineModelRequest(BaseModel): draft_model_task_id: str = Field(..., description="草稿模型任务ID,仅支持text_to_model/image_to_model/multiview_to_model类型且成功。v2.0及以上版本不支持。") class AnimatePrerigcheckRequest(BaseModel): original_model_task_id: str = Field(..., description="原始模型任务ID,支持text_to_model/image_to_model/multiview_to_model/texture_model/refine_model类型且成功。") class AnimateRigRequest(BaseModel): original_model_task_id: str = Field(..., description="原始模型任务ID,支持text_to_model/image_to_model/multiview_to_model/texture_model/refine_model类型且成功。") out_format: Optional[str] = Field("glb", description="输出文件格式,可选glb/fbx,默认glb。") topology: Optional[str] = Field(None, description="骨骼拓扑结构,可选bip/quad。") spec: Optional[str] = Field("tripo", description="骨骼规格,可选mixamo/tripo,默认tripo。") class AnimateRetargetRequest(BaseModel): original_model_task_id: str = Field(..., description="骨骼绑定任务ID,仅支持rig类型且成功。") out_format: Optional[str] = Field("glb", description="输出文件格式,可选glb/fbx,默认glb。") animation: str = Field(..., description="动画类型,可选preset:idle/preset:walk/preset:climb/preset:jump/preset:run/preset:slash/preset:shoot/preset:hurt/preset:fall/preset:turn。") bake_animation: Optional[bool] = Field(True, description="是否烘焙动画,仅fbx支持。默认True。") class StylizeModelRequest(BaseModel): original_model_task_id: str = Field(..., description="原始模型任务ID,支持text_to_model/image_to_model/multiview_to_model/texture_model/refine_model/animate_rig/animate_retarget类型且成功。") style: str = Field(..., description="风格类型,可选lego/voxel/voronoi/minecraft。") block_size: Optional[int] = Field(80, description="网格大小,仅minecraft风格有效,范围32-128,默认80。") class ConvertModelRequest(BaseModel): original_model_task_id: str = Field(..., description="原始模型任务ID,支持text_to_model/image_to_model/multiview_to_model/texture_model/refine_model/animate_rig/animate_retarget/convert类型且成功。") format: str = Field(..., description="目标格式,可选GLTF/USDZ/FBX/OBJ/STL/3MF。") quad: Optional[bool] = Field(False, description="是否四边面重拓扑。默认False。") force_symmetry: Optional[bool] = Field(False, description="四边面重拓扑时是否强制对称。默认False。") face_limit: Optional[int] = Field(10000, description="输出模型面数上限。默认10000。") flatten_bottom: Optional[bool] = Field(False, description="是否压平底部。默认False。") flatten_bottom_threshold: Optional[float] = Field(0.01, description="压平底部深度,仅flatten_bottom为True时有效。默认0.01。") texture_size: Optional[int] = Field(4096, description="贴图分辨率,默认4096。") texture_format: Optional[str] = Field("JPEG", description="贴图格式,可选BMP/DPX/HDR/JPEG/OPEN_EXR/PNG/TARGA/TIFF/WEBP。默认JPEG。FBX默认PNG。") pivot_to_center_bottom: Optional[bool] = Field(False, description="是否将枢轴点设置为底部中心。默认False。") scale_factor: Optional[float] = Field(1.0, description="缩放因子,默认1。") class TaskIdRequest(BaseModel): task_id: str = Field(..., description="任务ID。用于查询任务状态和结果。") class UploadImageRequest(BaseModel): file_path: str = Field(..., description="本地图片文件路径,支持webp、jpeg、png。最大20MB。") class BalanceResponse(BaseModel): balance: float = Field(..., description="API钱包余额。") frozen: float = Field(..., description="冻结余额,任务运行或交易中时非零。")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lxy2109/tripo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server