ComfyUI Node
SphereSfM Add Camera Path
A ComfyUI node in SplatKit with 17 inputs and 4 outputs.
SphereSfM Add Camera Path
- pano_frames_1
- pano_frames_2
- pano_frames_3
- pano_frames_4
- model_dir
- num_images
- num_points
- num_added_frames
◄dataset_dir►
◄frame_stride1►
◄max_frames0►
◄matcher_typeexhaustive►
◄adjust_existing_camerasfalse►
◄retriangulatetrue►
◄face_size0►
◄max_num_features8192►
◄peak_threshold0.0066►
◄edge_threshold10►
◄max_num_matches32768►
◄abs_pose_min_num_inliers30►
◄image_ordercamera_major►
CategorySplatKit
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| dataset_dir | STRING | The EXISTING SphereSfM dataset to add to -- wire the Dataset Project node's dataset_dir here (the same value the base SphereSfM node used as output_name), or type the dataset folder name/path. Must contain _spheresfm_work/ from a mode=colmap_now build. | |
| pano_frames_1opt | IMAGE | The new WAN equirect pano video (one Camera Plot + WAN group) to add to the dataset. Required in practice. | |
| pano_frames_2opt | IMAGE | Optional extra new trajectory; concatenated after pano_frames_1. | |
| pano_frames_3opt | IMAGE | Optional third new trajectory. | |
| pano_frames_4opt | IMAGE | Optional fourth new trajectory. | |
| frame_strideopt | INT | 11–100 | Use every Nth new frame. Thin long clips but keep matching overlap. |
| max_framesopt | INT | 00–1000 | Cap NEW frames after stride (0 = no cap). |
| matcher_typeopt | COMBO | exhaustive | How to match the new frames. exhaustive (default) matches them against the EXISTING frames too, which is what lets a separate path link into the reconstruction -- keep this unless the new clip is a direct temporal continuation of the last one. |
| adjust_existing_camerasopt | BOOLEAN | false | OFF (default): keep the existing cameras/poses FIXED -- purely additive, original views stay bit-stable, only new faces written. ON: let a global solve refine existing poses to fit the new data (re-renders EVERY cube face; use only if the new path reveals the base was slightly off). |
| retriangulateopt | BOOLEAN | true | Run point_triangulator after registration so the newly added images contribute 3D points (denser cloud in the added region). Off = register poses only (faster, sparser). |
| face_sizeopt | INT | 00–2048 | Cube-face resolution (px). 0 = auto (~equirect_w/4). Set the SAME value the base dataset used so new faces match the existing ones. |
| max_num_featuresopt | INT | 81921024–32768 | — |
| peak_thresholdopt | FLOAT | 0.00660–0.1 | — |
| edge_thresholdopt | FLOAT | 101–50 | — |
| max_num_matchesopt | INT | 327684096–131072 | — |
| abs_pose_min_num_inliersopt | INT | 3010–200 | Min verified inliers to register a new image against the existing 3D points. Lower if new frames won't register; raise for stricter. |
| image_orderopt | COMBO | camera_major | Order recorded in the dataset marker for upscaling (COLMAP files untouched). camera_major groups each cube face into a coherent per-view sub-video across ALL trajectories; frame_major keeps plain lexical order. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model_dir | STRING | — |
| num_images | INT | — |
| num_points | INT | — |
| num_added_frames | INT | — |