Load Sequence
Reopen a trained splat sequence without retraining it
- sequence
- turnaround
Train Sequence writes a folder under ComfyUI/output/ containing one gaussian splat per frame. That folder is the deliverable, and it survives restarts, crashes and graph edits - but the socket you need to play it back only existed inside the graph that trained it. Load Sequence reads the folder back and hands you the same sequence socket, plus the turnaround render, without touching the GPU for training. Point it at the folder and you're back where you left off.
What it reads
A trained sequence looks like this on disk:
ComfyUI/output/my_shot/
meta.json # quality, frame count, gaussian counts
ply/ # frame_00000.ply ... full spherical harmonics
splat/ # the compact copy the in-node player streams
index.json
frame_00000.splatsh
preview/ # frame_00000.png ... the 3°-per-frame turnaround
ply/ is the honest output: full-SH gaussian splats you can open in SuperSplat, Blender, or hand to ComfyUI's core 3D nodes. splat/ is a compact re-encode for the browser player, and preview/ is the turnaround render baked during training. The node returns sequence (wire it to Sequence Player, Sequence Preview, Sequence Frame or Sequence Info) and turnaround - the preview PNGs as a ComfyUI IMAGE batch, ready for Create Video.
There's a repair path built in, and it's the reason this node is more than a folder reader. If the splat/ playback files are missing or truncated - a cancelled run, a disk that filled, an instance that died mid-write - the node re-runs the backend's player conversion to rebuild them from the .ply files. It verifies each .splatsh header and its expected byte count before declaring success, so a half-written file gets fixed rather than played. That conversion needs the isolated backend environment installed, since it's the same managed Python that did the training.
The input
One field: folder, the path to a folder written by Train - normally under ComfyUI/output/. The tooltip is the whole documentation, which is fine, because there's nothing else to set.
Point it at the right level. output/my_shot/, not output/my_shot/ply/. Names, not assumptions: Train Sequence never overwrites, so a repeat training run lands in my_shot_002, my_shot_003 and so on, and "where did my sequence go" is usually this.
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". The pack's own requirements.txt is small; the training environment is separate, installed once with installer.bat from the GitHub Releases page into bin/splat_backend/. If the playback files are already complete, this node doesn't need that environment at all - it's the repair path that does.
When it breaks
- "Sequence folder does not exist." Trailing quote, wrong path, or a folder that was cleaned up. Sequences live under
output/, and there's no auto-discovery. - "No frames under … (expected ply/ or splat/)." You pointed at the frameset folder (
output/splatkit/framesets/...) or at a level above the sequence. Those two folder trees are different things: framesets hold images and cameras, sequences hold splats. - "Playback conversion did not produce every selected frame." The repair ran but the
.plyset itself is incomplete - you probably killed training partway. Re-run Train Sequence; it will reuse the finished frames. - Queueing feels instantaneous and nothing happens. That's correct. Loading a sequence doesn't render anything; it just validates and hands over a reference. The visible work happens in whichever consumer node you wire up.
- Retraining when you didn't mean to. Load Sequence itself never trains - but changing the graph, deleting the folder or renaming it will send you back to Train Sequence, where a mismatched cache signature triggers a fresh run. If you're experimenting, wire Load Sequence and leave the trainer in the graph bypassed.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| folder | STRING | A folder written by Train, usually under output/. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sequence | SPLATKIT_SEQUENCE | — |
| turnaround | IMAGE | — |