Nodes/Atlas Camera/Atlas Scale Override πŸ“
ComfyUI Node

Atlas Scale Override πŸ“

Atlas Scale Override πŸ“ β€” when you know the truth, tell the solve

By mikejamesvfxΒ·Created 3 months agoΒ·Updated a day agoΒ· 1
Atlas Scale Override πŸ“
  • solve
  • solve
  • report
β—„scale1.0β–Ί
β—„camera_height_m0.0β–Ί

AtlasScaleOverride is the blunt instrument of the pack's scale toolbox. Where AtlasReferenceScaleSolve measures scale from a known object, this node just lets you tell the solve the answer directly. You know the camera was at 12 metres, or you know the whole scene needs to be ten times bigger? Type the number, get a corrected solve, move on. It's the node you reach for when measurement is overkill and the truth is sitting in front of you.

Two ways to drive it

  • scale - a metric scale multiplier. 10.0 means the whole scene is 10Γ— as far/big, which is the classic single-image "1:10" model case. Because metric scale is proportional to camera height, this uniformly rescales every downstream distance: geometry, the πŸ“ cutoffs that decide which references matter, and the cameras your DCC exports. What it does not change is the projected view - the plate still reassembles exactly, because texel assignment is by ray, not by distance.
  • camera_height_m - the absolute override. When you know the real vantage height, set it here and the node computes the factor for you. This wins whenever both are set; scale is ignored once camera_height_m > 0.

Either way you get an updated solve out and a report telling you what happened.

The thing to understand

The reason there are three scale-fixing nodes in this pack (reference-object, this override, and the learned solve's own output) is that scale is the one quantity a single photo genuinely cannot measure. The solve's orientation and focal are geometry; scale is an assumption. AtlasScaleOverride exists for the moment you can replace that assumption with a fact - and it's also the honest escape hatch when a reference object just isn't there. If nothing in the frame has a known size, choosing a defensible camera height by hand and locking it is strictly better than exporting an unexamined "assumed" scale that's wrong by 10Γ—.

Gotchas

The output still says "metric" even when you pulled the number from thin air - the node can't know you were guessing. So the discipline is on you: if the scale came from vibes, treat everything downstream that depends on metres (interocular distances, parallax, DCC camera move budgets) as a range, not a truth. The pack's AtlasSceneHealthGate exists partly because of exactly this class of silent error. And no, scaling never rescales the projected image - if your plate is smearing or tearing, scale is not your problem; look at the geometry and masks instead.

Install

Core node, no dependencies:

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

Restart, find it under Atlas/02 Β· Orient & Scale, or install via ComfyUI Manager by searching "atlas-camera". Drop it between your solve node and whatever consumes scale (geometry, depth, exports) - it's composable after any solve, which is the intended position.

CategoryAtlas/02 Β· Orient & Scale

Inputs (3)

NameTypeDefaultDescription
solveATLAS_SOLVEβ€”
scaleoptFLOAT1.00.001–100000Metric scale multiplier β€” 10.0 = the whole scene is 10Γ— as far/big (the single-image '1:10' case). Metric scale ∝ camera height, so this uniformly rescales every downstream distance (geometry, πŸ“ cutoffs, DCC-export cameras); the projected view is unchanged. Ignored when camera_height_m > 0.
camera_height_moptFLOAT0.00–1000000Absolute override: SET the camera height in metres when you know the real vantage (the node computes the factor). 0 = use the scale multiplier instead.

Outputs (2)

NameTypeDescription
solveATLAS_SOLVEβ€”
reportSTRINGβ€”