ComfyUI Node
Load Dataset Images (Ordered)
A ComfyUI node in SplatKit with 9 inputs and 7 outputs.
Load Dataset Images (Ordered)
- meta_batch
- images
- order_names
- canonical_dir
- group_sizes
- batch_size
- passthrough_json
- job
◄dataset_namemy_scene►
◄dataset_path►
◄lowres_suffix_lowres►
◄camera_index-1►
◄on_size_mismatcherror►
◄prepare_in_placefalse►
◄select_every_nth1►
◄drop_partial_stridefalse►
CategorySplatKit
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| dataset_name | STRING | my_scene | Name of the SphereSfM dataset folder under ComfyUI/output. |
| dataset_pathopt | STRING | Optional explicit path to the dataset root or images folder. Overrides dataset_name. | |
| lowres_suffixopt | STRING | _lowres | Originals-folder suffix; must match the Save node's suffix. |
| camera_indexopt | INT | -1-1–4096 | -1 = load all cameras. 0..N-1 = load only that camera's sub-video (one coherent view/trajectory). The console lists the available cameras on each run. |
| meta_batchopt | VHS_BatchManager | Optional VHS Meta Batch Manager. When wired, the camera-major sequence is STREAMED frames_per_batch frames at a time instead of loaded whole -- the fix for 'the upscaled result does not fit in RAM'. Set frames_per_batch to a divisor of the per-view length (81 -> 81, 27, 9, 3, 1) so no chunk straddles a view boundary. The order_names / canonical_dir outputs stay whole-dataset. | |
| on_size_mismatchopt | COMBO | error | What to do when the folder holds more than one image size. error: refuse (a batch needs one size). resize_and_passthrough: resize the odd images DOWN to the majority size so they still give the temporal model its context, and list them on the passthrough_json output. Frame 00000 is normally the ORIGINAL panorama (a separate, larger COLMAP camera) -- wire passthrough_json into Save Upscaled Frames (Streaming) and its untouched original is copied to the output instead of the generated upscale. |
| prepare_in_placeopt | BOOLEAN | false | Do the originals-preserving swap here, before the first read: images/ -> images_lowres/ (once, atomically) and a fresh empty images/ for the saver to fill. Idempotent, so a re-run renames nothing. Turn this ON for an in-place COLMAP dataset upscale and you do not need a separate Prepare node. |
| select_every_nthopt | INT | 11–1000 | Thin the sequence: keep every Nth frame. Applied INSIDE each view group, never across the flat list -- 24 views of 81 at N=3 become 24 views of 27, so no chunk ever straddles a view boundary and the loop still sees coherent sub-videos. Counting starts at each view's first frame, so frame 00000 (the real panorama) is always kept. group_sizes and suggested_batch_size are recomputed for you. WARNING: the skipped frames are then NOT written by the saver, while sparse/0/images.bin still registers them. Reconcile the dataset afterwards with tools/stride_dataset.py (--mode prune or --mode keep-lowres) before training on it. |
| drop_partial_strideopt | BOOLEAN | false | What to do with the frame that falls out of the stride. 81 frames at N=5 is 16 complete 5-frame windows plus 1 leftover: off keeps it (17 per view), on omits it (16 per view). CAUTION: 17 is 4n+1 so it can be one clean SeedVR2 batch, while 16's only 4n+1 divisor is 1 -- turning this on can collapse suggested_batch_size to 1 and cost you all temporal context. Check the printed suggested_batch_size after changing it, and match tools/stride_dataset.py --drop-partial. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| order_names | STRING | — |
| canonical_dir | STRING | — |
| group_sizes | STRING | — |
| batch_size | INT | — |
| passthrough_json | STRING | — |
| job | STRING | — |