引入3d模型
This commit is contained in:
@@ -225,9 +225,35 @@ IMAGE_MODELS: dict[str, dict[str, Any]] = {
|
||||
"output_format": "png",
|
||||
},
|
||||
},
|
||||
# Mesh 管道专用的内部模型(internal=True 不展示到前端下拉):
|
||||
# 输入两张图:image=原图做 IP-Adapter 风格参考;controlnet_input=normal/depth 结构参考。
|
||||
# 用途:在 Stage 3 对 Trellis 抽出来的 normal 帧做二次重绘,还原原画风。
|
||||
"ip-adapter-controlnet-depth": {
|
||||
"id": "ip-adapter-controlnet-depth",
|
||||
"name": "IP-Adapter + ControlNet Depth (内部)",
|
||||
"provider": "replicate",
|
||||
"model_id": "chigozienri/ip_adapter-sdxl-controlnet-depth:0436c8702ef52616be5c30948551b3af6a86c821cca9b01f11ac297624fff14c",
|
||||
"description": "Mesh 管道 Stage 3 专用:IP-Adapter 保风格 + ControlNet 保几何",
|
||||
"internal": True,
|
||||
"supports_ref_image": True,
|
||||
"ref_image_param": "image", # IP-Adapter 参考图字段
|
||||
"default_params": {
|
||||
"scale": 0.75, # IP-Adapter 权重(建议 0.7-0.8)
|
||||
"controlnet_conditioning_scale": 0.8, # 结构约束(建议 0.7-0.9)
|
||||
"prompt": "same building, same art style, consistent with reference",
|
||||
"negative_prompt": "blurry, distorted, different style, realistic photo, photograph",
|
||||
"num_outputs": 1,
|
||||
"num_inference_steps": 30,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def get_style_restore_model_id() -> str:
|
||||
"""Mesh 管道 Stage 3 使用的内部模型短 ID。"""
|
||||
return "ip-adapter-controlnet-depth"
|
||||
|
||||
|
||||
# ─── 视角变换模型注册表 ─────────────────────────────────
|
||||
#
|
||||
# 视角变换模型不用于生图,而是将已有图片转换为不同视角。
|
||||
@@ -240,6 +266,7 @@ VIEW_TRANSFORM_MODELS: dict[str, dict[str, Any]] = {
|
||||
"provider": "replicate",
|
||||
"model_id": "jd7h/zero123plusplus:c69c6559a29011b576f1ff0371b3bc1add2856480c60520c7e9ce0b40a6e9052",
|
||||
"description": "单图生成 6 个固定视角,适合建筑/物体的多角度预览",
|
||||
"pipeline": "grid",
|
||||
"output_views": [
|
||||
{"azimuth": 30, "elevation": 30},
|
||||
{"azimuth": 90, "elevation": -20},
|
||||
@@ -248,7 +275,46 @@ VIEW_TRANSFORM_MODELS: dict[str, dict[str, Any]] = {
|
||||
{"azimuth": 270, "elevation": 30},
|
||||
{"azimuth": 330, "elevation": -20},
|
||||
],
|
||||
"grid_layout": {"cols": 3, "rows": 2},
|
||||
"grid_layout": {"cols": 2, "rows": 3},
|
||||
"enabled": True,
|
||||
},
|
||||
"trellis": {
|
||||
"id": "trellis",
|
||||
"name": "Trellis (Mesh Pipeline)",
|
||||
"provider": "replicate",
|
||||
"model_id": "firtoz/trellis:e8f6c45206993f297372f5436b90350817bd9b4a0d52d2a76df50c1c8afa2b3c",
|
||||
"description": "3D 重建 + 任意视角 + 风格还原,建筑友好(~30s 重建 + 72s/张重绘)",
|
||||
"pipeline": "mesh",
|
||||
"default_params": {
|
||||
"texture_size": 1024,
|
||||
"mesh_simplify": 0.95,
|
||||
"generate_color": True,
|
||||
"generate_normal": True,
|
||||
"generate_model": True,
|
||||
"save_gaussian_ply": False,
|
||||
"ss_sampling_steps": 12,
|
||||
"slat_sampling_steps": 12,
|
||||
"ss_guidance_strength": 7.5,
|
||||
"slat_guidance_strength": 3.0,
|
||||
},
|
||||
"default_azimuths": [0, 60, 120, 180, 240, 300],
|
||||
"default_elevations": [0, 0, 0, 0, 0, 0],
|
||||
"enabled": True,
|
||||
},
|
||||
"hunyuan3d": {
|
||||
"id": "hunyuan3d",
|
||||
"name": "Hunyuan3D-2 (高质量)",
|
||||
"provider": "replicate",
|
||||
"model_id": "tencent/hunyuan3d-2:b1b9449a1277e10402781c5d41eb30c0a0683504fb23fab591ca9dfc2aabe1cb",
|
||||
"description": "几何质量最佳(~127s),需自定义渲染器(二期启用)",
|
||||
"pipeline": "mesh",
|
||||
"default_params": {
|
||||
"steps": 50,
|
||||
"guidance_scale": 5.5,
|
||||
"octree_resolution": 256,
|
||||
"remove_background": True,
|
||||
},
|
||||
"enabled": False,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -261,14 +327,16 @@ def get_view_transform_model_config(model_id: str | None = None) -> dict[str, An
|
||||
|
||||
|
||||
def get_view_transform_models_list() -> list[dict]:
|
||||
"""返回前端下拉列表所需的视角变换模型摘要信息。"""
|
||||
"""返回前端下拉列表所需的视角变换模型摘要信息(只包含 enabled=True 的)。"""
|
||||
return [
|
||||
{
|
||||
"id": cfg["id"],
|
||||
"name": cfg["name"],
|
||||
"description": cfg["description"],
|
||||
"pipeline": cfg.get("pipeline", "grid"),
|
||||
}
|
||||
for cfg in VIEW_TRANSFORM_MODELS.values()
|
||||
if cfg.get("enabled", True)
|
||||
]
|
||||
|
||||
|
||||
@@ -297,7 +365,7 @@ def get_ref_image_model_id() -> str | None:
|
||||
|
||||
|
||||
def get_image_models_list() -> list[dict]:
|
||||
"""返回前端下拉列表所需的模型摘要信息。"""
|
||||
"""返回前端下拉列表所需的模型摘要信息(过滤掉 internal=True 的内部模型)。"""
|
||||
return [
|
||||
{
|
||||
"id": cfg["id"],
|
||||
@@ -306,6 +374,7 @@ def get_image_models_list() -> list[dict]:
|
||||
"supports_ref_image": cfg.get("supports_ref_image", False),
|
||||
}
|
||||
for cfg in IMAGE_MODELS.values()
|
||||
if not cfg.get("internal", False)
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user