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.