ComfyUI Node
SphereSfM Dataset (Dual-Res: low-res SfM + 8K faces)
A ComfyUI node in SplatKit with 27 inputs and 3 outputs.
SphereSfM Dataset (Dual-Res: low-res SfM + 8K faces)
- pano_frames_1
- pano_frames_2
- pano_frames_3
- pano_frames_4
- model_dir
- num_images
- num_points
◄hires_dir►
◄output_namemy_scene►
◄matcher_typeexhaustive►
◄on_splitstop►
◄face_size0►
◄max_num_features8192►
◄peak_threshold0.0066►
◄edge_threshold10.00►
◄max_num_matches32768►
◄filter_max_reproj_error4.00►
◄filter_min_tri_angle1.50►
◄init_min_tri_angle4.00►
◄init_min_num_inliers30►
◄init_max_forward_motion1.00►
◄image_ordercamera_major►
◄hires_glob*.png►
◄frame_stride1►
◄max_frames0►
◄hires_1—►
◄hires_2—►
◄hires_3—►
◄hires_4—►
◄cleanup_hires_sourcefalse►
CategorySplatKit
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| pano_frames_1 | IMAGE | Equirect trajectory 1 (the frames SfM poses). | |
| hires_dir | STRING | OPTIONAL folder of matching hi-res equirects (e.g. <dataset>/panoramas_upscaled). Sorted order AND COUNT must match the frames wired in above, 1:1 (thin with this node's frame_stride, not the loader's). LEAVE EMPTY for a plain single-res SphereSfM run -- the cube faces are then reprojected from the posed frames. | |
| output_name | STRING | my_scene | Dataset folder under ComfyUI/output (or an absolute path). |
| pano_frames_2opt | IMAGE | Optional low-res trajectory 2. | |
| pano_frames_3opt | IMAGE | Optional low-res trajectory 3. | |
| pano_frames_4opt | IMAGE | Optional low-res trajectory 4. | |
| matcher_typeopt | COMBO | exhaustive | exhaustive matches ALL pairs (links non-adjacent trajectories); sequential only matches temporally adjacent frames. |
| on_splitopt | COMBO | stop | stop = raise with the per-model breakdown if >1 model forms; largest = reproject the biggest model anyway (legacy behaviour). |
| face_sizeopt | INT | 00–8192 | Output cube-face size in px; 0 = COLMAP default (scaled from the rescaled 8K SPHERE camera -> full detail). |
| max_num_featuresopt | INT | 8192512–65536 | — |
| peak_thresholdopt | FLOAT | 0.00660–1 | — |
| edge_thresholdopt | FLOAT | 10.001–100 | — |
| max_num_matchesopt | INT | 327681024–262144 | — |
| filter_max_reproj_erroropt | FLOAT | 4.000.5–32 | — |
| filter_min_tri_angleopt | FLOAT | 1.500.1–30 | — |
| init_min_tri_angleopt | FLOAT | 4.000.5–30 | — |
| init_min_num_inliersopt | INT | 3010–500 | — |
| init_max_forward_motionopt | FLOAT | 1.000.1–1 | — |
| image_orderopt | COMBO | camera_major | 2 options: camera_major, frame_major |
| hires_globopt | STRING | *.png | Glob for the hi-res files inside hires_dir. |
| frame_strideopt | INT | 11–100 | Use every Nth frame for SfM. Stride HERE, not in the image loader: this thins the low-res frames and the matching hi-res files together, so the two sets stay aligned 1:1. |
| max_framesopt | INT | 00–2000 | Cap the frame count after striding (0 = no cap). Frames are picked evenly across the strided clip. |
| hires_1opt | STRING | hires_manifest from the HiRes Composite feeding pano_frames_1. Wire it and hires_dir/hires_glob are ignored (dual-res on). | |
| hires_2opt | STRING | hires_manifest for pano_frames_2. | |
| hires_3opt | STRING | hires_manifest for pano_frames_3. | |
| hires_4opt | STRING | hires_manifest for pano_frames_4. | |
| cleanup_hires_sourceopt | BOOLEAN | false | After SfM succeeds, DELETE each consumed hi-res equirect (the HiRes Composite's frames/*.png, several GB per trajectory) from its ORIGINAL folder -- only once a byte-identical-size copy has been confirmed staged in this dataset's _spheresfm_work/equirect_hires (what repair/re-reprojection actually read from). OFF (default): keep everything, nothing is deleted -- safest, and required if you plan to re-run this node with a different frame_stride/ max_frames (a wider selection needs files this pass didn't keep). ON: frees the frames/ folder's disk once you're done iterating on THIS dataset. Only files this run actually used are touched; nothing outside hires_dir is ever removed. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model_dir | STRING | — |
| num_images | INT | — |
| num_points | INT | — |