Atlas Grade π¨
Match that AI patch to the plate without leaving ComfyUI
- image
- image
- report
AtlasGrade is a Nuke-style grade - lift, gamma, gain, saturation, mix - for one very specific job: making a generated fill or clean plate sit in the same frame as the photograph it's stitched into. If you've ever inpainted something, composited it back, and squinted at the seam where the colour doesn't quite match, you know exactly why this node exists. It's the two-knob fix that shouldn't require a round trip into Nuke, and inside the atlas-camera pack it's the step you put between an inpainted band and the projection so the clean plate stops reading as "AI pasted here."
How it works
The grade is the classic photo-finishing stack: lift (shadows), gamma (midtones), gain (highlights), then a saturation pass and a mix dial that blends the graded result against the input. Nothing exotic. What makes it worth using instead of rolling your own math is that it's float-safe - the math is done on the linear values so highlights never clamp, negative values skip the gamma pow, and an identity setting (all defaults) is an exact no-op. That matters in a pack whose whole colour path stays floating-point through to the EXR handoff: you don't want your "tiny adjustment" silently clipping the top of a plate you're about to project.
One honest limitation to know about: it takes an IMAGE tensor, not an ATLAS_PLATE_REF. The registered plate path still points at the ungraded file on disk, so if your export chain is resolving plates by reference, the grade is a preview-stage tool - do the final grade in the DCC.
The inputs
Only image is required. The five sliders are all optional with sensible defaults:
lift(β1 to 1) - shadows; nudge it when the fill is muddy where it meets darker plate regions.gamma(0.05β5) - midtones; the workhorse for "close but not matching."gain(0β8) - highlights.saturation(0β4) - the other workhorse, for fills that come back too grey or too hot.mix(0β1) - how much of the grade to apply. A gentle 0.3 "here's the direction, don't overshoot it" is a very useful default habit.
The output is the graded image, plus a report string that recaps the settings you applied. Wire the output straight into your stitch or projection node.
Install and gotchas
It ships with the atlas-camera pack - install once via ComfyUI Manager (search atlas-camera) or git clone https://github.com/mikejamesvfx/atlas-camera.git into custom_nodes, then restart. This node is pure Python; it needs nothing extra, no models, no GPU.
The classic gotcha isn't the node, it's the workflow around it: match the grade against the plate, not against a memory of the plate, and do it after stitching so you're judging the actual seam. Also remember the ordering convention - grade the fill, then project. If you grade after projection you're changing lighting across the whole projected scene, which is a different job.
It's a small node, deliberately so. When your inpainted band still looks off after a decent grade, the problem is usually context (the crop was too tight) rather than colour - but for the last 10% of "make it match," this is the fastest dial in the pack.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| liftopt | FLOAT | 0.000-1β1 | β |
| gammaopt | FLOAT | 1.000.05β5 | β |
| gainopt | FLOAT | 1.000β8 | β |
| saturationopt | FLOAT | 1.000β4 | β |
| mixopt | FLOAT | 1.000β1 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| report | STRING | β |