Colour Correct
Correct colour with per-channel curves, lift/gamma/gain/offset wheels, saturation, and contrast.
What it does
Colour Correct is a grading toolkit in one node: per-channel curves, three-way lift/gamma/gain balancing with offset, saturation, and contrast. It applies to images, colours, and analytic shapes alike, and can load a .cube LUT file.
Opacity blends the graded result back with the original.
When to use it
Classic three-way grading: contrast, lifted shadows, colour-cast balancing.
Per-channel tone curves, with Curve nodes wired into Master, Red, Green, Blue, or Alpha.
Applying a delivered .cube LUT look to an image.
Pushing saturation up or down, or pivoting contrast around a chosen luminance.
One grading pass that behaves the same on an image and on a flat colour or shape fill.
| Parameter | Type | Default | What it does |
|---|---|---|---|
content_in | Color Field or Volume or Primitives or Collection or GPU Geometry or Geometries or Color or Color[] | — | Input image |
master_curve | Curve | — | Master curve applied to R, G, B before individual channel curves. Connect a Curve node. |
red_curve | Curve | — | Red channel curve. Connect a Curve node. |
green_curve | Curve | — | Green channel curve. Connect a Curve node. |
blue_curve | Curve | — | Blue channel curve. Connect a Curve node. |
alpha_curve | Curve | — | Alpha channel curve. Connect a Curve node. |
lut_file | String | "String::new()" | Load a .cube 3D LUT file for color grading. Applied after curves, before lift/gamma/gain. |
lift_r | Number | 0 | Shadow tint — red channel. 0 = no change. |
lift_g | Number | 0 | Shadow tint — green channel. 0 = no change. |
lift_b | Number | 0 | Shadow tint — blue channel. 0 = no change. |
gamma_r | Number | 1 | Midtone power — red channel. 1 = no change. |
gamma_g | Number | 1 | Midtone power — green channel. 1 = no change. |
gamma_b | Number | 1 | Midtone power — blue channel. 1 = no change. |
gain_r | Number | 1 | Highlight multiplier — red channel. 1 = no change. |
gain_g | Number | 1 | Highlight multiplier — green channel. 1 = no change. |
gain_b | Number | 1 | Highlight multiplier — blue channel. 1 = no change. |
offset_r | Number | 0 | Uniform offset — red channel. 0 = no change. |
offset_g | Number | 0 | Uniform offset — green channel. 0 = no change. |
offset_b | Number | 0 | Uniform offset — blue channel. 0 = no change. |
saturation | Number | 1 | Color saturation. 0 = monochrome, 1 = unchanged, >1 = more vivid |
contrast | Number | 1 | Contrast amount. 1 = unchanged, >1 = more contrast, <1 = flatter |
contrast_pivot | Number | 0.500 | Luminance level around which contrast expands/compresses |
clamp_output | Boolean | true | Clamp output values to 0-1 range |
opacity | Number | 1 | Blend processed result with original (0 = original, 1 = full effect) |
spatial_strength | Field | — | Spatial field controlling where the effect applies (0=bypass, 1=full) |
strength | Number | 1 | Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable. |
Gotchas
Processing order is fixed: curves, then the .cube LUT if one is loaded, then lift/gamma/gain/offset, then saturation, then contrast, then the clamp, then the Opacity blend. When a result looks wrong, check whether an earlier stage pushed values out of range before a later one operated on them.
The .cube LUT applies to images only. Grading a flat colour or an analytic shape fill skips the LUT, and only the curves and lift/gamma/gain/offset/saturation/contrast maths carry over.
Clamp Output defaults to on, holding values in 0–1. Turn it off to push values past white or below black for a later node, such as a Levels or exposure adjustment, to pull back in.
Worked example
Add Colour Correct and wire an image into Input Image.
Raise Contrast and nudge Contrast Pivot to taste, then push Saturation up slightly.
Add a Curve node and wire it into Red Curve to warm the highlights.
Lower Opacity to blend the grade back toward the original.