JOS JOS Compositor

Node reference

Merge nodes

AddMix

A added over B, weighted by curves of A's alpha (by default a premultiplied over).

Inputs: B, A.

Setting Default Range or choices What it does
A rgba A's layer.
B rgba B's layer.
output rgba The layer the result goes to.
premultiplied off A is premultiplied: its weight is divided by its alpha.
nonlinear off Softer weights: w / (2 - w) (Nuke's).
lut A {} B {} A's and B's weights against A's alpha (A: a, B: 1 - a by default).
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

Blend

The inputs averaged by their weights.

Inputs: 1, 2, 3 (optional), 4 (optional), 5 (optional), 6 (optional), 7 (optional), 8 (optional), 9 (optional), 10 (optional), 11 (optional), 12 (optional), mask (optional).

Setting Default Range or choices What it does
channels all rgba, rgb, alpha, all The channels the node changes; the others pass through.
1 1 0 to 1 This input's weight in the sum.
2 1 0 to 1 This input's weight in the sum.
3 1 0 to 1 This input's weight in the sum.
4 1 0 to 1 This input's weight in the sum.
5 1 0 to 1 This input's weight in the sum.
6 1 0 to 1 This input's weight in the sum.
7 1 0 to 1 This input's weight in the sum.
8 1 0 to 1 This input's weight in the sum.
9 1 0 to 1 This input's weight in the sum.
10 1 0 to 1 This input's weight in the sum.
11 1 0 to 1 This input's weight in the sum.
12 1 0 to 1 This input's weight in the sum.
normalize on Divide the sum by the total of the weights, so it stays an average.
invert mask off Use 1 - the mask's alpha.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

Contact Sheet (Inputs)

Type name: ContactSheet (scripts, MCP and Nuke import use it).

The inputs side by side in a grid, each scaled to fit its cell.

Inputs: input (optional); more as you connect them.

Setting Default Range or choices What it does
width 3072 1 to 8192 The sheet's size in pixels.
height 2048 1 to 8192 The sheet's height in pixels.
rows 3 1 to 10 How many cells down the sheet.
columns 4 1 to 10 How many cells across the sheet.
gap 0 0 to 100 Pixels around and between the cells.
center off Centre each picture in its cell (else at its bottom-left).
row order BottomTop TopBottom, BottomTop Where the first row is: at the bottom (BottomTop) or the top.
column order LeftRight LeftRight, RightLeft, Snake Snake: every other row right to left.

Copy Bounds

Type name: CopyBBox (scripts, MCP and Nuke import use it).

A's image with B's bounding box.

Inputs: A, B.

No settings.

CopyRectangle

A's channels inside a rectangle over B, its edge softened inwards.

Inputs: B, A.

Setting Default Range or choices What it does
channels all rgba, rgb, alpha, all The channels the node changes; the others pass through.
area x 512 0 to 4096 The rectangle's left edge, in pixels.
area y 389 0 to 4096 The rectangle's bottom edge, in pixels.
area right 1536 0 to 4096 The rectangle's right edge, in pixels.
area top 1167 0 to 4096 The rectangle's top edge, in pixels.
softness w 0 0 to 100 How far in from the left and right edges A fades in, in pixels.
softness h 0 0 to 100 How far in from the bottom and top edges A fades in, in pixels.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

Dissolve

Blends between its images: which 0 is input 0, 1 is input 1, 2 the next image and so on (animate it for a cross dissolve); between two, a mix of both.

Inputs: 0, 1 (optional), mask (optional); more as you connect them.

Setting Default Range or choices What it does
which 0 0 to 1 The image shown: 0 input 0, 1 input 1, 2 the next one (image2)...; between two, a mix of both. Clamped to the images there are.
channels all rgb, rgba, alpha, all rgb, rgba, alpha, all, or a layer (depth) or channel by name, as Nuke's.
invert mask off Use 1 - the mask's alpha.

DualBlend

From the second input (amount 0) to the first (amount 1).

Inputs: A, B, mask (optional).

Setting Default Range or choices What it does
channels all rgba, rgb, alpha, all The channels the node changes; the others pass through.
amount 0 0 to 1 0 gives the second input, 1 the first, values between mix them.
invert mask off Use 1 - the mask's alpha.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

Mask Mix

Type name: KeyMix (scripts, MCP and Nuke import use it).

A where the mask is white, B where it is black (no merge maths): A keyed over B.

Inputs: B, A, mask (optional).

Setting Default Range or choices What it does
channels all rgb, rgba, alpha, all rgb, rgba, alpha, all, or a layer (depth) or channel by name, as Nuke's.
invert mask off Use 1 - the mask's alpha.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.
bbox union union, B, A The result's bounding box: both inputs', B's or A's (black outside it).

LightWrap

The background's light wrapped onto the foreground's edges (A over B's light).

Inputs: B, A.

Setting Default Range or choices What it does
diffuse 15 0 to 100 How far the wrap reaches in from the edge (pixels).
intensity 0 0 to 10 0: no wrap.
generate wrap only off Outputs the wrap alone instead of adding it to the foreground.
disable luminance off Wraps all of the background's light, ignoring the luminance tolerance.
foreground blur 1 0 to 20 Softens the foreground's alpha before the edge is found, in pixels.
background blur 0 0 to 50 Blurs the background's light before it wraps, in pixels.
saturation 1 0 to 2 The saturation of the background's light (0: grey, 1: unchanged).
luminance tolerance 0 0 to 1 Only background light brighter than this wraps.
enable glow off Kept for scripts, not applied.
use constant colour off Kept for scripts, not applied.

Merge

Combines A onto B with a Nuke merge operation (premultiplied maths). Channels other than R, G, B, A come from B. A missing alpha counts as 0. More A inputs (A2, A3...) are merged on in order.

Inputs: B, A, mask (optional); more as you connect them.

Setting Default Range or choices What it does
operation over over, under, plus, minus, from, multiply, screen, max, min, difference, divide, average, in, out, atop, xor, mask, stencil, copy, color-burn, color-dodge, conjoint-over, disjoint-over, exclusion, geometric, hard-light, hypot, matte, overlay, soft-light The formula combining A with B on premultiplied values, as Nuke's (over: A on top of B).
bbox union union, B, A, intersection Which data window the result covers.
A channels rgba rgba, rgb, alpha, none A's channels the formula reads; the others count as 0 (rgb: A's alpha is 0). Four names (R G B depth.Z, none for an empty slot) stand for R, G, B and alpha, as Nuke's sets.
B channels rgba rgba, rgb, alpha, none B's channels the formula reads; the others count as 0 (rgb: B's alpha is 0). Four names stand for R, G, B and alpha.
output rgba rgba, rgb, alpha, none The channels written; the others are B's (rgb: B's alpha stays). Or a list of channel names (R A), as Nuke's {rgba.red rgba.alpha}.
also merge none Another layer (depth...), or all, merged with the same formula.
invert mask off Use 1 - the mask's alpha.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

MergeExpression

Computes B's channels per pixel from expressions of A's and B's colours.

Inputs: B, A (optional), mask (optional).

Setting Default Range or choices What it does
temp name 0 A name for a temporary value the expressions below can use.
temp expr 0 The temporary value's expression, worked out per pixel; it can use the temporaries before it. Unused without a name.
temp name 1 A name for a temporary value the expressions below can use.
temp expr 1 The temporary value's expression, worked out per pixel; it can use the temporaries before it. Unused without a name.
temp name 2 A name for a temporary value the expressions below can use.
temp expr 2 The temporary value's expression, worked out per pixel; it can use the temporaries before it. Unused without a name.
temp name 3 A name for a temporary value the expressions below can use.
temp expr 3 The temporary value's expression, worked out per pixel; it can use the temporaries before it. Unused without a name.
channel 0 R The channel this expression writes (added if the input lacks it).
expr 0 Per pixel: Ar, Ag, Ab, Aa, Br, Bg, Bb, Ba (r, g, b, a: B's), x, y, width, height, frame, Node.param, the temporaries. Empty: B unchanged.
channel 1 G The channel this expression writes (added if the input lacks it).
expr 1 Per pixel: Ar, Ag, Ab, Aa, Br, Bg, Bb, Ba (r, g, b, a: B's), x, y, width, height, frame, Node.param, the temporaries. Empty: B unchanged.
channel 2 B The channel this expression writes (added if the input lacks it).
expr 2 Per pixel: Ar, Ag, Ab, Aa, Br, Bg, Bb, Ba (r, g, b, a: B's), x, y, width, height, frame, Node.param, the temporaries. Empty: B unchanged.
channel 3 A The channel this expression writes (added if the input lacks it).
expr 3 Per pixel: Ar, Ag, Ab, Aa, Br, Bg, Bb, Ba (r, g, b, a: B's), x, y, width, height, frame, Node.param, the temporaries. Empty: B unchanged.
invert mask off Use 1 - the mask's alpha.
(un)premult by none none, A Divide the colour by this channel (A: the alpha) before the change and multiply it back after, as Nuke's; none: off.
invert (un)premult off Use 1 - that channel.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

PSDMerge

Photoshop's blend modes: A (the layer) on B (the base), by A's alpha, optionally in sRGB.

Inputs: B, A.

Setting Default Range or choices What it does
operation normal normal, screen, color dodge, overlay, multiply, darken, color burn, linear burn, lighten, linear dodge, lighter color, soft light, hard light, vivid light, linear light, pin light, hard mix, difference, exclusion, subtract, divide, hue, saturation, color, luminosity Photoshop's blend mode for A over B, applied to R, G and B and mixed in by A's alpha.
sRGB colorspace on Blend in sRGB, converting both inputs there and the result back through the colour service.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.

Premult

Multiplies colour by alpha (straight to premultiplied).

Inputs: input.

Setting Default Range or choices What it does
channels rgb rgb, all rgb: R, G and B. all: every channel except A, AOV layers too. Or a layer (depth) or channel names.
alpha A The channel to multiply or divide by.
invert off Use 1 - that channel.

Switch

Passes on one of its inputs: 'which' picks it (0 the first). Animate it to cut between inputs.

Inputs: input (optional); more as you connect them.

Setting Default Range or choices What it does
which 0 0 to 5 The input passed on (0 the first); rounded, clamped to the inputs there are.

Unpremult

Divides colour by alpha where it isn't 0 (premultiplied to straight).

Inputs: input.

Setting Default Range or choices What it does
channels rgb rgb, all rgb: R, G and B. all: every channel except A, AOV layers too. Or a layer (depth) or channel names.
alpha A The channel to multiply or divide by.
invert off Use 1 - that channel.

Depth Comp

Type name: ZComp (scripts, MCP and Nuke import use it).

A soft depth merge of opaque images: A's share falls from all to none as it goes behind B, over twice the tolerance.

Inputs: B, A, Bz (optional), Az (optional).

Setting Default Range or choices What it does
Merge Tolerance 2 0 to 10 Where both are opaque, A fades from in front to behind B over twice this depth difference.
Preview Collision Zone? off Show where the depths are closer than the tolerance: 100 in r, g, b and a.
Infinity Value 1000 0 to 1000 A depth at or past this counts as empty: the other input shows there.

Depth Merge

Type name: ZMerge (scripts, MCP and Nuke import use it).

Per pixel, the input nearer the camera (smaller Z; backwards: larger) merged over the other.

Inputs: B, A.

Setting Default Range or choices What it does
Z channel depth.Z The channel holding each input's depth, compared per pixel.
smaller Z = further away off The input with the larger Z goes in front (off: the smaller Z).
Alpha channel alpha The front input's coverage: the back one shows through by 1 minus this.

Depth Merge (Reverse)

Type name: ZRMerge (scripts, MCP and Nuke import use it).

A mixed over B by B's depth: none at the low cutoff, all at the high one.

Inputs: B, A, mask (optional).

Setting Default Range or choices What it does
channels rgba rgba, rgb, alpha, all The channels the node changes; the others pass through.
Z Depth Channel depth.Z B's channel whose depth sets how much of A shows; it keeps B's values.
Z Low Cutoff 0 0 to 1 B's depth where none of A shows.
Z High Cutoff 0.25 0 to 1 B's depth where all of A shows; A is mixed in between the cutoffs.
invert mask off Use 1 - the mask's alpha.
mix 1 0 to 1 How much of the result shows over the input: 0 is the input, 1 the full effect.