Levels
Adjust image levels with input/output range, gamma, and per-channel control.
What it does
Levels remaps the tonal range of an image. Pull the input black and white points in to punch up contrast, push the output black and white points to flatten it, bend the midtones with Gamma. Channel Mode set to Per-Channel gives red, green, blue and alpha their own black point, white point and gamma curve instead of one shared curve.
The remap applies to the same colour values whether the input is a rendered raster, a filled shape, or colour carried on points, so the result matches wherever it is plugged in.
When to use it
Punching up contrast: Input Black up, Input White down.
Lifting or crushing the black and white floor of the output: Output Black and Output White.
Brightening or darkening midtones without touching black and white: Gamma.
Independent control per colour channel, such as blue shadows without red or green: Per-Channel.
A quick negative: Invert.
| Parameter | Type | Default |
|---|---|---|
content_in | OneOf([FieldOf(Color), Field, FieldOf(Volume), CollectionOf(Crc), Collection, GpuGeometry, CollectionOf(Geometry), Number, Vec2, Vec3, Color, NumberArray, ColorArray]) | — |
channel_mode | String | "Master" |
in_black | Number | 0 |
in_white | Number | 1 |
gamma | Number | 1 |
out_black | Number | 0 |
out_white | Number | 1 |
r_in_black | Number | 0 |
r_in_white | Number | 1 |
r_gamma | Number | 1 |
g_in_black | Number | 0 |
g_in_white | Number | 1 |
g_gamma | Number | 1 |
b_in_black | Number | 0 |
b_in_white | Number | 1 |
b_gamma | Number | 1 |
a_in_black | Number | 0 |
a_in_white | Number | 1 |
a_gamma | Number | 1 |
auto_levels | Boolean | false |
auto_clip | Number | 0.100 |
pre_clamp | Boolean | true |
post_clamp | Boolean | true |
invert | Boolean | false |
spatial_strength | Field | — |
strength | Number | 1 |
Gotchas
Per-Channel is the only mode that touches alpha. In Master mode RGB share one curve and alpha passes through untouched, so reshaping the alpha channel requires Per-Channel.
Invert flips RGB only. Alpha is never inverted, in either channel mode.
Pre-Clamp and Post-Clamp default on, holding values inside 0–1 before and after the remap. Turn Pre-Clamp off when deliberately feeding out-of-range HDR values into the input curve.
Worked example
Add a Levels node and feed it an image.
Drag Input Black up and Input White down to increase contrast.
Nudge Gamma below 1.0 to brighten midtones, or above 1.0 to darken them.
Switch Channel Mode to Per-Channel and adjust the Blue row alone to cool the shadows without shifting red or green.