Nodes/Atlas Camera/Atlas Plate Layer 🎞 (any plate on any geometry)
ComfyUI Node

Atlas Plate Layer 🎞 (any plate on any geometry)

Any plate on any geometry β€” the Nuke move

By mikejamesvfxΒ·Created 3 months agoΒ·Updated a day agoΒ· 1
Atlas Plate Layer 🎞 (any plate on any geometry)
  • solve
  • plate_image
  • geometry_from
  • mask
  • plate_ref
  • solve
  • report
β—„geometry_filterblender_import, blender_massing, viewport_polygonβ–Ί
β—„nameclean_plate_layerβ–Ί
β—„priority5β–Ί
β—„move_from_primarytrueβ–Ί

Most of the atlas-camera layer nodes build their own geometry - AtlasCleanPlateLayer makes a depth-band mesh for its plate. Atlas Plate Layer is the one that takes the geometry you already have - Blender-imported occluded surfaces, viewport-drawn planes, a merged solve - and projects any plate onto it. The display name says it plainly: "any plate on any geometry." It's the 🎞 in Atlas/07 · Clean Plate & Inpaint, and the docstring calls it the Nuke move.

It exists to close the loop the pack's ecosystem opens: you've got an occluded hillside you imported via AtlasBlenderMassing, or a water surface you drew as a viewport polygon, or geometry from AtlasMergeGeometry. You have a clean plate, an inpaint, or a whole matte painting of what should be there. This node stitches the two together - a new ProjectionSource that paints plate_image onto the selected geometry from the primary camera.

How it works

It reads the proxy primitives on your solve (or on a separate solve via geometry_from), filters them with geometry_filter - a comma list of primitive sources (blender_import, blender_massing, viewport_polygon, depth_relief_mesh, block_massing, ...) and/or name prefixes (agent_, massing_, drawn_plane_), or * for every primitive - and appends a projection layer for that geometry.

The projection mode is clean_plate: no facing discard, no primary-depth cull - it's meant to show exactly where the foreground occludes, so the plate stays visible right up to the seam. You chain one per plate, unlimited plates, each on whatever geometry you name, and priority decides overlaps (higher wins; the primary is implicitly highest).

Inputs and outputs

  • solve (required) - the scene.
  • plate_image (required) - the plate to project: clean plate, inpaint, matte painting, in the primary camera's frame.
  • geometry_from - take the geometry from this solve instead of solve (e.g. an AtlasBlenderMassing / AtlasMergeGeometry output). Empty = solve.
  • geometry_filter - which primitives land on this layer (see above).
  • name - layer name, default clean_plate_layer.
  • priority - overlap winner, default 5.
  • move_from_primary (default on) - remove the selected primitives from the primary scene so only this plate paints them. Off leaves copies in both, and the primary photo wins where it can see.
  • mask - optional per-pixel matte in the plate's frame (white = paint).
  • plate_ref - optional colour-managed plate reference for the exporters.

Outputs: solve (with the layer) and report.

Installing it

Core-tier node:

cd <ComfyUI>/custom_nodes
git clone https://github.com/mikejamesvfx/atlas-camera.git

Restart, find it in Atlas/07 Β· Clean Plate & Inpaint (ComfyUI Manager: "atlas-camera").

Common issues

move_from_primary is the trap with the cleanest failure mode: leave it off and the same surface gets painted twice - the source photo (implicitly highest priority) wins and your plate never shows. It defaults on for that reason; only turn it off when you explicitly want both.

And the node never raises on an empty selection - it reports and continues. So if you wire a geometry_filter that matches nothing (typo in a source name, wrong geometry_from), you get a silent no-op layer, not an error. Read the report, and remember * is your friend when you just want "all the geometry this layer should own."

CategoryAtlas/07 Β· Clean Plate & Inpaint

Inputs (9)

NameTypeDefaultDescription
solveATLAS_SOLVEβ€”
plate_imageIMAGEThe plate to project β€” a clean plate, an inpaint, a matte painting β€” in the PRIMARY camera's frame.
geometry_fromoptATLAS_SOLVETake the geometry from THIS solve instead of `solve` (e.g. the AtlasBlenderMassing / AtlasAgentHandoff / AtlasMergeGeometry output). Empty = `solve` itself.
geometry_filteroptSTRINGblender_import, blender_massing, viewport_polygonComma list of primitive SOURCES (blender_import, blender_massing, viewport_polygon, depth_relief_mesh, block_massing, ...) and/or NAME prefixes (agent_, massing_, drawn_plane_) to put on this layer. '*' = every PROXY_ROLE primitive.
nameoptSTRINGclean_plate_layerβ€”
priorityoptFLOAT50–100Higher wins where layers overlap; the primary is implicitly highest.
move_from_primaryoptBOOLEANtrueRemove the selected primitives from the primary scene so only this plate paints them. Off = leave copies in both (the primary photo wins where it can see).
maskoptMASKOptional per-pixel matte in the plate's frame (white = paint).
plate_refoptATLAS_PLATE_REFOptional plate reference for the exporters (colour management).

Outputs (2)

NameTypeDescription
solveATLAS_SOLVEβ€”
reportSTRINGβ€”