Nodes/ComfyUI/Preview Splat
ComfyUI Node Runs on cloud

Preview Splat

Gaussian splats finally have a first-class viewer

By Comfy-Org·Created 4 years ago·Updated 20 days ago· 121,575
Preview Splat
  • model_3d
  • viewport_state
  • model_3d_info
  • camera_info
  • model_3d
  • model_3d_info
  • camera_info
  • width
  • height
width1024
height1024

Gaussian splats are the 3D format that went from "research curiosity" to "the default thing people generate in ComfyUI" in under a year, and Preview Splat is the node that lets you actually look at one. It takes a splat file - .splat, .spz, .ply, or .ksplat - opens it in the interactive 3D viewer, and passes the file straight through so you can keep your pipeline going. It's Preview 3D (Advanced) for the splat family.

It's ComfyUI core, "3d" category, no install. New: the splat preview node landed as part of the advanced 3D family in June 2026, right as TripoSplat - the open-weight model that turns a single 2D image into a 3D gaussian splat - got day-0 support in ComfyUI. That timing is not a coincidence. If you've generated a splat recently, this is the node you've been staring at the output of.

Why splats matter (and why this node exists)

A gaussian splat isn't a mesh. It's a cloud of millions of tiny colored, shaped blobs that, rendered together, reconstruct a scene. No polygons, no UVs, no rigging - just an enormous pile of gaussians that looks photoreal from any angle. That's why they render so fast and why they're taking over game/AR/VR pipelines. In the ComfyUI world, the community has been impressed by exactly this: TripoSplat makes "surprisingly good" results in seconds on a decent card, with colors that survive even stylized illustrations - though humans and organic forms still come out a bit dodgy. Splats are the current hot thing in the 3d category, and this node is the view.

How it works

Same passthrough design as the other advanced previews. The model_3d splat file goes in, gets copied to a temp folder (scratch, not your output folder), the viewer opens on it, and everything comes back out: model_3d, model_3d_info, camera_info, width, height. The viewport_state widget and optional camera_info control the viewing angle, same as everywhere else in the family.

Inputs to touch: just model_3d. The formats it accepts are the splat set - .splat, .spz (compressed splat, what the TripoSplat export path prefers), .ply, and .ksplat. width/height default to 1024 and pass through.

The gotcha: PLY is a lie

Here's where people actually get stuck. A .ply file can be a gaussian splat or a raw point cloud, and the two preview nodes both accept .ply. Wire a point-cloud PLY into Preview Splat and you'll get a viewer full of floating dots that look nothing like the scene - not because it's broken, but because you chose the wrong preview. Preview Splat for splats, Preview Point Cloud for point clouds. If you generated it from an image-to-splat model, it's a splat; if you got it from a scanner or a point-cloud export, it's a point cloud.

The other practical note: splats are heavy. A dense .splat can be tens of megabytes of millions of gaussians, and the viewer has to load and render all of them. If previews feel sluggish, that's normal for dense splats - export a compressed .spz version if you need to move them around more easily. Otherwise, feed, look, export. That's the node.

Category3d

Inputs (6)

NameTypeDefaultDescription
model_3dFILE_3D_SPLAT_ANY,FILE_3D_PLY,FILE_3D_SPLAT,FILE_3D_SPZ,FILE_3D_KSPLATA gaussian splat 3D file.
viewport_stateLOAD_3D
widthINT10241–4096
heightINT10241–4096
model_3d_infooptLOAD3D_MODEL_INFO
camera_infooptLOAD3D_CAMERA

Outputs (5)

NameTypeDescription
model_3dFILE_3D_SPLAT_ANY
model_3d_infoLOAD3D_MODEL_INFO
camera_infoLOAD3D_CAMERA
widthINT
heightINT