HEELER
Documentation menu

Color nodes

Tone, white balance, grading, curves, and the transforms that render scene light for the screen. All work in scene-linear light unless the node says otherwise; the Tone Profile or View Transform is where the picture becomes what the screen shows, so Curves belongs after it and everything else before.

Exposure (heeler.exposure)

Brightness, contrast and the tonal ends. Adjustments' Exposure section. Ships on.

  • Ports: rgb in, mask in, rgb out.
  • Exposure in stops; Contrast around middle grey; Color contrast the same for color alone; Highlights, Shadows, Whites, Blacks move the ends and the quarter tones.

The first correction on most frames. Mask it for local exposure, or add a Develop layer, which is an Exposure node with a mask.

Color (heeler.standard_color)

Temperature, tint, saturation and vibrance. Adjustments' Color section. Ships on.

  • Ports: rgb in, mask in, rgb out.
  • Temp and Tint set white balance in Kelvin and green/magenta; Saturation scales all color; Vibrance favours the colors that are not already strong.

White balance belongs here, before any grading. The section's Black & White treatment is its own node, wired after this one.

White Balance (heeler.white_balance)

Temperature and tint alone, for a second neutralisation somewhere else in the chain.

  • Ports: rgb in, mask in, rgb out.

Use it with a mask for mixed lighting, or Chromatic Adaptation for the same job with a color model behind it.

Black & White (heeler.black_white)

Channel-mixer monochrome. Color's Treatment switch builds it.

  • Ports: rgb in, mask in, rgb out.
  • Red, Green, Blue are the mixer weights; Amount fades between color and mono, so the switch is a fade, not a cut.
  • Hue curve is a periodic curve of hue (OkLCh degrees) to EV, in Relight's point format, scaling the mixed gray per hue, up to two stops either way; neutrals are gated out. Empty is the mixer alone.

Raise Red for skin, Blue for skies going dark, the way a filter on a mono film would; shape the curve for a single color the mixer cannot reach alone. With the treatment on, a hue-keyed mask downstream (Hue Range, Color Range) is fed from this node's input in the rendered graph, so it can still select by color.

Levels (heeler.levels)

Black point, white point, gamma, and a softness for each end.

  • Ports: rgb in, mask in, rgb out.
  • Black and White are the input points in 0 to 1; Gamma bends the middle; Black soft and White soft roll the clip instead of cutting it.

Use it for a hard technical stretch; use Curves for shaping.

Curves (heeler.curves)

A freehand tone curve, per channel (RGB, red, green, blue). Adjustments' Curves section.

  • Ports: rgb in, mask in, rgb out.
  • Points are dragged in the editor; Smooth, Straight or Tangent interpolation; a picker sets points from the photograph.

It sits after the Tone Profile on purpose: the curve's axis is the screen's tonality, so a point at 0.9 is a bright screen value.

Relight (heeler.tone_eq)

Re-expose by brightness zone: nine zones one stop apart, each with its own lift or cut.

  • Ports: rgb in, mask in, rgb out.
  • Zones from four stops under middle grey to four over, in stops; Range shift slides the zones; Smoothing blends between them.

Lift the shadows without touching the sky, or the reverse. Exposure work, so it sits right after Exposure.

Color Balance (heeler.color_balance)

Push shadows, midtones and highlights toward a hue. Adjustments' Color Wheels.

  • Ports: rgb in, mask in, rgb out.
  • Per range: Hue, Saturation, Luminance.

Classic three-way grading. Keep the three wheels small; they add up.

Color Bend (heeler.color_bend)

Move one neighbourhood of color to another.

  • Ports: rgb in, mask in, rgb out.
  • Source hue and saturation, Destination hue and saturation, Falloff as a fraction of the wheel, Amount.

The node is off until the destination leaves the source. Use it to turn one green into another without touching the rest.

Color Grade (heeler.color_grade)

Hue shift, chroma, exposure and uniformity in OkLCh, centred on a hue band. The grading half of a Color Set.

  • Ports: rgb in, mask in, rgb out.
  • Hue shift, Saturation, Vibrance, Exposure, Uniformity pulls the band's hues together; Band centre names the hue; per-channel curves ride along.

Pair it with a Hue Range Mask, which is what Color Sets do for you.

Recolor (heeler.recolor)

The channel-routing color EQ: select by hue, saturation, luminance, depth, the hue of the surroundings, a mask's coverage, or hue and luminance together as a surface; adjust hue, saturation, luminance, pastel (the mix toward white), temperature, tint or vibrance. Every pairing is a curve, bar the surface, which is a grid.

  • Ports: rgb in, mask in, and a by mask input that the Mask row reads as its axis, rgb out.
  • Curves per cell and Surfaces per output; Neutral guard keeps greys out of hue-driven cells; Smoothing softens the selection; Around radius is the surroundings' reach; the hue→hue cell's Spread verb reads its curve as hue contrast.

Hue against hue is a hue shift by hue; luminance against saturation desaturates the shadows; and so on.

Color Tune (heeler.color_console)

Per-family grading strips: red, green, blue, cyan, yellow, magenta, plus bands you pick, each with a wheel.

  • Ports: rgb in, mask in, rgb out.
  • Bands carry each strip's hue, saturation and luminance; Smoothing blends between neighbouring families.

The quick way to lift one family of color; Recolor is the precise way.

Chromatic Adaptation (heeler.chromatic_adapt)

CAT16: undo the color of the light itself.

  • Ports: rgb in, mask in, rgb out.
  • Illuminant (custom, D65, D50, A, F2) or a Temperature; Strength fades it.

Mask it for mixed lighting: tungsten inside, daylight through the window.

Desaturate (heeler.desaturate)

Take the color out, keep the brightness.

  • Ports: rgb in, mask in, rgb out.
  • Amount from 0 to 1.

A utility for branches: a desaturated copy for a luminosity blend, say.

Gradient Map (heeler.gradient_map)

Brightness decides color: three stops from shadows to highlights.

  • Ports: rgb in, mask in, rgb out.
  • Low, Mid, High colors, Midpoint, Amount.

Duotones and toning. Mask it to keep the effect off skin.

3D LUT (heeler.lut)

A .cube look-up table from disk, applied to the display-encoded picture.

  • Ports: rgb in, mask in, rgb out.
  • Path and Amount.

Film emulations and grades from elsewhere. The graph's own color branches can be baked to a LUT from the context menu.

Gamut Map (heeler.gamut_map)

Ease colors no display can show back inside, hue held.

  • Ports: rgb in, mask in, rgb out.
  • Amount.

The viewport's gamut warning offers to insert one after the node responsible.

Tone Profile (heeler.tone_profile)

The base rendering and the highlight shoulder: what makes a decoded RAW look developed. Ships on, right before Output.

  • Ports: rgb in, mask in, rgb out.
  • Mode Linear, Standard or Film; Baseline lift in stops; Profile amount scales the curve; Toe keeps blacks dense; Highlight roll compresses into white; Colorfulness.

Exposure and Color come before it because they are linear operations; Curves comes after because it shapes the screen picture.

View Transform (heeler.view_transform)

The scene-to-display rendering, chosen: sigmoid, filmic, AgX or ACES. Use it instead of Tone Profile.

  • Ports: rgb in, mask in, rgb out.
  • Mode, Exposure in stops, Contrast as the slope around grey, White in stops above grey.

Bypass the Tone Profile when you add one, or the picture is rendered twice.