引入3d模型
This commit is contained in:
@@ -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": "视角变换模型;默认 zero123plus(快),trellis 画风还原更强但慢",
|
||||
},
|
||||
"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}"}
|
||||
|
||||
Reference in New Issue
Block a user