Spill Suppression

Spill Suppression operator properties for Script Engine. Removes residual green or blue colour cast that the screen reflects onto the subject's hair, skin, and clothing during chroma key shoots. Useful as a clean-up step after a keyer leaves coloured fringing on edges, for protecting skin tones in news and weather presentations, for gaming streamers whose hair picks up green bounce, and for any virtual studio or in-camera VFX shot where the foreground feels colour-cast against the new background. Pairs naturally with Light Wrap to finish off the composite.

Property Type Access Description
ShowAdvancedOptions bool get/set Reveals additional fine-tuning controls (spill range, skin protection, alpha adjustment, suppression mask). Leave off for quick clean-up; turn on when you need tight control over how much spill is removed.
Screen SpillSuppressionScreenType get/set Colour of the chroma key screen (Green or Blue). Pick the colour matching your physical screen so spill is detected on the correct channel.
Amount int get/set Overall strength of the spill suppression. [min=0, max=100, default=80]. Lower if skin or hair starts looking magenta/yellow; raise if green/blue tint is still visible. 0 disables suppression entirely.
Method SpillSuppressionMethod get/set Detection method (Soft, Medium, Hard, etc.) — affects how aggressively spill is identified. Try a softer method if foreground colours are being affected; harder methods are better for stubborn spill.
CoreStrength int get/set Strength applied to areas with obvious spill (clearly green/blue cast). [min=0, max=100, default=100]. Lower if obvious spill areas are getting too washed out.
EdgeStrength int get/set Strength applied to subtle edge spill (faint colour fringing). [min=0, max=100, default=50]. Raise to clean up faint coloured halos at the matte edge; lower if hair detail is being flattened.
Replace SpillSuppressionReplaceMode get/set What replaces the removed spill colour (Complement, Average, Custom tint, etc.). Complement is a good neutral default; Custom lets you push edges toward a specific tone (e.g. warm skin).
TintStrength int get/set Strength of the replacement tint. [min=0, max=100, default=30]. Raise for a stronger coloured replacement; lower for a more neutral grey result.
ReplaceRed int get/set Red component of the custom replacement colour. [min=0, max=255, default=255]. Combine with ReplaceGreen and ReplaceBlue to choose the tone written into spill areas when Replace is set to Custom.
ReplaceGreen int get/set Green component of the custom replacement colour. [min=0, max=255, default=200]. Pair with ReplaceRed and ReplaceBlue to set the tone for replaced spill.
ReplaceBlue int get/set Blue component of the custom replacement colour. [min=0, max=255, default=180]. Pair with ReplaceRed and ReplaceGreen to set the tone for replaced spill.
SpillRange int get/set How far from pure green/blue still counts as spill. [min=0, max=100, default=20]. Higher = more sensitive (catches faint cast); lower = stricter (only obvious spill is removed).
ProtectSkin bool get/set Reduces suppression on detected skin tones so faces do not shift colour. [default=true]. Leave on for human subjects; turn off for non-skin scenes if it causes false positives.
LuminancePreserve int get/set Maintains the original brightness of pixels after suppression. [min=0, max=100, default=50]. Raise if suppressed regions look unnaturally dark or bright; lower for the raw suppression result.
Output SpillSuppressionOutputMode get/set What the operator outputs (Final, Original input, Spill visualisation, Alpha, etc.). Switch to Spill while tuning to see exactly which pixels are being treated as spill; switch back to Final for the result.
UseSuppressionMask bool get/set Limits where suppression is applied via the mask image (white = full suppression, black = none). Useful for protecting jewellery, props or set elements that share the screen colour but should not be desaturated.
InvertSuppressionMask bool get/set Inverts the mask interpretation (white = no suppression, black = full suppression). Use when your mask image was painted with the opposite convention.
MaskChannel SpillSuppressionMaskChannelMode get/set Which channel to read from the mask image (Luminance, Green, etc.). Green is compatible with HSV Keyer garbage matte files; Luminance reads overall brightness.
SuppressionMaskSourceUrl Uri get/set Path to the suppression mask image file. Paint white where you want suppression to apply, black where it should be skipped.
SuppressionMaskXOffset int get/set Horizontal offset of the suppression mask image, in pixels. Use to nudge a precomposed mask into alignment if the camera has shifted.
SuppressionMaskYOffset int get/set Vertical offset of the suppression mask image, in pixels. Use to nudge a precomposed mask into alignment if the camera has shifted.
SuppressionMaskSourceLayer LayerRenderInfo get/set Use another layer's rendered output as a live suppression mask (experimental). Useful when the mask should track changes — e.g. an animated mask layer.
UseSuppressionMaskSourceLayer bool get/set Enable the experimental layer-based suppression mask (uses SuppressionMaskSourceLayer instead of an image file).
AlphaAdjust int get/set Maximum alpha reduction in spill regions. [min=0, max=100, default=0]. 0 leaves alpha untouched; 100 makes the strongest spill regions fully transparent. Useful for cleaning up halos that the keyer left behind.
AlphaThreshold int get/set Minimum spill strength before alpha is affected. [min=0, max=100, default=0]. 0 means even faint spill reduces alpha; raise to protect light spill regions from becoming transparent.
AlphaSoftness int get/set Width of the soft falloff above the alpha threshold. [min=0, max=100, default=50]. Raise for gradual alpha changes that follow spill smoothly; lower for hard alpha cuts.
Minilog FormattedMessage get/set Status message about mask loading and runtime warnings.

Inherits from: AbstractOperator, AbstractAudioMetering.

See also: Spill Suppression in Operators — user-facing introduction, screenshots, and section summaries.