Nodes/Atlas Camera/Atlas Solve Gate ✅
ComfyUI Node

Atlas Solve Gate ✅

Atlas Solve Gate ✅ — don't burn the expensive minutes on a camera you haven't approved

By mikejamesvfx·Created 3 months ago·Updated a day ago· 1
Atlas Solve Gate ✅
  • solve
  • source_image
  • solve
  • report
  • preview_solve
proceedfalse
approved_for
apply_overridefalse
pitch_deg0.00
roll_deg0.00
heading_overridefalse
heading_deg0.00

AtlasSolveGate exists to stop you from spending twenty minutes of render time on a camera you haven't actually looked at. The heavy parts of an Atlas workflow - the band layers, the sky dome, the Fixer, the exports, the things the README calls "the minutes" - all run downstream of the solve. If the solve is subtly wrong, that's a lot of compute wasted on a lie. This node puts a pause between the cheap part and the expensive part: it blocks everything downstream until you've eyeballed the camera and clicked ✅ Approve Solve.

It's the second gate in the pack's family (the VLM pre-flight gate, this one, the scale gate, the scene-health gate), and it all follows the same doctrine: let the artist override but never lose a warning.

How the wiring goes

  • Wire solve → the heavy stack (bands, dome, exports) and preview_solve → a viewport for an always-live look at the camera.
  • First queue costs you a solve and a thumbnail-grade preview. You check the camera, drag the gravity compass if it's wrong, click ✅, and the re-queue runs the expensive graph exactly once, on the orientation you signed off.

While proceed is off, the solve output returns an ExecutionBlocker - ComfyUI's native "everything downstream of this is silently paused" signal, so the heavy nodes don't even start. The ✅ button sets proceed and stamps the approval.

Inputs that matter

  • solve and source_image - both are part of the approval identity. A new photo or a re-solve with different settings re-arms the gate instead of sailing through a stale approval. That's the fingerprint rule every gate in the pack follows, and it's the part people find surprising in the best way: you literally cannot accidentally approve solve A and then silently run solve B.
  • apply_override - use the gate's visual gravity compass instead of the incoming solved gravity.
  • pitch_deg (positive looks down), roll_deg, and optionally heading_override / heading_deg - the absolute camera corrections you can make at the gate before approving. This is where you fix a tilted horizon or re-point the world heading while you're looking at it, rather than going back to re-solve.

Three outputs: the gated solve, a report, and preview_solve for the viewport. One trick for interactive work: set proceed by hand with an empty approved_for if you want an unconditional manual override - but then you're on your own for re-arming discipline.

Install

Core node, no dependencies:

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

Restart or use ComfyUI Manager ("atlas-camera"). It's listed under Atlas/advanced in the menu - still supported and tested, just tucked away from the quickstart path. If your graph has a genuinely interactive camera, this is the node that makes the interaction safe instead of scary.

CategoryAtlas/09 · QA & Gates

Inputs (9)

NameTypeDefaultDescription
solveATLAS_SOLVE
source_imageIMAGEThe photo this solve came from — part of the approval identity, so swapping the image re-arms the gate.
proceedoptBOOLEANfalseWhile off, the solve output returns ExecutionBlocker and everything downstream of the gate is silently paused. The ✅ Approve Solve button sets this and re-queues.
approved_foroptSTRINGFingerprint of the solve+image the current approval was given for (stamped by ✅). Mismatch re-arms the gate. Leave empty when toggling proceed by hand to approve unconditionally.
apply_overrideoptBOOLEANfalseUse the gate's visual gravity compass instead of the incoming solved gravity.
pitch_degoptFLOAT0.00-89–89Absolute camera pitch; positive looks down.
roll_degoptFLOAT0.00-180–180Absolute camera roll; positive turns the scene counter-clockwise.
heading_overrideoptBOOLEANfalseEnable the central world XYZ heading ring to align the horizontal grid.
heading_degoptFLOAT0.00-180–180Absolute Atlas world heading: 0 faces -Z; +90 faces +X.

Outputs (3)

NameTypeDescription
solveATLAS_SOLVE
reportSTRING
preview_solveATLAS_SOLVE