Nodes/ComfyUI-SplatKit/Dataset Project
ComfyUI Node

Dataset Project

The one node that decides where your whole SplatKit run lands

By mickmumpitz·Created about a month ago·Updated about 24 hours ago· 17
Dataset Project
    • dataset_dir
    • control_rgb_prefix
    • control_mask_prefix
    • wan_inpaint_prefix
    dataset_namemy_scene
    resetfalse

    If you've loaded a SplatKit workflow and wondered where the outputs actually go, this is the node to blame. Dataset Project is the pack's single source of truth for paths: you give it a dataset_name, it creates a folder under ComfyUI/output/<name>, and every other node in the pipeline wires off its dataset_dir. It's not a glamorous node, but it's the one that keeps a 19-node pano-to-COLMAP pipeline from scattering files across your output tree and your custom_nodes folder. Set the name once, forget about string-matching.

    The only input you really touch is dataset_name (default my_scene). There's also a reset toggle: off by default, which makes the project resumable - the depth cache is reused on re-run. Flip it on only when you want a clean slate, because it deletes the whole project folder first.

    What it actually creates

    The layout is worth knowing because it's the map of the whole pack:

    • camera_plot/ - the control RGB/mask renders that condition WAN (this was misleadingly called dataset/ in old releases; it is not your trainable dataset)
    • wan_inpaint/ - where a completed WAN video goes if your workflow saves one
    • condition/ - cameras.npz plus depth/mask sidecars for the SfM stage
    • _work/ - scratch, like the camera-plot rail JSONs

    The real COLMAP dataset (images/ + sparse/0/) is written at the project root, sibling to those folders, by the SphereSfM nodes. That root is the "dataset" you point a 3DGS trainer at.

    Its four outputs are all strings: dataset_dir (wire into every SplatKit node that takes a path), plus control_rgb_prefix, control_mask_prefix, and wan_inpaint_prefix - filename prefixes you'd feed into a Save Video node. It's is_output_node: false, so you can and should wire it through the graph.

    Install

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

    (or via ComfyUI Manager, searching "ComfyUI-SplatKit"; non-portable installs use python -m pip install). Restart after. This node itself needs nothing extra - the heavy first-run downloads (MoGe checkpoint, the SphereSfM binary) only trigger when the nodes that use them actually run.

    Gotchas

    Two things bite people. First, older runs of this pack lived under a Pano2Splat-Matrix/<name> wrapper folder; ResolveDatasetImages still understands that layout, so datasets built before the rename keep working. Second, don't point multiple Camera Plot branches at one project expecting them to keep separate rails - that's why the plot nodes hand out a per-node rail_json instead (see the HiRes Composite page for why an overwritten rail is unrecoverable). Keep reset off unless you genuinely want to nuke the depth cache; re-running with it on costs you a full MoGe pass for no benefit.

    CategorySplatKit

    Inputs (2)

    NameTypeDefaultDescription
    dataset_nameSTRINGmy_scene
    resetoptBOOLEANfalseClear the project folder first. Default off = resumable (the depth cache is reused on re-run).

    Outputs (4)

    NameTypeDescription
    dataset_dirSTRING
    control_rgb_prefixSTRING
    control_mask_prefixSTRING
    wan_inpaint_prefixSTRING