Green screen spill

Spill is green light that bounced off the screen onto your subject. It is real recorded light, not a keying mistake — which is why no threshold removes it. What it is, why it lands on the rim, and how far a slider can clean it up.

What spill actually is

A green screen is a lamp. Lit to a usable level, it throws green light in every direction, and some of that light lands on the person standing in front of it. The camera records it, so hair, shoulders, ears and light clothing come back with a green cast that has nothing to do with the backdrop behind them.

In one sentence: spill is light on the subject, not leftover background. Those pixels are your subject, fully opaque, and they should be. Keying them out punches holes in a person, and no threshold can tell "green because the screen lit it" from "green because it is the screen".

Why the rim goes green first

Three things put the worst of it at the outline:

None of it is fixable with a threshold: in every case the pixel really is your subject.

Two problems, one name

People say "green edge" for two different failures, and they need different fixes:

Our measurements separate them. On the fixture built to carry a green cast, default tolerance keys the backdrop perfectly — IoU 1.000, no subject pixel lost. A cast alone does not make skin transparent, so if you see a tint on an intact person, tolerance and trimming are the wrong tools and will cost you real pixels for nothing.

What spill removal does to a pixel

The operation is small and deliberately limited. Take the channel your key colour dominates — green, for a green screen — and pull it toward the brighter of the other two by however much the slider asks for. Three consequences follow, all asserted in the test suite:

It runs only where alpha is above zero, so the transparent backdrop is untouched and alpha is never modified. It changes colour, never shape.

The tool ships at 50. That is a starting point, not an answer: every row in our edge sweep has spill at zero, so there is no number for how much is too much. Tune it against a face and stop as soon as skin looks right — over-doing it drains the warmth out of a person.

Stop the light before you fix the pixels

Spill suppression is damage control. Preventing the bounce is cheaper and looks better:

The lighting guide covers the setup in detail; the OBS settings page explains the same three sliders in live-production terms.

The order that works

  1. Fix the lighting and the distance first. Most spill complaints are a setup problem wearing a slider costume.
  2. Set tolerance only until the last patch of backdrop disappears.
  3. Touch edge next, and only for a rim or a jagged outline — not for a tint.
  4. Raise spill removal last, watching skin tone, and stop early.
  5. Judge it in motion. A paused frame hides outline flicker, which is what a viewer sees.

When this does not work

Where the numbers come from

Every figure here comes from the CSVs in the public reference repository on GitHub; the write-up is on Zenodo under DOI 10.5281/zenodo.22916767. The fixtures are synthetic 320x240 images, not real footage, built from a seeded random number generator — treat the numbers as the behaviour of the algorithm, not a promise about your shoot.

To try the sliders on a file you shot, the tool runs it all in your browser with no upload. The benchmark page lists what was measured, and blue vs green covers switching key colour.

Open the tool