Render Splat
The node that turns an invisible cloud of gaussians into an image
- splat
- background
- bg_image
- camera_info
- image
- mask
A gaussian splat is useless until you can see it. Render Splat is the built-in node that does exactly that: it takes a SPLAT and produces an IMAGE (plus a MASK), so you can actually look at what your TripoSplat or Hunyuan3D decode produced, and even spin it into a turntable animation.
In the native-splat world that landed in ComfyUI around mid-2026, almost every 3D workflow funnels into one of three sinks: Render Splat to look at it and turn it into video, Extract Mesh from Splat if you want exportable geometry, or Create 3D File if you want to save the splat itself. Render Splat is the one you'll reach for first, because it's the only one that shows you what you actually got.
How it works
This isn't a naive point projector. It's an anisotropic EWA rasterizer: each gaussian is drawn as an oriented ellipse with a footprint sized to its own sigma, antialiased, then composited depth-sorted front-to-back. The practical upshot is that you get clean, gap-free surfaces from a splat that would look like confetti if you just drew dots, and you get an alpha mask for free.
If you leave camera_info empty, it auto-frames the splat from a default 3/4 view - good enough for a first look. Wire in a camera from a Load 3D / Preview 3D node or a Create Camera Info node and you control the angle. Set frames above 1 and the camera orbits a full 360 degrees; negative values orbit the other way. That's your video input - render 60 frames and feed the batch straight into a video node.
The inputs that matter
width/height- 64 to 2048, default 1024. Keep at 1024 for a quick preview, push higher for the final pass.frames- -1, 0, or 1 is a single still. 2+ is a turntable.render_style-color(default),clay(neutral-albedo shaded, great for judging form),depth(near = bright),normal(OpenGL normal map). Depth and normal are gold for compositing.backgroundandbg_image- solid hex color by default, or a plate image composited behind. Notebg_imageonly applies tocolorandclay.opacity_threshold- culls gaussians below this opacity. Your first port of call when the render has faint floating junk.sharpen- 1.0 is the physically-correct blend; the default 2.0 biases each pixel toward its nearest splat for a crisper texture. Non-physical above 1, but it's the setting that makes splats stop looking smeared.splat_scale- multiplier on each splat's footprint. Lower = crisper points, higher = fuller, softer surfaces.
It ships with ComfyUI core, no install. The gaussian splat nodes landed together in late May 2026, so this is genuinely new - don't go hunting for it in old tutorials.
Outputs
image is your render (a batch when frames > 1), and mask is the alpha coverage of the splat itself. Composite over anything you like.
Common issues
"It's blurry." That's usually the splat, not the renderer. Try sharpen up around 3–4 first; if it's still soft, raise splat_scale a touch. A sparse splat just renders as a sparse splat - see Merge Splats for the densify trick.
Floaters. Kick opacity_threshold up in small steps (0.01–0.05) until they vanish.
Wanting video but getting one still. Check frames. It defaults to 1.
Background image doing nothing. It's color/clay only - switch render_style.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| splat | SPLAT | — | |
| width | INT | 102464–2048 | — |
| height | INT | 102464–2048 | — |
| frames | INT | 1-240–240 | -1, 0, 1 = single still image; >1 = turntable, the camera orbits over a full 360 turn (works with any camera_info). Negative value orbits the other way. |
| splat_scale | FLOAT | 1.000.1–5 | Multiplier on each splat's projected footprint (lower = crisper points, higher = softer/fuller surface). |
| sharpen | FLOAT | 2.01–8 | Sharpen overlapping splats: 1.0 = physically-correct blend; higher biases each pixel toward its dominant (nearest) splat for crisper texture, without shrinking splats or opening gaps. Non-physical above 1. |
| headlight_shading | FLOAT | 0.000–3 | Diffuse shading from a light at the camera (headlight), using the splat surfel normals: darkens surfaces that turn away from view to reveal form/curvature. 0 = flat albedo, 1 = strongest shading. |
| opacity_threshold | FLOAT | 0.000–1 | Cull gaussians with opacity below this (removes faint floaters). |
| render_style | COMBO | What the image output shows: color, clay (neutral-albedo shaded), depth (near=bright), normal (OpenGL normal map). | |
| background | COLOR | #000000 | — |
| bg_imageopt | IMAGE | Optional background plate composited behind the splat (overrides the solid background colour). Resized to the render size; a batch is used per frame, a single image for all. color/clay only. | |
| camera_infoopt | LOAD3D_CAMERA | Camera to render from - a Load3D / Preview3D camera or a Create Camera Info node. If empty, the splat is auto-framed from a default 3/4 view. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |