Nodes/ComfyUI/Render Splat
ComfyUI Node Runs on cloud

Render Splat

The node that turns an invisible cloud of gaussians into an image

By Comfy-Org·Created 4 years ago·Updated about 13 hours ago· 130,663
Render Splat
  • splat
  • background
  • bg_image
  • camera_info
  • image
  • mask
width1024
height1024
frames1
splat_scale1.00
sharpen2.0
headlight_shading0.00
opacity_threshold0.00
render_style

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.
  • background and bg_image - solid hex color by default, or a plate image composited behind. Note bg_image only applies to color and clay.
  • 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.

Category3d/splat

Inputs (12)

NameTypeDefaultDescription
splatSPLAT
widthINT102464–2048
heightINT102464–2048
framesINT1-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_scaleFLOAT1.000.1–5Multiplier on each splat's projected footprint (lower = crisper points, higher = softer/fuller surface).
sharpenFLOAT2.01–8Sharpen 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_shadingFLOAT0.000–3Diffuse 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_thresholdFLOAT0.000–1Cull gaussians with opacity below this (removes faint floaters).
render_styleCOMBOWhat the image output shows: color, clay (neutral-albedo shaded), depth (near=bright), normal (OpenGL normal map).
backgroundCOLOR#000000
bg_imageoptIMAGEOptional 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_infooptLOAD3D_CAMERACamera 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)

NameTypeDescription
imageIMAGE
maskMASK