Nodes/camera-comfyUI/LoadSplats4D
ComfyUI Node

LoadSplats4D

Reload the animated scene you spent an hour building

By Alexankharin·Created about a year ago·Updated about a month ago· 36
LoadSplats4D
    • splats4d
    splat4d_file
    deviceauto

    Building a 4D splat scene is a marathon: pose estimation, depth, tracking, lifting, fusion, and finally BuildSplats4D binding everything together. The last thing you want is to rerun that gauntlet because you want to change the camera path. LoadSplats4D is the reload button for that work - it reads a GSPLAT4D scene back from a .npz archive and hands you the same splats4d object BuildSplats4D produced, ready to render from any new trajectory.

    It's the load half of the pack's 4D persistence story. SaveSplats4D writes the scene (canonical splats, plus the static background and track data) to a compressed .npz; this node is how you pull it back. The README's video_to_4d_walkable_world workflow exports both .ply and .npz so you can keep working in ComfyUI and walk the scene in external 3DGS viewers - the .npz is the ComfyUI-native side of that.

    How it works

    The splat4d_file input is a dropdown populated from .npz files in ComfyUI's input/ folder, with a file chooser. Drop your archive in, select it, and out comes splats4d (GSPLAT4D). There's an optional device (auto/cpu/cuda) to control where the scene tensors land - useful to pin when you're about to render.

    The archive stores the canonical splats and the static layer (the loader reads both, per the source), along with the track data that lets the scene deform. That's what makes it a true "scene" reload rather than a static snapshot: load it, hand it to RenderSplats4DVideo with a new path from CameraInterpolationNode, and the animated content moves exactly as built.

    One honest caveat from the README's TODO list: the current .npz format stores raw tensors, so it's not a small or compressed enough archive - "compressed export format" is still an open TODO. Expect chunky files and don't be surprised by the size.

    Install

    Shared camera-comfyUI install: Manager → search "camera-comfyUI" → Install, or clone https://github.com/Alexankharin/camera-comfyUI into custom_nodes/ and run python install.py. Loading itself is numpy/torch parsing, but you're loading it to render, and rendering a 4D scene needs gsplat (JIT-compiled CUDA). So yes, the heavy deps need to be present for this node to be useful - check the console if the node is missing or grayed out, and re-run python install.py.

    Troubleshooting

    • File doesn't appear: it's not in input/, or it isn't .npz - this node lists only .npz. SaveSplats4D writes exactly that format.
    • Loads fine but render is broken: the scene and your camera path disagree on scale/frame - if you rebuilt the trajectory from scratch, make sure the world frame matches what the scene was saved in.
    • Scene renders but nothing moves: the archive may have been saved without track data, or the dynamic/static split was empty. Re-check the upstream split and BuildSplats4D wiring before saving.
    • Build it once, reuse it: that's the whole point of this node - don't rebuild the 4D scene every session. Save it, load it, iterate on the camera.
    CategoryCamera/GSplat4D

    Inputs (2)

    NameTypeDefaultDescription
    splat4d_fileCOMBOSelect a Splats4D .npz archive from your input folder.
    deviceoptCOMBOauto3 options: auto, cpu, cuda

    Outputs (1)

    NameTypeDescription
    splats4dGSPLAT4D