Sequence Preview
Turn a splat sequence into a video batch, no backend required
- sequence
- camera_info
- images
The in-node Sequence Player is great for you and useless to anyone else - it's an interactive widget, not a file. Sequence Preview is the node that turns the sequence into something you can hand over: it renders every frame from one fixed camera and returns a normal ComfyUI IMAGE batch, which means it plugs into anything that eats images. Preview Image to scrub it frame by frame. Create Video to get an mp4. Save as WEBP if that's your thing.
That's the whole pitch. A splat sequence goes in, a video batch comes out, and the renderer doing the work is ComfyUI's own - no backend required for this node. So it's also the way to check a sequence someone else trained, or to look at your own after you've uninstalled the managed environment.
How it renders
It walks the sequence's .ply files and calls ComfyUI's core splat rasterizer once per frame with a fixed, sensible setup: scale 1.0, sharpen 2.0, no headlight shading, no opacity culling, black background, colour render style. Then it stacks the results into one batch. If you want different rasterizer settings, that's a reason to use Sequence Frame plus Render Splat instead - this node deliberately keeps the knobs off so the output is comparable run to run.
The camera is the interesting part. Give it camera_info and it uses that camera for every frame - which is how you get a clean locked-off shot of a moving subject, or a handed-over shot that matches a camera you framed by hand in the Preview Splat viewport (its camera_info output) or built with Create Camera Info. Leave camera_info empty and the node frames the first frame automatically - it centres on the mean gaussian position and pulls back based on how far out the bulk of the points sit - then holds that camera for the whole sequence.
That's a genuinely good default, and worth understanding: the auto camera is derived from frame 0 and never updated. If your subject walks across the room, later frames render off-centre. Fix it by supplying a camera, not by fiddling with resolution.
The inputs
Required: sequence (from Train Sequence or Load Sequence), width (512 by default, 64–2048, in 8s), height (768 by default). Optional: camera_info and every_nth - render every Nth frame, 1 to 20, for a quick look. every_nth is the right move for a first pass on a 121-frame sequence; you'll see in a few seconds whether anything's wrong.
Output is images, a standard batch. Resolution is independent of what the splats were trained at - a bigger canvas gives you a crisper render up to the detail the splats actually hold, and past that you're just paying for pixels.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-SplatKit
python_embeded/python.exe -m pip install -r ComfyUI-SplatKit/requirements.txt
Restart, or ComfyUI Manager → "ComfyUI-SplatKit". It imports core's comfy_extras.nodes_gaussian_splat, so you want a current ComfyUI - the pack targets 0.34 or newer for the video and 3D-adjacent nodes. No VGG-19, no 4DAnyone weights, no installer.bat needed for this node specifically; you just need a sequence folder that already exists.
When it breaks
- "The sequence holds no .ply files." Wrong folder, or training never got far enough. Sequence Info on the same folder tells you which in one line.
- A subject drifting out of frame halfway through. The auto camera is from frame 0 and never moves. Supply a camera via
camera_info, or accept that this is a locked-off shot and pick the frame you want it centred on first (a single-frame export gives you a sequence whose frame 0 is the one you care about). - Grey mush or hard blobs. The rasterizer has no exposure or colour grading; splats that were trained with a badly-matted silhouette look exactly as bad here as anywhere else. Check the frameset before blaming the renderer.
- Slow with no progress. It renders frame by frame with a progress bar, and it checks for cancellation between frames, so you can stop it. Very high resolutions on a long sequence are the usual cause of "why is this taking ten minutes" - drop to
every_nth 5and a smaller canvas to iterate. - A batch in VRAM you didn't plan for. 121 frames at 1024×1024 as float tensors is not tiny. Use
every_nth, or render at preview size and re-render the final at full size once you're happy.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| sequence | SPLATKIT_SEQUENCE | — | |
| width | INT | 51264–2048 | — |
| height | INT | 76864–2048 | — |
| camera_infoopt | LOAD3D_CAMERA | Where to watch from: the camera_info output of a Preview Splat you framed by hand, or Create Camera Info. Empty auto-frames the first frame and holds that camera. | |
| every_nthopt | INT | 11–20 | Render every Nth frame for a quick look. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |