Nodes/Atlas Camera/Atlas Deband 🎚
ComfyUI Node

Atlas Deband 🎚

Kill the banding in your 8-bit-born plates

By mikejamesvfxΒ·Created 3 months agoΒ·Updated a day agoΒ· 1
Atlas Deband 🎚
  • image
  • image
  • report
β—„strength0.50β–Ί
β—„band_threshold2.0β–Ί
β—„radius_px24β–Ί
β—„preserve_detail0.50β–Ί
β—„add_grain0.000β–Ί

Projection is brutally honest: any banding in your source plate gets stretched across geometry and comes back louder than it ever was. AI images and JPEGs are born 8-bit, and 8-bit gradients posterize into visible contour bands the moment a camera move or a grade amplifies them. Atlas Deband 🎚 is the pack's answer - a model-free, gradient-gated smoothing pass that knocks out the banding without touching real edges.

How it works

The mechanism is worth understanding because it's what makes this node safe to run:

  • Gradient gating. Only quantization plateaus - regions where the local luma gradient is below band_threshold (in 8-bit LSB steps, default 2) - are smoothed. Real edges have sharp gradients, so they gate to zero and pass through bit-exact. Banding is, by definition, a plateau; detail is, by definition, a gradient. The gate tells them apart.
  • Range-clamped correction. The correction is limited to a few banding steps, so nothing can bleed across an edge.
  • Float-safe throughout. It never quantizes and never clamps HDR values above 1.0. That matters in a float pipeline - a deband that clamps would destroy your ACEScg highlights.

The pack calls it "model-free" deliberately: no trained network, no GPU, deterministic, fast. It's the same class of trick as the edge-extend smear the clean-plate path uses, applied to luma instead of texture.

The settings

  • strength - overall effect, 0–1, default 0.5.
  • band_threshold - the largest luma step still treated as banding. Raise it for heavily compressed sources (more aggressive), lower it to protect subtle texture.
  • radius_px - the smoothing neighborhood, default 24.
  • preserve_detail - sharpens the edge gate; 1.0 is the most conservative (touches only clear plateaus). If your plate has fine texture that keeps getting softened, raise this.
  • add_grain - triangular dither on gated pixels only, to break residual contours. 0.005–0.01 is usually enough to hide what smoothing leaves behind.

Where to put it

The source is explicit: place it before AtlasRegisterPlate, projection, or the sky dome. That's the "clean your source before it becomes geometry" order. There's also one genuinely important caveat, stated right in the node's docstring: it's IMAGE-only - it cannot touch an ATLAS_PLATE_REF. So if you deband and then register a plate reference to the original file, the registered path still refers to the un-debanded original. If you deband, save the debanded file yourself and register that - or accept that the registered plate is the noisy one.

Outputs: image and report. The report states the settings and reminds you about the plate-ref caveat, which is a nice touch of honesty. Install is the pack's clone-and-go; pure Python, no extras.

CategoryAtlas/08 Β· Look & Render

Inputs (6)

NameTypeDefaultDescription
imageIMAGEβ€”
strengthoptFLOAT0.500–1β€”
band_thresholdoptFLOAT2.00.5–8Largest luma step (8-bit LSB units) still treated as banding. Raise for heavily compressed sources, lower to protect subtle texture.
radius_pxoptINT242–128β€”
preserve_detailoptFLOAT0.500–1Sharpens the edge gate: 1.0 = most conservative (touches only clear plateaus).
add_grainoptFLOAT0.0000–0.15Triangular dither on gated pixels to break residual contours.

Outputs (2)

NameTypeDescription
imageIMAGEβ€”
reportSTRINGβ€”