TripoSplat 图像到 3D Gaussian Splats 工作流用于 ComfyUI#
将单个参考图像转换为可共享的 3D Gaussian Splats 资产并附带轨道预览视频。此 TripoSplat 图像到 3D Gaussian Splats 工作流是 ComfyUI 的官方 3D 模板,简化了背景移除、视觉调节、TripoSplat 采样、splat 解码、实时渲染以及导出到 SPZ 并支持可选的 GLB 网格路径。它围绕开放的 TripoSplat 项目和论文构建,引入了用于单图像 3D Gaussian 重建的三平面特征 GitHub 和 arXiv,并在 Hugging Face 上提供了可用的权重。
艺术家、游戏开发者和 XR 创作者可以快速从单个图像中原型化道具或风格化对象,预览它们为旋转台,并导出可 RunComfy 的资产。此 README 描述的模板与 ComfyUI 上游工作流示例中的 TripoSplat 一致,示例可在 GitHub 上找到。
ComfyUI 中 TripoSplat 图像到 3D Gaussian Splats 工作流中的关键模型#
- TripoSplat diffusion model checkpoint (UNet)。核心生成器,从单个图像的特征中预测 3D Gaussian 场。来源:GitHub 和 Hugging Face。
- TripoSplat VAE Decoder。将采样的潜变量解码为显式的 3D Gaussian Splats 参数,用于渲染和导出。权重打包在 Hugging Face 上的 TripoSplat 模型卡中。
- FLUX.2 VAE。提供图像编码空间,用于在调节和与 TripoSplat 管道对齐时使用。与 TripoSplat 权重一起分发在 Hugging Face 上。
- DINO v3 ViT-H vision backbone。提供用于单视图 3D 重建的高级、稳健图像特征;与工作流资产一起在 Hugging Face 上发布。
- BiRefNet 用于背景移除。分割前景主体以改善调节并在 3D 生成之前减少杂物。模型权重:Hugging Face。
如何使用 ComfyUI TripoSplat 图像到 3D Gaussian Splats 工作流#
此工作流从图像和蒙版准备开始,到 TripoSplat 采样和解码,然后分为两个导出分支:实时轨道预览视频和 SPZ 3D Gaussian Splats 文件。第三个可选分支将 splats 转换为网格以导出 GLB。
- 加载并准备您的图像
- 在
LoadImage(#99) 中导入参考图像。如果您的图像已有透明度或策划的蒙版,可以直接使用。否则,嵌入的“Remove Background (BiRefNet)”子图将隔离主体并向前提供干净的蒙版。Switch: Mask Source(#35) 根据auto_remove_background切换自动选择您的蒙版和 BiRefNet 蒙版。预处理器TripoSplatPreprocessImage(#2) 标准化大小并将图像与选定的蒙版组合,以便主体居中且干净。
- 在
- 图像到 Gaussian Splat (TripoSplat) 子图
- 核心子图
Image to Gaussian Splat (TripoSplat)(#88) 使用 DINO v3 ViT-H 和 FLUX.2 VAE 计算调节。KSampler(#6) 使用这些调节运行 TripoSplat UNet 以生成潜变量。然后VAEDecodeTripoSplat(#55) 将潜变量解码为实际的 3D Gaussian Splats 结构。如需在完全解码前快速查看,可启用内置预览路径,将模型通过TripoSplatSamplingPreview(#97) 路由。
- 核心子图
- 创建 3D 模型
- 解码后的 splats 使用
SplatToFile3D(#92) 导出为 SPZ 文件,保留 3D Gaussian 场。这是下游使用和加载回 RunComfy 的推荐格式。标记为SaveGLB(#51) 的节点接收文件并将其写入磁盘为 SPZ 包,以便于携带和共享。
- 解码后的 splats 使用
- 创建视频
- 对于旋转台预览,
CreateCameraInfo(#79) 定义了轨道摄像机,并由RenderSplat(#75) 将 splats 光栅化为帧。CreateVideo(#41) 将这些帧拼接成视频,SaveVideo(#42) 将结果写入磁盘。此分支在您完成导出前为您提供即时的视觉反馈,关于覆盖范围、密度和轮廓。
- 对于旋转台预览,
- 创建 3D 模型(实验性)
- 如果需要网格,实验性分支使用
SplatToMesh(#76) 将 splats 转换,并通过SaveGLB(#67) 写入 GLB。网格转换最适合快速可视化或基本的 DCC 导入。对于保真度和光照友好的预览,原生 splats 加上轨道视频通常比早期网格更好看。
- 如果需要网格,实验性分支使用
ComfyUI 中 TripoSplat 图像到 3D Gaussian Splats 工作流中的关键节点#
VAEDecodeTripoSplat(#55)- 将扩散潜变量解码为完整的 3D Gaussian Splats 表示。
num_gaussians控制密度和内存使用。较高的值创建更密集的 splats 和更平滑的轮廓,但需要更长的时间和更多的 VRAM;从适度开始,逐步增加直到覆盖范围和细节满足您的需求。
- 将扩散潜变量解码为完整的 3D Gaussian Splats 表示。
KSampler(#6)- 使用调节和初始潜变量驱动 TripoSplat 推断。调整
seed以从同一图像获得新的结构变化。在评估前景提取和主体构图变化时保持其他采样器选择稳定。
- 使用调节和初始潜变量驱动 TripoSplat 推断。调整
TripoSplatConditioning(#24)- 通过结合 DINO 特征和 VAE 潜变量来构建单图像 3D 可行的视觉引导。良好的结果依赖于干净、居中的主体和排除繁忙背景的蒙版。
RenderSplat(#75)- 将生成的 splats 渲染为预览旋转台的图像。调整输出大小以在清晰度和速度之间取得平衡,并使用
CreateCameraInfo(#79) 提供的摄像机信息输入来控制轨道样式。
- 将生成的 splats 渲染为预览旋转台的图像。调整输出大小以在清晰度和速度之间取得平衡,并使用
SplatToMesh(#76)- 将 Gaussian 表示转换为用于 GLB 导出的多边形网格。预期比原生 splats 的细节更低;当目标工具链需要网格时,将其视为便利路径。
可选附加功能#
- 使用具有清晰、居中主体和良好背景分离的图像;视野遮挡最小的对象视图效果最好。
- 如果源已经有透明度,禁用自动背景移除以保留您手动制作的蒙版。
- 逐步增加
num_gaussians以找到适合您的 GPU 和对象复杂度的最佳位置。 - 启用 TripoSplat 预览路径以验证主体隔离和轮廓,然后运行完整的解码和导出。
- 更倾向于 SPZ 以获得质量和可编辑性;仅在严格需要 GLB 时使用网格分支。
致谢#
此工作流实现并基于以下作品和资源。我们对 Comfy-Org 的 ComfyUI 原生 3D Gaussian Splatting 支持和 3D TripoSplat 图像到 Gaussian Splat 工作流模板,VAST AI Research 和 VAST AI 的 TripoSplat 模型和存储库,以及 TripoSplat 论文作者的研究论文表示感谢,感谢他们的贡献和维护。有关权威详情,请参阅下方链接的原始文档和存储库。
资源#
- Comfy-Org/Bringing native support for 3D Gaussian Splatting
- Comfy-Org/3d_triposplat_image_to_gaussian_splat.json
- GitHub: Comfy-Org/workflow_templates
- VAST-AI/TripoSplat (model card)
- GitHub: VAST-AI-Research/TripoSplat
- Hugging Face: VAST-AI/TripoSplat
- arXiv: arXiv:2605.16355
- VAST-AI-Research/TripoSplat (repository)
- GitHub: VAST-AI-Research/TripoSplat
- Hugging Face: VAST-AI/TripoSplat
- arXiv: arXiv:2605.16355
- TripoSplat/arXiv:2605.16355
- GitHub: VAST-AI-Research/TripoSplat
- Hugging Face: VAST-AI/TripoSplat
- arXiv: arXiv:2605.16355
注意:引用模型、数据集和代码的使用受其作者和维护者提供的相应许可证和条款的约束。


