Prhub

#24358 [Codex] Diffusion tune Hunyuan3D shape export chunks

原始 PR 作者 BBuf 合并时间 2026-05-15 15:31 文件变更 1 提交数 7 评论 1 代码增减 +1 / -1

执行摘要

调整 Hunyuan3D shape 导出块大小以提升性能

在 Hunyuan3D denoise 融合工作完成后,shape-only 路径的耗时集中在 Hunyuan3DShapeExportStageHunyuan3DShapeSaveStage。导出阶段仍有许多小的 VAE/geo-decoder 块启动,调整块大小可减少启动开销。

PR 变更简单清晰,基于 profile 数据驱动,收益明确且风险可控,值得合并。对于显存敏感的场景,可考虑保留可配置性。

讨论亮点

只有 gemini-code-assist[bot] 的自动评论指出变更内容,未产生实质性讨论。

实现拆解

  1. python/sglang/multimodal_gen/configs/pipeline_configs/hunyuan3d.pyHunyuan3D2PipelineConfig 数据类中,将 shape_num_chunks 字段的默认值从 8000 改为 32000
  2. 这是该 PR 唯一的代码变更,未涉及其他逻辑、测试或配置文件修改。
  3. 通过验证确保输出 mesh 的哈希值与基线一致,保证正确性。
文件 模块 状态 重要度
python/sglang/multimodal_gen/configs/pipeline_configs/hunyuan3d.py 扩散模型 modified 4.89

关键源码片段

python/sglang/multimodal_gen/configs/pipeline_configs/hunyuan3d.py core-logic

核心变更文件,修改了 shape_num_chunks 默认值,直接影响 shape 导出阶段的块大小和性能。

@dataclass
class Hunyuan3D2PipelineConfig(PipelineConfig):
    # ... 其他字段不变 ...
​
    # Shape 模型配置
    shape_model_path: Optional[str] = None
    shape_use_safetensors: bool = True
    shape_variant: Optional[str] = "fp16"
    shape_num_inference_steps: int = 50
    guidance_scale: float = 5.0
    shape_box_v: float = 1.01
    shape_octree_resolution: int = 384
    shape_mc_level: float = 0.0
    shape_mc_algo: Optional[str] = "mc"
    # 块大小从 8000 调整为 32000,减少 VAE/geo-decoder 启动次数
    shape_num_chunks: int = 32000
    shape_output_type: str = "trimesh"
    # ... 后续字段不变 ...

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低。峰值显存增加 408 MB(约 6.4%),在 H100 上从 6430 MB 升至 6838 MB,仍远低于显存上限。如果其他场景显存压力较大,此默认值可能不适用。未增加测试覆盖,建议后续添加块大小相关的回归测试。

影响范围限于 Hunyuan3D 模型的 shape 生成流程。默认块大小变更对所有使用该配置的用户生效,但用户可通过显式设置 shape_num_chunks 覆盖。性能提升约 5-8%,显存增加约 6%。

缺少测试覆盖 显存增加约 6%

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论