Nodes/atlas-camera/Atlas Occlusion Mask πŸ•³
ComfyUI Node

Atlas Occlusion Mask πŸ•³

A ComfyUI node in Atlas/04 Β· Masks with 19 inputs and 2 outputs.

By mikejamesvfxΒ·Created 2 months agoΒ·Updated about 23 hours agoΒ· 1
Atlas Occlusion Mask πŸ•³
  • solve
  • target_image
  • primary_depth
  • occlusion_mask
  • coverage_mask
β—„patch_azimuth_viewfront-right quarter viewβ–Ί
β—„patch_elevation_vieweye-level shotβ–Ί
β—„patch_distancemedium shotβ–Ί
β—„source_azimuth_viewfront viewβ–Ί
β—„source_elevation_vieweye-level shotβ–Ί
β—„flip_azimuthfalseβ–Ί
β—„depth_modeldepth-anything/Depth-Anything-V2-Metric-Outdoor-Large-hfβ–Ί
β—„deviceautoβ–Ί
β—„angle_threshold90β–Ί
β—„dilate_px0β–Ί
β—„soft_edge_px0β–Ί
β—„power1.0β–Ί
β—„occlusion_modesimpleβ–Ί
β—„depth_bias0.05β–Ί
β—„patch_view_overrideβ€”β–Ί
β—„exact_view_overrideβ€”β–Ί
CategoryAtlas/04 Β· Masks

Inputs (19)

NameTypeDefaultDescription
solveATLAS_SOLVEβ€”
target_imageIMAGEβ€”
patch_azimuth_viewoptCOMBOfront-right quarter viewThe LoRA azimuth target_image was generated at β€” should match whatever you'll later pass to AtlasAddPatchView for this image.
patch_elevation_viewoptCOMBOeye-level shotThe LoRA elevation target_image was generated at.
patch_distanceoptCOMBOmedium shotThe LoRA distance target_image was generated at.
source_azimuth_viewoptCOMBOfront viewWhich view your SOURCE photo already is, in the LoRA's absolute frame. Must match the value you'll use in AtlasAddPatchView.
source_elevation_viewoptCOMBOeye-level shotElevation of the SOURCE photo in the LoRA's frame.
flip_azimuthoptBOOLEANfalseMust match the AtlasAddPatchView setting for this patch.
depth_modeloptCOMBOdepth-anything/Depth-Anything-V2-Metric-Outdoor-Large-hf10 options: depth-anything/Depth-Anything-V2-Metric-Outdoor-Large-hf, depth-anything/Depth-Anything-V2-Metric-Indoor-Large-hf, depth-anything/DA3METRIC-LARGE, depth-anything/DA3MONO-LARGE, depth-anything/DA3NESTED-GIANT-LARGE-1.1, Ruicheng/moge-2-vitl-normal, +4
deviceoptCOMBOauto4 options: auto, cuda, mps, cpu
angle_thresholdoptFLOAT900–90Facing-angle gate in degrees for the PRIMARY camera's coverage. 90 (default) = only frustum/behind-camera/out-of-frame failures are masked. Lower values also mask surfaces too grazing to the primary.
dilate_pxoptINT00–200Expand the white (missing) mask region by this many pixels.
soft_edge_pxoptINT00–200Blur the dilated mask edge by this many pixels, for compositing.
poweroptFLOAT1.00.1–8Gamma remap after blur; > 1 makes the patch contribution more solid near the feathered edge.
occlusion_modeoptCOMBOsimplesimple = Phase-1 frustum/frame/facing tests only (unchanged). depth_shadow = additionally detect surfaces hidden behind NEARER geometry from the primary's view (true MPTK camera-as-light shadow test, using primary_depth as the shadow map). Falls back to simple when primary_depth isn't connected.
primary_depthoptATLAS_DEPTH_MAPAtlasDepthMap run on the PRIMARY/source photo β€” the shadow map for depth_shadow mode. Wire the same shared AtlasDepthMap the derive nodes already use.
depth_biasoptFLOAT0.050–1depth_shadow only: relative depth tolerance before a point counts as shadowed β€” guards against monocular depth-precision false positives. 0.05 = must be 5% farther than the stored depth.
patch_view_overrideoptSTRINGOptional: wire AtlasBlockoutViewport's patch_prompt output here β€” overrides the three patch_* dropdowns with πŸ“ Extract Angle's snapped views, keeping this mask aligned with the same AtlasAddPatchView wiring. Errors loudly if unparseable.
exact_view_overrideoptSTRINGOptional: wire AtlasBlockoutViewport's patch_exact output here (πŸ“'s RAW orbit floats) β€” wins over patch_view_override and the dropdowns, flip_azimuth ignored, placing this mask's target camera IDENTICALLY to an AtlasAddPatchView driven by the same string (the shared never-drift contract). Errors loudly if unparseable.

Outputs (2)

NameTypeDescription
occlusion_maskMASKβ€”
coverage_maskMASKβ€”