> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# TripoSplat Image to Gaussian Splat ComfyUI Workflow Example

> Generate high-quality 3D Gaussian splat representations from a single 2D image using TripoSplat, with controllable density and budget for rendering.

**TripoSplat** is an open-source model that generates **3D Gaussian splat** representations directly from a single 2D image. It was developed by VAST-AI and released under an open-source license.

Unlike traditional 3D reconstruction methods that require multiple views or generate meshes as the primary output, TripoSplat creates **Gaussian splat** representations — a rendering technique where thousands of colored 3D Gaussians are placed in space to represent a scene. This approach enables fast, high-quality rendering with controllable density and budget.

<img src="https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/templates/3d_triposplat_image_to_gaussian_splat-1.webp" alt="TripoSplat workflow" />

<Tip>
  <Tabs>
    <Tab title="Portable or self deployed users">
      Make sure your ComfyUI is updated.

      * [Download ComfyUI](https://www.comfy.org/download)
      * [Update Guide](/installation/update_comfyui)

      Workflows in this guide can be found in the [Workflow Templates](/interface/features/template).
      If you can't find them in the template, your ComfyUI may be outdated. (Desktop version's update will delay sometime)

      If nodes are missing when loading a workflow, possible reasons:

      1. You are not using the latest ComfyUI version (Nightly version)
      2. Some nodes failed to import at startup
    </Tab>

    <Tab title="Desktop or Cloud users">
      * The Desktop is base on ComfyUI stable release, it will auto-update when there is a new Desktop stable release available.
      * [Cloud](https://cloud.comfy.org) will update after ComfyUI stable release.

      So, if you find any core node missing in this document, it might be because the new core nodes have not yet been released in the latest stable version. Please wait for the next stable release.
    </Tab>
  </Tabs>
</Tip>

<Card title="Download Workflow" icon="download" href="https://github.com/Comfy-Org/workflow_templates/blob/main/templates/3d_triposplat_image_to_gaussian_splat.json">
  Download JSON or search "TripoSplat" in Template Library
</Card>

## How it works

TripoSplat uses a **feed-forward architecture** that takes a single RGB image and directly predicts a set of 3D Gaussian primitives. The pipeline involves:

1. **Image encoding** — the input image is processed by a vision encoder (DINOv2)
2. **Triplane generation** — features are decoded into a triplane representation
3. **Gaussian prediction** — the triplane is sampled to produce Gaussian parameters (position, scale, rotation, opacity, color)
4. **Rendering** — Gaussians are rendered from arbitrary viewpoints using differentiable splatting

<Card title="Learn about Subgraph" icon="book-open" href="/interface/features/subgraph">
  This workflow uses a Subgraph node for modular processing. Check out the Subgraph documentation to learn how to customize and extend the workflow.
</Card>

## Workflow node guide

### LoadImage

* Loads your input image (PNG/JPG)
* Sample image: `white-hotel-on-rocky-island.png` (available in Template Library)

### TripoSplat (subgraph)

The main subgraph node processes the image and generates the 3D Gaussian splat. Exposed parameters:

| Parameter         | Default | Description                                                                      |
| ----------------- | ------- | -------------------------------------------------------------------------------- |
| `switch`          | —       | Enable/disable the subgraph                                                      |
| `num_gaussians`   | —       | Number of Gaussian primitives to generate (controls quality/performance)         |
| `seed`            | —       | Random seed for reproducibility                                                  |
| `unet_name`       | —       | TripoSplat diffusion model checkpoint                                            |
| `clip_name`       | —       | CLIP vision encoder model                                                        |
| `vae_name`        | —       | VAE for encoding/decoding (2 entries: one for the main VAE, one for the encoder) |
| `bg_removal_name` | —       | Background removal model                                                         |

### CreateCameraInfo

* Defines the camera orbit for rendering the result
* Parameters: orbit type, angle, distance, field of view, etc.
* Default: orbit at 35° elevation, 30 distance, 2.5 zoom

### RenderSplat

* Renders the Gaussian splat into a 2D image from the defined camera angle
* Parameters: output resolution (default 1024×1024), image quality settings

### SplatToMesh

* Converts the Gaussian splat to a mesh (optional)
* Parameters: mesh density, smoothing, simplification

### SaveGLB

* Saves the result as a GLB 3D file

### SaveVideo

* Saves a video of the rendered 3D scene

### SplatToFile3D

* Exports the Gaussian splat in SPZ format

### CreateVideo

* Creates a video from rendered frames

## Steps to run

1. **Load an image** — use the **LoadImage** node to load a single 2D image
2. **Run the TripoSplat subgraph** — the model will generate a Gaussian splat representation
3. **Choose output format** — export as GLB, SPZ, video, or render to mesh
4. **View results** — use the created 3D file or rendered preview

## Output options

| Node              | Format   | Use case                                               |
| ----------------- | -------- | ------------------------------------------------------ |
| **SaveGLB**       | `.glb`   | Standard 3D file format, importable into 3D software   |
| **SplatToFile3D** | `.spz`   | Compressed Gaussian splat format for efficient storage |
| **RenderSplat**   | 2D image | Quick preview of the result from any angle             |
| **SplatToMesh**   | Mesh     | Convert to traditional mesh for further editing        |

## Model downloads

Download the TripoSplat model and required files. Place them in the corresponding `models/` subdirectories.

<Card title="TripoSplat diffusion" icon="download" href="https://huggingface.co/VAST-AI/TripoSplat/resolve/main/diffusion_models/triposplat_fp16.safetensors">
  triposplat\_fp16.safetensors — TripoSplat diffusion model checkpoint
</Card>

<Card title="TripoSplat VAE decoder" icon="download" href="https://huggingface.co/VAST-AI/TripoSplat/resolve/main/vae/triposplat_vae_decoder_fp16.safetensors">
  triposplat\_vae\_decoder\_fp16.safetensors — VAE decoder
</Card>

<Card title="Flux2 VAE" icon="download" href="https://huggingface.co/VAST-AI/TripoSplat/resolve/main/vae/flux2-vae.safetensors">
  flux2-vae.safetensors — Flux.2 VAE for latent encoding
</Card>

<Card title="DINOv2 CLIP" icon="download" href="https://huggingface.co/VAST-AI/TripoSplat/resolve/main/clip_vision/dino_v3_vit_h.safetensors">
  dino\_v3\_vit\_h.safetensors — CLIP vision encoder (DINOv2)
</Card>

<Card title="BiRefNet bg removal" icon="download" href="https://huggingface.co/VAST-AI/TripoSplat/resolve/main/background_removal/birefnet.safetensors">
  birefnet.safetensors — Background removal model for preprocessing
</Card>

### Model storage location

```
📂 ComfyUI/
├── 📂 models/
│   ├── 📂 diffusion_models/
│   │      └── triposplat_fp16.safetensors
│   ├── 📂 vae/
│   │      ├── triposplat_vae_decoder_fp16.safetensors
│   │      └── flux2-vae.safetensors
│   ├── 📂 clip_vision/
│   │      └── dino_v3_vit_h.safetensors
│   └── 📂 background_removal/
│          └── birefnet.safetensors
```
