Nodes/radiance/◎ Radiance CDL Transform
ComfyUI Node

◎ Radiance CDL Transform

Radiance CDL Transform — the on-set grade format your shots actually arrive in

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Radiance CDL Transform
  • image
  • IMAGE
cdl_file
slope_r1.00
slope_g1.00
slope_b1.00
offset_r0.000
offset_g0.000
offset_b0.000
power_r1.00
power_g1.00
power_b1.00
saturation1.00

Real footage arrives with a sidecar file nobody outside VFX knows about: a CDL, or Color Decision List - the ASC's standard way of storing a basic color grade as slope, offset, power, and saturation. Dailies colorists generate them on-set, and they're the lingua franca of shot matching between facilities. Radiance CDL Transform applies that format to your images - either by loading a .cc or .ccc file or by typing the SOP values by hand. It's how you make an AI element match the on-set grade instead of guessing at it.

It's also the honest-simple end of the grading spectrum. Where ◎ Radiance Grade gives you LGG plus presets and matching, CDL is deliberately bare: four operations per channel, the same four every colorist knows, no extra buttons.

How it works

The ASC CDL is defined as, per channel: output = (input * slope + offset) ^ power, then a global saturation. Each is a precise operation with a precise job:

  • Slope - multiply. Scales the channel; in practice the highlight/gain control. Default 1.
  • Offset - add. Shifts everything; the lift/shadows control. Default 0.
  • Power - exponent. The gamma/midtones control, applied after slope+offset. Default 1.
  • Saturation - a single global value, 0 = grayscale, 1 = unchanged. Default 1.

The node maps these straight to slope_r/g/b, offset_r/g/b, power_r/g/b, and saturation. If you have a CDL from a colorist, it's a drop-in: set cdl_file to the .cc (single shot) or .ccc (a list) path and it overrides the manual values. If you don't have a file, the manual fields are right there.

The inputs that matter

  • image - input.
  • cdl_file - path to a .cc or .ccc file. The tooltip is explicit: "Overrides manual values if specified." This is the killer feature for real pipelines - paste in the path, get the on-set grade.
  • slope_r/g/b, offset_r/g/b, power_r/g/b - the nine SOP values. Slope 0–5, offset -1 to 1, power 0.1–3.
  • saturation - 0–3.

Output: the graded IMAGE.

Where it fits

CDLs are the transferable grade. A colorist gives you a .cc file, you drop it in, and your AI element matches the plate's on-set color - no eyeballing a teal slider until it's "close." It's also the natural companion to the pack's ◎ Radiance Grade Match: match gets you in the ballpark statistically, a CDL gets you the exact on-set values. And because it's pure OCIO under the hood, it runs in float and won't band like an 8-bit adjustment.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt   # or requirements_windows.txt / requirements_linux.txt / requirements_mac_silicon.txt

Or search Radiance in ComfyUI Manager. Linux needs libopenexr-dev first; restart after.

Gotchas

The .ccc format holds multiple CDLs per clip, and the node needs to know which entry to use - the tooltip mentions .cc/.ccc support, so if your .ccc has several grades and it applies the wrong one, check the entry selection. Second, order matters: CDL is slope → offset → power, and that order is baked into the standard. If you're typing values by hand and your result looks like the opposite intent, you're probably thinking in LGG terms - in CDL, "lift" is offset and it happens after slope, not before. Third, a CDL is a basic grade by design; it won't reproduce a complex look. For that, export the grade from Radiance Grade as grade_info instead.

CategoryFXTD Studios/Radiance/Color

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
cdl_fileoptSTRINGPath to .cc or .ccc CDL file. Overrides manual values if specified.
slope_roptFLOAT1.000–5
slope_goptFLOAT1.000–5
slope_boptFLOAT1.000–5
offset_roptFLOAT0.000-1–1
offset_goptFLOAT0.000-1–1
offset_boptFLOAT0.000-1–1
power_roptFLOAT1.000.1–3
power_goptFLOAT1.000.1–3
power_boptFLOAT1.000.1–3
saturationoptFLOAT1.000–3

Outputs (1)

NameTypeDescription
IMAGEIMAGE