引入3d模型

This commit is contained in:
2026-04-20 21:52:35 +08:00
parent ee5cec6de4
commit d6e1797f08
23 changed files with 1890 additions and 288 deletions

View File

@@ -39,17 +39,34 @@ TOOL_DEFINITIONS = [
"function": {
"name": "transform_view",
"description": (
"将一张图片转换为多个不同视角。"
"使用 Zero123++ 模型从单张图片生成 6 个固定视角的图片。"
"适用于建筑、物体等需要从不同角度查看的场景。"
"输入图片必须是正方形(或会被自动裁切为正方形),建议分辨率 >= 320x320。"
"输出 6 个视角:方位角 30°/90°/150°/210°/270°/330°"
"仰角交替为 30°/-20°正俯视/微仰视)。"
"此工具需要参考图作为输入——必须先有用户上传的图片才能使用"
"将一张图片转换为多个不同视角。需要用户先上传参考图。\n"
"可选模型:\n"
"- zero123plus默认~15s/次Zero123++ 直接输出 6 个固定视角"
"(方位角 30/90/150/210/270/330°仰角交替 30/-20°适合快速预览"
"对建筑大角度可能有错位。\n"
"- trellis~105s/次,先 3D 重建再重绘,"
"支持任意方位角 + 原画风保留,适合卡通描边风格建筑"
),
"parameters": {
"type": "object",
"properties": {},
"properties": {
"model_id": {
"type": "string",
"enum": ["zero123plus", "trellis"],
"default": "zero123plus",
"description": "视角变换模型;默认 zero123plustrellis 画风还原更强但慢",
},
"azimuths": {
"type": "array",
"items": {"type": "integer"},
"description": "mesh 管道专用自定义方位角数组0-359默认 [0,60,120,180,240,300]",
},
"preserve_style": {
"type": "boolean",
"default": True,
"description": "mesh 管道专用:是否对抽帧结果走 IP-Adapter+ControlNet 重绘还原原画风",
},
},
"required": [],
},
},
@@ -92,7 +109,13 @@ async def execute_tool(
"success": False,
"error": "视角变换需要一张输入图片,请先上传参考图",
}
result = await transform_view(ref_image_urls[0])
result = await transform_view(
ref_image_urls[0],
model_id=arguments.get("model_id"),
azimuths=arguments.get("azimuths"),
elevations=arguments.get("elevations"),
preserve_style=arguments.get("preserve_style", True),
)
return result
return {"success": False, "error": f"未知工具: {tool_name}"}