Utility nodes
Compositing, channels, color spaces, transforms, and the content nodes behind Finish layers.
Merge (heeler.merge)
Lay one image over another by opacity: the plain composite.
- Ports: base, over (rgb), rgb out.
- Opacity; Fit for a second picture of another shape: Fit keeps it whole inside the frame, Fill covers the frame, Stretch pulls it to the frame, None places it at its own size. A new node starts on Fit; one saved before the choice existed keeps stretching.
With nothing on the second input the base passes through.
Blend Mode (heeler.blend)
Combine two images by a mode. The carrier of every Finish layer.
- Ports: base, top layer (rgb), mask in (where it applies), clip (a stencil), rgb out.
- Mode multiply, screen, overlay, soft light, hard light, vivid light, linear light, add, darken, lighten, difference, exclusion, color burn and dodge, hue, saturation, color, luminosity; Opacity; Fit as on Merge; Clip to the base's alpha; and the layer transform's corners, which the Transform tool in Finish writes.
Overlay and the light modes are defined in display space: put To Display before and To Scene after when blending scene-linear branches.
Transform (heeler.transform)
Move, scale and rotate about a pivot, in one node and one resample.
- Ports: rgb in, rgb out.
- Move X/Y as a percentage of the frame, Size as a percentage, Rotate in degrees, Pivot X/Y as a percentage of the frame.
The frame keeps its size. What leaves it is gone; what enters is transparent, so a transformed picture merges cleanly. Three nodes would resample three times; this one resamples once.
Conditional (heeler.conditional)
If the condition holds, the then branch; else the else branch, per pixel.
- Ports: else branch (rgb), then branch (rgb), condition (field), rgb out.
A feathered condition from Compare crossfades the branches. No condition wired, or the node switched off, is the else branch. See Example networks.
Math (heeler.math)
Arithmetic on fields.
- Ports: operand a, operand b (field), field out.
- Op add, multiply, divide, power and the rest; Constant stands in for b when b is unwired; Scale and Offset on the result, unclamped.
With nothing wired it is a constant field.
Remap (heeler.remap)
Levels for a field: window, gamma, output range.
- Ports: field in, field out.
- In low/high, Gamma, Out low/high, Clamp.
Channel (heeler.channel_extract)
One channel as a field: luma, red, green or blue.
- Ports: rgb in, field out.
Luminance Extract (heeler.luminance_extract)
Brightness as a field. The quickest way from a picture to a mask.
- Ports: rgb in, field out.
Channel Join (heeler.channel_join)
Three fields become an image: r, g and b in, rgb out. The ports wear their channel's color.
- Ports: red plane, green plane, blue plane (fields), rgb out.
An unwired plane reads as zero. Feed it three Measures for a false-color analysis, or rebuild a picture from remapped channels.
Channel Gain (heeler.channel_gain)
More or less of one channel; 100 is unchanged.
- Ports: rgb in, mask in, rgb out.
- Channel luma, red, green or blue; Gain.
Channel Mixer (heeler.channel_mixer)
Each output channel rebuilt from all three inputs.
- Ports: rgb in, mask in, rgb out.
- Nine mix weights; Preserve grey keeps neutrals neutral.
Tone Mask (heeler.tone_mask)
Shadows, midtones, highlights, or the midtone bell, as a picture. A helper for the recipes.
- Ports: rgb in, rgb out.
Invert (heeler.invert)
One minus the value, by amount.
- Ports: rgb in, mask in, rgb out.
To Display (heeler.to_display) and To Scene (heeler.to_scene)
Into display space, where Overlay and Vivid Light are defined, and back to scene-linear afterwards.
- Ports: rgb in, rgb out.
- Gamma overrides the transfer; 0 uses the standard curve.
Always use them as a pair around the blend.
Luma / Color Split (heeler.luma_chroma_split) and Join (heeler.luma_chroma_join)
Brightness or color on its own, so noise in each can be smoothed apart, and the two put back together.
- Split ports: rgb in, rgb out; Part luma or color.
- Join ports: brightness (rgb), color (rgb), rgb out.
The Noise Reduction section is built from these two and two Denoise nodes.
Paint (heeler.paint)
RGBA strokes on a transparent canvas: the Finish tab's pixel layer.
- Ports: rgb in, rgb out.
- Strokes; Heal reads texture from the source.
Clone / Heal (heeler.clone)
Repairs that re-execute: strokes that read pixels from elsewhere in the frame.
- Ports: rgb in, rgb out.
Lift (heeler.lift)
The picture below, as this layer's own pixels. Finish's Isolate.
- Ports: rgb in, rgb out.
Fill (heeler.fill)
A solid color, for a fill layer and its mask.
- Ports: rgb in, rgb out.
- Color.
Gradient (heeler.gradient)
Two stops with alpha, linear or radial, or a list of stops.
- Ports: rgb in, rgb out.
- Color A/B, Alpha A/B, Angle, Shape, Midpoint, Stops.
Output (heeler.output)
What gets exported. Every graph ends here; it cannot be deleted or duplicated.
- Ports: rgb in.
- Format, Quality, Long edge, Color space are the defaults Export starts from.
Groups
A group card holds a graph of its own and shows one input, one output and any controls it publishes. Double-click to open it. Groups are made from a selection, not added from the palette.