Nodes/ComfyUI-SplatKit/Resolve Dataset Images
ComfyUI Node

Resolve Dataset Images

The node that finds your dataset's images folder and never upscales twice

By mickmumpitz·Created about a month ago·Updated about 22 hours ago· 17
Resolve Dataset Images
    • load_dir
    • canonical_dir
    • suggested_batch_size
    dataset_namemy_scene
    dataset_path
    lowres_suffix_lowres

    Dataset upscaling is the stage where SplatKit's output becomes a splat that's actually sharp - you run every training image through a real upscaler (SeedVR2, if you have it) before training. But an upscale pass has one nasty property: run it twice and you're upscaling already-upscaled frames, which softens everything and burns GPU hours for nothing. Resolve Dataset Images is the small node that makes re-runs safe. Given a dataset by name (or explicit path), it figures out where the images live and returns two strings: load_dir - the folder an image loader should read, and canonical_dir - the folder the upscaled images must end up in so COLMAP's sparse/0/images.bin keeps matching.

    The re-run safety comes from one trick: load_dir is the <images>_lowres folder if a previous upscale already created it, otherwise the plain images folder. You always read the pristine originals, so re-running the workflow converges to the same result instead of stacking generations. It also handles both dataset layouts this pack produces - the SphereSfM COLMAP layout (.../images) and the equirect .../dataset/images layout - plus the legacy Pano2Splat-Matrix/<name>/... folders from before the rename. If you know exactly where things live, dataset_path overrides the name lookup entirely.

    The third output, suggested_batch_size, is worth a mention: it reads the dataset's marker and suggests a SeedVR2 batch size that aligns to coherent sub-video boundaries, so the temporal model never sees a batch straddling a view change.

    Wiring and the inputs that matter

    Required: dataset_name (default my_scene - the SphereSfM output_name). Optional: dataset_path, and lowres_suffix (default _lowres) which must match whatever the Save node uses. The canonical chain:

    Resolve Dataset Images → load_dir → (an image loader) → upscaler → images
                         └→ canonical_dir → Save Upscaled Dataset.canonical_dir
    

    If you hit "could not locate an images folder," the error message tells you exactly which layouts it checked - usually the name is wrong, or the dataset lives outside ComfyUI/output and you need dataset_path.

    Install

    Same as the whole pack - clone, install requirements, restart:

    cd ComfyUI/custom_nodes
    git clone https://github.com/mickmumpitz/ComfyUI-SplatKit
    python_embeded\python.exe -m pip install -r ComfyUI-SplatKit/requirements.txt
    

    No model downloads here; the upscaler and its weights are your own. One honest gotcha from the code: the loader's filename order must match the order you save under, which is why the fancier Load Dataset Images (Ordered) node exists for camera-major datasets - see its page before upscaling a SphereSfM COLMAP dataset.

    CategorySplatKit

    Inputs (3)

    NameTypeDefaultDescription
    dataset_nameSTRINGmy_sceneName of the dataset folder this pack created under ComfyUI/output (e.g. the Dataset Project / SphereSfM output_name). Leave dataset_path blank to use this.
    dataset_pathoptSTRINGOptional explicit path to the dataset root OR directly to an images folder. Overrides dataset_name when set.
    lowres_suffixoptSTRING_lowresSuffix the originals folder is/was renamed with. Must match the Save node's suffix.

    Outputs (3)

    NameTypeDescription
    load_dirSTRING
    canonical_dirSTRING
    suggested_batch_sizeINT