Atlas Clean Plate Stack π§½ (up to 4 plates + alphas)
Four painted plates, one layered scene
- solve
- depth
- plate_1
- matte_1
- plate_2
- matte_2
- plate_3
- matte_3
- plate_4
- matte_4
- solve
- report
If you're a matte painter who does the classic thing - separate the plate in Photoshop into sky / mountains / buildings / road, save each stratum as a full-frame plate plus an alpha - then Atlas Clean Plate Stack π§½ is the node that turns that pile of PNGs into a layered 3D scene in one shot. It's the multi-slot injection port: up to four plate+matte pairs, each becomes a depth layer, and out comes a solve whose projection stack is ready for the viewport and the DCC exporters.
How the slots work
Slot 1 is the FARTHEST stratum (far_sky), slot 4 the nearest (foreground). Priorities are assigned farthest-highest - 15 / 10 / 5 / 0 - the same seam doctrine as AtlasCleanPlateLayer. And the DMP seam rule is baked in: every used slot except the nearest gets the edge_extend_px smear, while the nearest keeps a clean cut. The smear keeps the behind-layer edges from showing as dark or transparent gaps when the camera moves; the nearest layer doesn't need it because nothing sits in front of it.
Each slot has a name_* (what it's called in the export) and a geometry_* pick - card for the far sky (a flat backdrop, never tears), relief for anything with real shape, ground for flat horizontal surfaces. The defaults are sensible: far_sky as card, everything else as relief.
Under the hood it's pure composition over AtlasCleanPlateLayer - the stack node adds no new math, it just orchestrates four of them. Per slot: the matte is grown by grow_px (12 default), its inverse becomes the geometry's exclusion mask, and the raw matte becomes the paint layer's edge matte.
The one gotcha that will trip you
mattes_are_transparency defaults to off, and the wiring hint in the source explains why: ComfyUI's LoadImage MASK output marks transparent pixels, not opaque ones. If you save each separation as a PNG with alpha and wire one LoadImage per slot (IMAGE β plate_N, MASK β matte_N), flip mattes_are_transparency ON - or pre-invert each mask with InvertMask. Get this backwards and your mattes are inverted and the layers vanish. It's the single most common miswire on this node.
Everything else
relief_grid (384 default) and depth_edge_rel (1.5) control mesh density and tear sensitivity for the band meshes - the defaults are the empirically-calibrated band-layer settings. A slot missing a plate OR a matte - or with an empty matte - is skipped and named in the report, never an error. With no complete slot at all, the input solve passes through untouched.
Inputs: solve and depth required; outputs are the updated solve and a report listing which slots were used and which were skipped. Needs the [neural] extra for the metric depth the layer meshes are built from - without it the node fails soft with an explanatory report rather than breaking your graph. Install is the pack's usual clone-and-go.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| solve | ATLAS_SOLVE | β | |
| depth | ATLAS_DEPTH_MAP | β | |
| plate_1opt | IMAGE | β | |
| matte_1opt | MASK | β | |
| plate_2opt | IMAGE | β | |
| matte_2opt | MASK | β | |
| plate_3opt | IMAGE | β | |
| matte_3opt | MASK | β | |
| plate_4opt | IMAGE | β | |
| matte_4opt | MASK | β | |
| name_1opt | STRING | far_sky | β |
| geometry_1opt | COMBO | card | 3 options: relief, card, ground |
| name_2opt | STRING | background | β |
| geometry_2opt | COMBO | relief | 3 options: relief, card, ground |
| name_3opt | STRING | midground | β |
| geometry_3opt | COMBO | relief | 3 options: relief, card, ground |
| name_4opt | STRING | foreground | β |
| geometry_4opt | COMBO | relief | 3 options: relief, card, ground |
| grow_pxopt | INT | 120β256 | matte safety grow before the geometry cut |
| edge_extend_pxopt | INT | 240β256 | smear on the BEHIND slots; the nearest used slot always stays a clean cut |
| relief_gridopt | INT | 38416β4096 | β |
| depth_edge_relopt | FLOAT | 1.500.05β8 | β |
| mattes_are_transparencyopt | BOOLEAN | false | ON when mattes come straight from LoadImage's MASK output (which marks TRANSPARENT pixels) β inverts them |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| solve | ATLAS_SOLVE | β |
| report | STRING | β |