Green Screen Remover Spill: Kill the Green Glow on Skin and Hair

The key removes the backdrop; this page removes what the backdrop bounced back. A working despill tool, the measured cost of doing it in the wrong order, and the cases where no clamp helps.

Short answer: green spill is green light bouncing from the backdrop onto skin, hair and pale clothing. A chroma key cannot remove it: those pixels are genuinely green, so raising tolerance only eats the subject. Key the frame first, then despill — cap the green channel at the larger of red and blue on the edge. The tool below does that to a keyed PNG, in this tab.

Drop a keyed PNG here, or

Waiting for a keyed PNG. The file is read in this tab and never uploaded.

This tool changes colour, not transparency. It cannot key a background out — use the green screen remover first, then bring the transparent PNG here. The checkerboard shows the alpha you already have.

Why raising tolerance never removes spill

Spill is not a keying failure. The backdrop throws green light onto the subject, and the camera records a pixel that really is green. The key measures distance from the sampled background colour, so it has no way to tell a green fringe from a green shirt — both are green pixels near the same point.

That is measurable. Using the same colour-distance maths as this site's keyer, with the background sampled at #00b140 and edge softness fixed at 6%, a shoulder spill rim (#3f8f52) sits 16.71% away from the key colour, while a genuinely green shirt (#2f7d3f) sits 15.87% away. The shirt is closer to the background than the spill is, so it always dies first:

ToleranceShoulder spill rimGreen shirtWhat you see
10%alpha 255alpha 250Both solid; the rim is still green
12%alpha 200alpha 165Rim fades slightly; the shirt is already softer
14%alpha 115alpha 80The usual compromise: a half-transparent green ghost
16%alpha 30alpha 0Rim nearly gone; the shirt is gone
18%alpha 0alpha 0Both removed — including the clothing

Measured 2026-10-22 with this site's keying formula on synthetic pixels; alpha 0 is fully transparent, 255 fully opaque. The exact numbers depend on the sampled green, but the order does not: the subject's own green is always inside the tolerance before the spill is.

So the fix cannot be a slider that decides which green pixels are real. It has to be a second operation that removes the green cast while keeping the pixel — and it has to run after the key, on the part of the image that survived.

The clamp that removes spill: green down to max(red, blue)

A despill does not delete anything. It lowers the green channel until green is no longer the strongest colour in that pixel. The gentle form is one line:

g' = g − strength × max(0, g − max(r, b))

At 100% strength, any pixel whose green is above both red and blue has its green pulled down to the larger of the two. A pixel that is already red-dominant — normal skin — is not touched at all. Measured on the same eight test pixels:

PixelOriginalGreen above max(R,B)Gentle, 100%Strong, 100%
Shoulder spill rim#3f8f5261#3f5252#3f4952
Hair edge spill#2a3a2c14#2a2c2c#2a2b2c
White shirt + spill#e6ece66#e6e6e6#e6e6e6
Skin midtone#d9a07a0#d9a07a#d9a07a
Green shirt#2f7d3f62#2f3f3f#2f373f
Lit backdrop#00b140113#004040#002040

Measured 2026-10-22 in Node 24 on the pixels shown; “strong” caps green at the average of red and blue instead of the larger one. The backdrop rows are there to show why the order matters — see below.

Strength is a real control, not decoration. At 50% the same rim becomes #3f7152, which still reads green on a white background; at 100% it becomes #3f5252, a neutral grey-teal. On a soft edge, the honest starting point is 100%, then lower it only if the result looks bleached.

What despill does to the edge — and to a green shirt

Two things surprise people, and both are measurable.

The edge stays soft, but stops being green. This tool leaves the alpha channel exactly as it found it. A spill rim that the key left at alpha 115 keeps alpha 115; only its colour changes. If you re-key the despilled file instead, the pixel is now 26.13% away from the key colour rather than 16.71%, so the key would make it fully opaque. That is fine when you want a solid matte, and wrong when you wanted a soft fade — so despill after the key, and do not key twice.

It cannot tell spill from costume. The green shirt is green, so the clamp hits it: #2f7d3f becomes #2f3f3f, a teal-grey. Selecting “edge pixels only” does not save it here, because at 14% tolerance with 6% softness the shirt is already inside the soft band (alpha 80). Measured on this exact set:

PixelAlpha after key (14% / 6%)Edge-only despillResult
Shoulder spill rim115Applied#3f5252
Green shirt80Applied#2f3f3f
Hair edge spill255SkippedStays #2a3a2c
White shirt + spill255SkippedStays #e6ece6

Measured 2026-10-22. Edge-only means alpha 1–254: the fringe is treated, fully opaque spill is not.

So edge-only is a compromise, not a solution. It protects opaque spill-free areas and misses opaque spill; it still hits clothing that sits in the soft band. If the subject wears green, the reliable fix is a mask: despill everything, then paint the costume back, or invert the mask and apply the clamp only outside it.

Do it after the key, never before

The clamp is colour-blind in a second way: it also destroys the backdrop you were about to key. Run the gentle form at 100% on the lit background #00b140 and it becomes #004040. That is 25.58% away from the original key colour instead of 0%, so at 14% tolerance its alpha goes from 0 to 255 — the background comes back, now dark teal.

OrderBackdrop after step 1Distance from keyKey result at 14%
Key, then despilltransparent, alpha 00%Correct matte; despill touches only visible pixels
Despill, then key#00404025.58%Alpha 255 — the backdrop survives the key

The rule is short: key → despill → composite. The tool above enforces it by skipping every pixel with alpha 0, so a properly keyed PNG cannot have its background turned into an unkeyable colour.

Spill on video: one more filter, same order

FFmpeg ships a despill filter, and it belongs after chromakey in the chain. Its alpha option is off by default, so the matte from the key is carried through while only the colour is corrected:

ffmpeg -i in.mp4 -vf "chromakey=0x00b140:0.10:0.06,despill=type=green:mix=0.5,format=yuva420p" -c:v libvpx-vp9 -pix_fmt yuva420p -b:v 0 -crf 28 -auto-alt-ref 0 out.webm

The numbers do not transfer one-to-one. Run on the same shoulder-rim pixel, FFmpeg's filter produced #3f4852 at the default mix=0.5 and #3f3e52 at mix=1 — stronger than the gentle clamp here (#3f5252) at the same nominal “half” setting. On the green shirt, mix=1 gave #2f373f. Treat mix as a separate scale and judge it on a frame, exactly as with the tolerance.

Measured 2026-10-22 with FFmpeg 9.0.2 on a 700×100 RGB test strip, decoded back to RGB. The full video path, including alpha output and verification, is on green screen remover for video.

Check the despill before you deliver

Green screen remover spill: questions

Why does my green screen removal look jagged or have green edges?

Two different faults. Jagged means the alpha is close to binary: every pixel is either 0 or 255, so diagonal and hair edges become a staircase. That is an edge-softness problem — raise softness, then re-check. Green edges mean the pixels survived the key but still carry the backdrop's colour; that is spill, and softness only makes them a softer green. Fix them in that order: soften the matte first, then despill the colour. If you despill first and soften afterwards, the fringe turns grey but the staircase stays.

Why did my green shirt turn grey after despill?

Because the clamp acts on any pixel where green is the highest channel, and a green shirt qualifies. Measured here, #2f7d3f keeps its red and blue but drops green from 125 to 63, giving #2f3f3f. Edge-only does not save it when the shirt is inside the soft band: at 14% tolerance and 6% softness that pixel sits at alpha 80, so it is treated. Either mask the shirt before despilling, or use 50% strength — which gives #2f5e3f, still green but less saturated — and accept that some spill remains.

Can despill fix a green cast on skin?

Only partly, and this is where most tutorials overpromise. The gentle clamp does nothing to a pixel whose red is already higher than its green: the measured skin midtone #d9a07a has green 160 against a red of 217, so it is left untouched. A skin pixel with a visible green cast, #b8b088, also has green below red, so the gentle form does nothing; the strong form pulls green from 176 to 160 and turns the skin slightly magenta. Neither is a real skin correction. If faces are green, fix the light or use a masked hue/saturation correction — do not push the global clamp harder.

Is it safe to despill before keying?

No. The clamp does not know the backdrop is meant to disappear, so it darkens it: #00b140 becomes #004040, which is 25.58% away from the original key colour. At 14% tolerance that pixel's alpha is 255, so the background survives the key. Key first, despill second. The tool on this page skips alpha-0 pixels for exactly that reason.

Next step

Key the frame at the browser green screen remover, download the transparent PNG, then drop that PNG into the tool above. For a clip rather than a still, start with the video workflow and add despill to the filter chain. If you came here for the job builder instead, start at the Seedance 2.5 builder.