TripoSplat Conditioning
From one photo to a 3D gaussian splat
- clip_vision
- vae
- image
- positive
- negative
- latent
TripoSplat is TripoAI's open-weights model that turns a single 2D image into a 3D gaussian splat, and this node is the front door to it in ComfyUI. It landed in core in June 2026, and it's the conditioning stage of a genuinely different pipeline: instead of a prompt, your "conditioning" is an image encoded twice - once by a vision encoder for the splat's appearance, once by a VAE for the geometry noise target.
What it does
Three inputs, three outputs, and the middle pair is the whole story:
clip_vision- a DINOv3 ViT-H/16+ image encoder (the tooltip calls it out by name). Load it with a CLIPVisionLoader pointing at the DINOv3 model file inmodels/clip_vision.vae- a Flux2 VAE. This is the same VAE family Flux 2 uses, loaded via VAELoader frommodels/vae.image- your source photo or illustration.
Outputs:
positive- the DINOv3 token sequence (class + register + patch tokens) plus the VAE latent.negative- zero-filled versions of the same. There's no negative prompt here; "negative" just means "nothing," which is what makes the model's contrast work.latent- the fixed-size noise target the KSampler will denoise. The description calls it "latent + camera," and that's the detail that trips people: this latent carries a camera token baked in.
The workflow it feeds
Encode → condition → sample → decode. The latent is fixed-size, so don't substitute an EmptyLatentImage - TripoSplat expects its specific shape with the camera token in place. The KSampler's output goes to VAEDecodeTripoSplat to become the gaussian splat, and TripoSplatSamplingPreview lets you look at the result while it renders. Drop the official 3d_triposplat_image_to_gaussian_splat template into ComfyUI and you have a working reference graph.
Getting the models
The node itself loads nothing - it consumes clip_vision and vae from loader nodes. You need the DINOv3 CLIP vision model and a Flux2 VAE in their standard folders (models/clip_vision, models/vae). The TripoSplat checkpoint itself comes from the standard checkpoint/UNet loaders.
What people actually hit
The reception on release was positive but muted - the demo colors surprised people (illustration hues survive the trip to 3D surprisingly well), and the model handles a wide range of image styles. The splat quality/rendering-cost tradeoff is controlled by the gaussian count (up to 262,144), which lives in the sampling side, not here. The common failure is pairing this node with the wrong VAE - it has to be the Flux2 one, not a Wan or SDXL VAE. And remember: this is an image-conditioned 3D model, so prompt boxes elsewhere in the graph are mostly decoration. Feed it a clean, well-lit photo; garbage in, gaussian soup out.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_vision | CLIP_VISION | DINOv3 ViT-H/16+ image encoder | |
| vae | VAE | Flux2 VAE | |
| image | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | The fixed size noise target (latent +camera). |