ComfyUI Node
Atlas Planar Hole Patch ◩
A ComfyUI node in Atlas/06 · Patch & Repair with 12 inputs and 4 outputs.
Atlas Planar Hole Patch ◩
- solve
- hole_mask
- solve
- remaining_holes
- report
- created_islands
◄layer►
◄ring_cells2►
◄max_components64►
◄normal_tolerance_deg25►
◄max_plane_error_m0.15►
◄max_hole_fraction0.050►
◄enclosed_onlytrue►
◄min_normal_support_fraction0.30►
◄max_patch_edge_factor20►
◄max_patch_depth_factor2.0►
CategoryAtlas/06 · Patch & Repair
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| solve | ATLAS_SOLVE | — | |
| hole_maskopt | MASK | Selected relief holes to patch — usually the hole_mask output of AtlasDeriveReliefMesh or AtlasCleanPlateLayer, optionally through a scope mask. LEAVE UNWIRED to treat EVERY hole in the target layer(s) as a candidate, which is what you want for a whole-solve sweep; the enclosed_only / max_hole_fraction / max_components gates still bound what actually gets filled. | |
| layeropt | STRING | Blank = primary relief mesh; a ProjectionSource name = that layer's relief mesh; '*' = every relief mesh (primary + all sources), chaining the solve through one pass per layer. | |
| ring_cellsopt | INT | 21–12 | How many valid grid rings around each hole supply normal and plane-fit support. |
| max_componentsopt | INT | 641–1024 | Maximum eligible hole islands to fit, smallest first. Frame/oversize rejections do not consume this budget. |
| normal_tolerance_degopt | FLOAT | 251–89 | Maximum boundary-normal spread. Lower is safer at corners; higher accepts rougher/curved surfaces. |
| max_plane_error_mopt | FLOAT | 0.150.001–10 | Maximum 95th-percentile residual in metres for the densest plane-position band among agreeing normals. |
| max_hole_fractionopt | FLOAT | 0.0500.0001–1 | Largest accepted component as a fraction of relief grid cells. Keeps large sky/background gaps out. |
| enclosed_onlyopt | BOOLEAN | true | Reject components touching the image frame. Recommended: frame/sky openings are not occlusion holes. |
| min_normal_support_fractionopt | FLOAT | 0.300.1–1 | Minimum share of surrounding valid normals that must agree on one plane angle. Lower values allow one-sided facade/occlusion repairs. Agreeing normals are averaged; max_plane_error_m then checks their positional fit. |
| max_patch_edge_factoropt | FLOAT | 201–100 | Reject a generated island when its longest triangle edge exceeds this multiple of its source-pixel span times the boundary's median metres-per-pixel. Prevents grazing camera-ray spikes at any image/camera scale. |
| max_patch_depth_factoropt | FLOAT | 2.01–20 | Reject a patch whose nearest/farthest camera depth extends beyond this multiple of the fitted local support depth band. Catches forward and backward Z needles independently of the edge-length gate. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| solve | ATLAS_SOLVE | — |
| remaining_holes | MASK | — |
| report | STRING | — |
| created_islands | MASK | — |