Image effects

Grading, filtering, lens distortion and frequency work, wired into the graph as nodes that take a picture in and give a picture out.

An image effect is an ordinary node. A picture goes into content_in, the result leaves on content_out, and effects chain in whatever order you wire them. Any point in the chain can be branched, inspected, keyframed or bypassed.

That is what separates them from Post effects, which are toggles on the Render Settings node and run over the finished frame in a fixed order. An image effect runs where you put it, on whatever is on the wire, including content that never went near the 3D renderer.

They sit in the Modify family in the node palette, under its Color and Filter tags.

Grading and colour

Five nodes cover the grade, from broad correction down to a single hue. Unlike the filters further down, they are point-wise, so the same maths applies whether the input is an image, a volume, an analytic shape's fill, a collection, or one flat colour.

The first entry in both of Color Space's dropdowns, and the default on source_space, is Working Space. It is another name for Linear sRGB: it does not read the project's setting, so on a project whose Canvas color_space is ACEScg it converts the wrong way. Pick a space by name. See Colour management.

Two controls in this group stop their node cooking rather than doing nothing. Setting lut_file on Colour Correct errors the node: the .cube file is read, parsed and then discarded, and the grade it was meant to replace does not run either. Turning on auto_levels on Levels errors the same way, so its auto_clip companion has no effect. Leave both alone and set the range by hand.

ParameterTypeDefaultWhat it does
content_inColor Field or Field or Volume or Primitives or Collection or GPU Geometry or Geometries or Number or Vec2 or Vec3 or Color or Number[] or Color[]
channel_modeString"Master"Master adjusts all RGB channels together, Per-Channel allows independent control. One of: Master, Per-Channel.
in_blackNumber0Input black point - pixels at or below this level become black
in_whiteNumber1Input white point - pixels at or above this level become white
gammaNumber1Gamma correction - < 1 brightens midtones, > 1 darkens midtones
out_blackNumber0Output black point - remaps black to this level
out_whiteNumber1Output white point - remaps white to this level
r_in_blackNumber0Red channel input black point
r_in_whiteNumber1Red channel input white point
r_gammaNumber1Red channel gamma
g_in_blackNumber0Green channel input black point
g_in_whiteNumber1Green channel input white point
g_gammaNumber1Green channel gamma
b_in_blackNumber0Blue channel input black point
b_in_whiteNumber1Blue channel input white point
b_gammaNumber1Blue channel gamma
a_in_blackNumber0Alpha channel input black point
a_in_whiteNumber1Alpha channel input white point
a_gammaNumber1Alpha channel gamma
auto_levelsBooleanfalseAutomatically compute black/white points from histogram (ignores manual values when enabled)
auto_clipNumber0.100Percentage of pixels to clip at black/white ends (0.1% = ignore extreme outliers)
pre_clampBooleantrueClamp input values to 0-1 range before applying levels
post_clampBooleantrueClamp output values to 0-1 range after applying levels
invertBooleanfalseInvert the output (1 - value) for RGB channels
spatial_strengthFieldSpatial field controlling where the effect applies (0=bypass, 1=full)
strengthNumber1Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable.

Sharpening, cleaning up and edges

Lens and projection

Both carry edge_mode, deciding what fills the area a warp pulls in from outside the frame: Transparent, Clamp, Repeat or Mirror. Both are image-only.

Frequency, pattern and erosion

Turning an image into something else

How strongly an effect applies

Every effect carries strength, a 0 to 1 wet and dry mix. Most also carry a spatial_strength input that takes a field, so the effect can be full strength in one part of the frame and absent in another. Convolve, Erode, Color Space, Image Trace and Stack are the ones without it.

Both are applied only when the effect cooks as its own step. When it is folded into a single pass with the node feeding it, which happens whenever that node has no other consumer and is recooking at the same time, strength and spatial_strength are dropped and the result comes back at full strength everywhere. Giving the upstream node a second consumer keeps the two apart. A field on spatial_strength also has to come from a rasterised source, because a purely procedural field never resolves on that pin.

See also