π§© Splat Patch POC 2
π§© Splat Patch POC 2 β the triage node that scans the whole scene
- ply_data
- source_camera_poses
- triage_images
- triage_masks
- triage_camera_poses
- triage_camera_intrinsics
- triage_raw_images
Different shape of the same problem. Where SplatPatchPOC picks a trajectory and renders targeted views, VNCCS_SplatPatchPOC2 does a systematic scan: it sweeps the splat from a grid of viewpoints (default 24 yaw positions at a low pitch), renders small 384px tiles, and triages every region as "has content," "missing," or "bad." The output is a map of the scene's health, not a single repair job.
That's why its required input is just ply_data - no source images needed. It doesn't know or care what your original photos were; it just scans the reconstruction itself and reports where the splat is thin or broken. The outputs tell the story: triage_images, triage_masks, triage_raw_images, plus triage_camera_poses/intrinsics for every scanned view.
The scan dials
scan_yaw_count(default 24, up to 96) - how many positions around the compass. More = finer coverage, slower.scan_pitch_deg(default 8) - how far off horizontal the scan tilts. Rooms need a bit of up/down to see the floor and ceiling.scan_size(default 384, 128β768) - per-view render size. Small and fast is the point; this is triage, not final renders.camera_radius_fraction(default 0.08) - how far out the sweep sits from the scene center, as a fraction of scene size.coverage_threshold,speckle_kernel,min_bad_ratio,max_missing_ratio- the classification rules.speckle_kernel(default 9) is the noise filter that decides what counts as "a bit of missing" vs "genuinely empty";min_bad_ratio(0.03) andmax_missing_ratio(0.65) set how much badness makes a view worth flagging.min_yaw_separation_deg- dedupes near-duplicate scan angles so you don't triage the same wall 3 times.use_gsplat/max_render_points- render backend and point budget.
What you do with a triage
The workflow intent: scan first, look at the triage_masks to find where the scene falls apart, then aim the targeted SplatPatchPOC / SplatPatchPOC_v2 at exactly those regions. Triage tells you what to fix; the POC nodes fix a specific view. Used together they stop you from rendering a 20-view repair pass over a scene that's fine except for one wall.
As ever with this experimental family: expect tuning. The threshold semantics (min_bad_ratio, max_missing_ratio) are the fiddliest part and worth two minutes of experimentation before you trust a triage map.
Install
The pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/AHEKOT/ComfyUI_HYWorld2
cd ComfyUI_HYWorld2
pip install -r requirements.txt
python install.py
Or Manager β HY-World 2.0. use_gsplat on by default means the vendored fork matters here too.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| ply_data | PLY_DATA | β | |
| source_camera_posesopt | TENSOR | β | |
| view_countopt | INT | 81β64 | β |
| widthopt | INT | 1022252β2048 | β |
| heightopt | INT | 1022252β2048 | β |
| fovopt | FLOAT | 9045β130 | β |
| scan_yaw_countopt | INT | 244β96 | β |
| scan_pitch_degopt | FLOAT | 80β30 | β |
| scan_sizeopt | INT | 384128β768 | β |
| camera_radius_fractionopt | FLOAT | 0.080β0.35 | β |
| central_weight_fractionopt | FLOAT | 0.820.25β1.25 | β |
| coverage_thresholdopt | FLOAT | 0.080β1 | β |
| speckle_kernelopt | INT | 91β41 | β |
| min_bad_ratioopt | FLOAT | 0.030β0.95 | β |
| max_missing_ratioopt | FLOAT | 0.650.05β1 | β |
| min_yaw_separation_degopt | FLOAT | 180β90 | β |
| clamp_to_splat_boundsopt | BOOLEAN | true | β |
| bounds_margin_fractionopt | FLOAT | 0.080β0.45 | β |
| use_gsplatopt | BOOLEAN | true | β |
| max_render_pointsopt | INT | 12000000β20000000 | β |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| triage_images | IMAGE | β |
| triage_masks | MASK | β |
| triage_camera_poses | TENSOR | β |
| triage_camera_intrinsics | TENSOR | β |
| triage_raw_images | IMAGE | β |