Nodes/ComfyUI/TripoSplat Sampling Preview
ComfyUI Node Runs on cloud

TripoSplat Sampling Preview

Watch your 3D gaussian splat take shape mid-sampling

By Comfy-Org·Created 4 years ago·Updated about 10 hours ago· 130,663
TripoSplat Sampling Preview
  • model
  • vae
  • MODEL
octree_level5
num_gaussians16384
yaw90
pitch15
point_size3

TripoSplat is TripoAI's open-weights model that turns a single 2D image into a 3D gaussian splat - the thing you orbit around in a viewer, up to a quarter-million gaussians of object. It landed in June 2026 with ComfyUI support on day one, and it samples over a 3D latent space. Which brings us to the practical problem this node solves: unless you're sampling blind, you'd love to see the object as it forms at each step, not wait for the whole run to finish. TripoSplat Sampling Preview patches the model so the standard KSampler renders a live preview of the decoded splat on every step.

The community reaction to the model itself is worth knowing: the early takes praised its color handling - it preserves illustration colors unusually well at the initial angle - and the "arbitrary gaussian count" flexibility (up to 262,144, trade quality against render cost). So people are actually iterating on this thing, and iterating on a sampler you can't watch is miserable. That's the gap this node fills.

How it works

It takes your loaded TripoSplat model and wraps its sampling callback (specifically the outer-sampler hook) so that each step decodes the current denoised prediction through the TripoSplat VAE decoder into a set of gaussians, renders them from a camera you set, and pushes the resulting image into the progress bar. It's a preview only - the patched model produces exactly the same final output as the unpatched one. And if the preview decode fails for any reason (VRAM being the usual suspect), it logs a warning and disables itself rather than killing your generation. That's decent engineering: the preview is never allowed to take the run down.

Inputs

  • model (MODEL) - the TripoSplat model, wired into a KSampler after this node.
  • vae (VAE) - the TripoSplat VAE decoder, the same one you'd use for the final decode.
  • octree_level (2–8, default 5) - depth of the preview decode; lower is cheaper and coarser.
  • num_gaussians (1024–262144, default 16384, step 32) - how many gaussians the preview produces.
  • yaw (default 90°) / pitch (default 15°) - the preview camera angle.
  • point_size (1–16, default 3) - cap on splat radius in pixels; lower reads finer/pointier, higher chunkier.

Output: a MODEL, which you plug straight into the KSampler in place of the original.

How you get it

Ships with ComfyUI core, no install - it's been there since TripoSplat support landed in June 2026. You do need the model files: the TripoSplat checkpoint in your models/diffusion_models folder and the TripoSplat VAE decoder, plus a DINOv3 CLIP vision encoder for the conditioning. The official Comfy-Org template (3d_triposplat_image_to_gaussian_splat) shows the whole graph.

The trade-offs

The preview isn't free. Every step you're running an extra decode and render, so with a big num_gaussians and high octree_level you pay real time for the show. For iterating, drop them (16384 gaussians at level 4–5 is plenty to see where things are going) and only crank up for the final run, where you'll use the proper VAEDecodeTripoSplat anyway. The one thing that isn't a setting: this node does nothing to the output. If you want to change the final splat, adjust the sampling, not the preview.

Categorymodel/latent/triposplat

Inputs (7)

NameTypeDefaultDescription
modelMODEL
vaeVAETripoSplat VAE decoder
octree_levelINT52–8Octree depth for the preview decode (lower = cheaper/coarser).
num_gaussiansINT163841024–262144Number of gaussians to produce for the preview (rounded to a multiple of 32).
yawFLOAT90-360–360Preview camera yaw in degrees.
pitchFLOAT15-89–89Preview camera pitch in degrees.
point_sizeINT31–16Maximum splat radius in pixels. Each gaussian is sized from its scale and capped here; lower = finer/pointier, higher = chunkier.

Outputs (1)

NameTypeDescription
MODELMODEL