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.
Colour Correct is the full grade in one node:
lift_*,gamma_*,gain_*andoffset_*per channel, thensaturationandcontrastaround acontrast_pivotof 0.5. It also takes hand-drawn curves. Wire a Curve node intomaster_curve, or intored_curve,green_curve,blue_curveandalpha_curvefor per-channel shaping.clamp_outputis on, so results stay in range. See Colour Correct.Levels is the black-point, white-point and gamma remap.
in_blackandin_whiteset what becomes pure black and pure white,gammamoves the midtones, andout_blackandout_whiteremap the result into a narrower range.channel_modeswitches from Master to Per-Channel, which swaps in ther_*,g_*,b_*anda_*sets.invertflips the result, andpre_clampandpost_clampare both on.HSV Grade is the selective grade.
targetpicks whether a Hue, Saturation or Value band is isolated,target_huewithhue_widthandhue_falloffsays which band, andrange_hue_shift,range_saturationandrange_lightnessmove only what falls inside it. The threemaster_*controls move everything, so one node can lift the whole image and push a single colour at the same time. Its adjustment parameters also take a Curve, for per-hue control.Channel rewires R, G, B and A.
modechooses Mix, a matrix built fromred_row,green_row,blue_rowandoffset; Shuffle, whereout_redand its siblings each pick a source channel or a flat Zero or One; Extract, which pulls one channel or Luminance out as grey; and Premultiply or Unpremultiply for handling alpha. For hue, saturation and luminance as separate values, use the Split / Combine node instead.Color Space converts between sRGB, Linear sRGB and ACEScg through
source_spaceandtarget_space. Those three are the whole set: it does not convert to HSV, HSL or LAB.
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.
| Parameter | Type | Default | What it does |
|---|---|---|---|
content_in | Color 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_mode | String | "Master" | Master adjusts all RGB channels together, Per-Channel allows independent control. One of: Master, Per-Channel. |
in_black | Number | 0 | Input black point - pixels at or below this level become black |
in_white | Number | 1 | Input white point - pixels at or above this level become white |
gamma | Number | 1 | Gamma correction - < 1 brightens midtones, > 1 darkens midtones |
out_black | Number | 0 | Output black point - remaps black to this level |
out_white | Number | 1 | Output white point - remaps white to this level |
r_in_black | Number | 0 | Red channel input black point |
r_in_white | Number | 1 | Red channel input white point |
r_gamma | Number | 1 | Red channel gamma |
g_in_black | Number | 0 | Green channel input black point |
g_in_white | Number | 1 | Green channel input white point |
g_gamma | Number | 1 | Green channel gamma |
b_in_black | Number | 0 | Blue channel input black point |
b_in_white | Number | 1 | Blue channel input white point |
b_gamma | Number | 1 | Blue channel gamma |
a_in_black | Number | 0 | Alpha channel input black point |
a_in_white | Number | 1 | Alpha channel input white point |
a_gamma | Number | 1 | Alpha channel gamma |
auto_levels | Boolean | false | Automatically compute black/white points from histogram (ignores manual values when enabled) |
auto_clip | Number | 0.100 | Percentage of pixels to clip at black/white ends (0.1% = ignore extreme outliers) |
pre_clamp | Boolean | true | Clamp input values to 0-1 range before applying levels |
post_clamp | Boolean | true | Clamp output values to 0-1 range after applying levels |
invert | Boolean | false | Invert the output (1 - value) for RGB channels |
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. |
Sharpening, cleaning up and edges
Sharpen is a variable-radius unsharp mask.
amountis a percentage, 100 by default,radiussets how wide the halo is, andthresholdholds back flat areas so grain is not sharpened along with detail. It also works on a volume, sharpening in three dimensions. See Sharpen.Denoise softens noise with a fixed 3×3 Gaussian, mixed back over the original by
strength. Itsmethoddropdown offers Median, Bilateral, Non-Local Means, FFT Gate and Wavelet, andradiusandthresholdsit beside it. None of those three controls is read: every combination gives the same soft blur, andstrengthis the only one that changes the result.Paint flattens detail into patches. Each pixel takes nine taps arranged as four overlapping quadrants and keeps the quadrant whose luminance varies least, so an even area smears into one flat patch while an edge stays where it is.
sizeruns 1 to 4 and spreads those same nine taps further apart rather than adding more, so patches broaden at no extra cost, andstrengthmixes the result back over the original. The filter is isotropic: a patch does not curve to follow a contour. Changingsizerebuilds the filter whilestrengthis a live value, sostrengthis the one to drag or keyframe. See Paint.Slope finds edges.
methodpicks Sobel, Prewitt or Laplacian, andoutputdecides what leaves the node: Slope, Magnitude, Direction, or the raw X-Gradient and Y-Gradient. Fed 3D content rather than an image,sourcecan read the rendered Depth, Normal or Object ID pass, which finds geometric edges no colour image shows. The other two entries in that list are not implemented: Color silently reads depth and Combined silently reads normals, sodepth_weight,normal_weightandid_weightdo nothing.Emboss shades an image as relief.
angleplaces the light,depthscales the effect,blendmixes the relief back over the original, andmethodpicks a Gradient or Convolution kernel.elevationapplies to volumes only.Matte Refine cleans an alpha channel.
erode,dilateandblurrun in that order, tightening a matte then feathering it, andchannelreads either Alpha or Luminance. Erode and dilate are square rather than round, so a corner tightens faster than an edge. Wiring a field intoerode_fieldordilate_fieldvaries the amount across the frame, with the numeric control as the ceiling. All three radii at 0 is an exact passthrough, which also skips the Luminance conversion.
Lens and projection
Lens Distort bends the image the way a lens does.
modeis Barrel, Fisheye or Anamorphic;k1,k2andk3are the barrel coefficients,fovandfisheye_modelshape the fisheye, andsqueezesets the anamorphic ratio.undistortruns the same maths backwards, which is how footage shot on a known lens is straightened before compositing.Panoramic remaps between 360 and panoramic layouts.
projectioncovers Mirror Ball, Mercator, Stereographic, Sinusoidal, Mollweide, Polar, Cylindrical, Gnomonic, Panini, Octahedral, Dual Paraboloid and Cubemap Cross,rotationspins the sphere, andinvertruns the projection the other way. Use it to turn an HDRI into a mirror ball, or a rendered equirectangular frame into a flat crop. It is a different node from Projection, which places content in 3D space rather than remapping pixels.
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
FFT filters in the frequency domain, transforming the picture, masking the frequencies and transforming back.
modeis Low Pass, High Pass, Band Pass, Band Reject or Phase Only, withcutoffandcutoff_highsetting the band andfalloffchoosing a Sharp, Gaussian or Butterworth rolloff. This is how a repeating pattern is removed when no spatial blur can separate it from the detail.spectrum_outcarries the frequency picture after filtering, so the cutoffs are visible; the sixth mode, Analyze, puts that view on the main output and skips the filtering.Convolve applies one image to another as a filter kernel. Wire the filter into
kernel_in, leavenormalize_kernelon to preserve brightness, and setmodeto Correlate rather than Convolve to match a pattern instead of blurring by it. The same node convolves audio with an impulse response, which is how a recorded space becomes a reverb. See Audio.Quantize posterises. The two halves have a switch each:
quantize_valuefor the colour steps, on to start with, andquantize_positionfor the mosaic.value_levels, 8 by default, sets how many steps survive, andvalue_modeapplies them Per Channel, on Luminance, or as a hard Threshold. Threshold ignores the levels and splits to black and white atvalue_threshold, a luminance pivot you can move, withvalue_threshold_softnessfeathering the split from crisp to soft. Turning onquantize_positionsnaps pixels into blocks instead of colours, which is the mosaic look, and that half needs a Cells node wired intocellsto say what shape the blocks are. Picking a preset on that input adds the Cells node and wires it for you. Without the wire,quantize_positionchanges nothing.sample_modethen decides what colour a cell takes: Center, Top-Left and Average read the source once per cell, Average box-filtering it, while Cell UV fits the whole frame into every cell, sampled from a mip chain so a frame inside an 8-pixel cell holds still instead of shimmering. Fed shapes or points rather than an image, the node snaps their positions to a world grid instead, sized byblock_size, or byblock_size_xandblock_size_ywithseparate_xyon; those controls show only on that arm.Erode is hydraulic and thermal terrain erosion, not a matte operation. It runs
iterationspasses of rainfall over the image read as a height field, carving channels and depositing sediment, and reportsflow,sedimentanderosion_deltaalongside the result. Wire an image intomaskto say where it may cut: white is full erosion, black is protected, and an unwired pin erodes everywhere. To shrink a matte, use Matte Refine.
Turning an image into something else
Normal Map reads an image as a height map and writes surface normals, for lighting a flat picture or driving a displacement.
strengthscales the slope, andinvertandflip_ymatch whichever convention the thing downstream expects.Image Trace converts a picture to vector paths.
modeis Silhouette for one outline atthreshold, or MultiThreshold forlevelsnested bands, andsmoothnessandmin_areacontrol how much noise survives the trace. It reads 3D content as well, taking the silhouette from the rendered frame. The outlines leave onshapes, ready to sweep, extrude or animate.Stack collects several images into one sequence, ready to hand an Iterator a different frame per copy. Wire the images into
inputs. Itsfolder_pathand the settings beside it list a directory onto thepathsoutput as text and stop there, so a folder of stills has to be loaded and wired in.
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.