Skip to content

Keying

Color-key matte extraction with built-in spill suppression. Primary use: green/blue screen removal. Secondary use: linear color-key utility masking (keying any brand color, flat sky, etc.) for general compositing work.

Category: Composite Menu path: Composite > Keying

Ports

PortTypeDirectionDescription
inimageRgba16finputSource image (footage, still, or any upstream texture)
outimageRgba16foutputSource with matte applied as alpha (premultiplied)

Parameters

ParamTypeDefaultDescription
keyColorcolorgreen (0, 1, 0, 1)The color to key out
tolerancescalar0.3Inner radius — colors within this distance of keyColor are fully keyed (alpha = 0)
softnessscalar0.1Feather range — colors from tolerance to tolerance + softness get a smoothstep alpha gradient
matchModeenumChromaColor space for distance: Chroma (YCbCr, best for green/blue screen), RGB (Euclidean sRGB), Hue (HSV angle)
spillSuppressionscalar0.5Reduce key-color bleed on foreground edges. 0 = off, 1 = fully suppress key-channel dominance
invertbooleanoffFlip the matte — useful when you want to keep the key region instead of remove it

How It Works

Per-pixel algorithm:

  1. Distance computed between pixel and keyColor in the selected color space (see Match Modes below).
  2. Matte = smoothstep(tolerance, tolerance + softness, distance):
    • distance < tolerance → 0 (fully keyed, transparent)
    • distance > tolerance + softness → 1 (fully opaque)
    • between → gradient feather
  3. If invert, matte is flipped.
  4. Spill suppression on partial-matte pixels: if the key color's dominant channel (e.g. green in keyColor = (0, 1, 0)) exceeds the other channels in the source pixel, subtract the excess. Reduces green/blue casts on foreground hair and semi-transparent edges.
  5. Output pixel RGB is spill-suppressed; alpha is source alpha × matte; result is premultiplied.

Match Modes

Which color space you compare distances in dramatically changes what's a "good match":

  • Chroma (default, recommended for footage). YCbCr color space, distance computed on the chroma plane only (ignores luma). Makes keys robust to shadow/highlight variations in the green/blue screen — the same color keys consistently whether it's well-lit or in shadow. First thing to try for green/blue screen.
  • RGB. Euclidean distance in sRGB. Simple and fast, but sensitive to lighting — a dark-green patch and a bright-green patch read as different colors, so you often need wide tolerance. Best for flat-lit graphics / solid brand colors where the key is a specific RGB.
  • Hue. Angular distance in HSV hue. Works well for highly-saturated keys (primary colors); unreliable for desaturated keys (grays, blacks, whites) which have undefined hue.

Usage Examples

Classic green screen pull

VideoSource → Keying (keyColor: green, matchMode: Chroma, tolerance: 0.3, softness: 0.15, spillSuppression: 0.7) → Merge ← Background → Output

Standard green-screen workflow. Raise tolerance until the matte covers the full screen; raise softness until edges feather cleanly. Keep spillSuppression at 0.5-0.7 for most footage.

Blue screen

Same chain, but keyColor = (0, 0, 1). Chroma mode works identically.

Linear color key — isolate a flat sky

ImageSource (photo) → Keying (keyColor: sky blue eyedroppered, matchMode: RGB, tolerance: 0.15, softness: 0.08, spillSuppression: 0) → ...

Use RGB mode + tight tolerance for flat brand colors or clear-sky cutouts. No spill suppression needed (no green cast to worry about).

Isolate a specific color region (inverted)

Source → Keying (keyColor: red, invert: on, tolerance: 0.2) → Output

Keeps only the red region; everything else becomes transparent. Useful for pulling mattes of specific tagged objects.

Chain with Matte refinement

VideoSource → Keying → Matte (feather, choke) → Merge ← Background

Pull the raw key with Keying, then use the existing Matte node for choke/expand/feather refinement — a pull-then-refine workflow.

Layered keys for stubborn footage

For footage with wildly-lit green screen, pull a core matte with tight tolerance first, then a wider matte for edges:

VideoSource → Keying (tolerance: 0.15, softness: 0.02) → [ core matte ]
VideoSource → Keying (tolerance: 0.4, softness: 0.3)   → [ edge matte ]

Combine via Matte node's Union combine mode for best-of-both.

Tips

  • Always start with Chroma mode for green/blue screens. RGB mode makes lighting variations look like separate colors; Chroma treats them correctly as the same color at different brightness.
  • Tolerance first, softness second. Dial tolerance up until solid-colored regions of the screen go cleanly transparent. Then dial softness up until edges feather without revealing noise.
  • Spill suppression: 0.3-0.7 is a typical range for standard footage. Full 1.0 can desaturate foreground if your subject happens to be greenish (green shirt on green screen). Back off for natural skin tones.
  • Noisy footage: Keying won't solve noise issues on its own. Run source through a light Blur upstream, or use Sharpen's inverse (denoise is not yet a node — future work) before keying.
  • Semi-transparent objects (glass, hair, smoke): raise softness considerably (0.3-0.5) and enable strong spillSuppression. You'll lose some edge definition but keep the translucency.
  • Brand color extraction: use RGB mode, low tolerance (~0.1), zero softness, zero spill — gives a hard-edged matte useful for masking.
  • Invert is powerful for utility work: "keep only the colored region" workflows often skip explicit masking in favor of inverted keys.

Limitations

  • Single key color. Footage with multi-colored screens (e.g. green + blue zones, or gradient lighting) needs two Keying nodes combined via Matte.
  • No built-in choke/expand — use the Matte node downstream.
  • No garbage mask input — bring your own via Matte or Crop upstream to exclude edges of the frame.
  • Not a full replacement for a dedicated keyer on difficult shots (spill on translucent objects, complex multicolor backgrounds). For clean shots it's excellent; for problem shots, multiple Keying + Matte stages can get you there.
  • Matte — choke / feather / combine multiple mattes. The downstream refinement for complex keys.
  • Mix — use the keyed output as a mask input for soft composites.
  • ColorSplit — extract an alpha-only or channel-only output if you want the matte separately for other uses.
  • Blur — light pre-blur on noisy footage often improves key quality.

Caddis — professional motion design.