Video Matte (Background Removal)
Remove a video's background → per-frame alpha clip. `model` swaps the matting backend so a headless caller can A/B edges without editing the repo: veed (fast, 4K, WebM alpha), bria_v_rmbg (SOTA edges, WebM alpha), or birefnet (the only backend with true ProRes 4444 alpha — set alpha_format:prores). WebM alpha is VP9 alpha_mode (browsers/Remotion decode it; ffmpeg's default decoder hides it — use ProRes for tooling). The resolved falModelPath is reported on output.model.
Video Matte (Background Removal)
Node type: process:video_matte
Category: process
Description
Remove a video's background → per-frame alpha clip. model swaps the matting backend so a headless caller can A/B edges without editing the repo: veed (fast, 4K, WebM alpha), bria_v_rmbg (SOTA edges, WebM alpha), or birefnet (the only backend with true ProRes 4444 alpha — set alpha_format:prores). WebM alpha is VP9 alpha_mode (browsers/Remotion decode it; ffmpeg's default decoder hides it — use ProRes for tooling). The resolved falModelPath is reported on output.model.
Pricing
- Cost: ~16 credits per generation
Canvas ports
These appear as port handles on the left side of the node.
| ID | Label | Details |
|---|---|---|
video_url |
Video Url | VIDEO (required) |
Sidebar config
These render as form fields in the right-side config panel when the node is selected.
| ID | Label | Details |
|---|---|---|
model |
Matting Model | TEXT · options: veed, bria_v_rmbg, birefnet |
alpha_format |
Alpha Format | TEXT · options: webm_vp9, prores, mp4_h264 |
subject_is_person |
Subject Is Person (VEED) | BOOLEAN |
refine_foreground_edges |
Refine Foreground Edges (VEED) | BOOLEAN |
Outputs
| ID | Label | Type |
|---|---|---|
video |
Matte Video (alpha) | VIDEO |
Text behind the subject, which is what most people came here for
The effect: a title sits on screen and the person walks in front of it. It is this node plus a track ordering, and nothing else.
Your clip -> Video Matte -> Video Editor
track 1: the text
track 2: the alpha clip (on top, so it wins)
- Wire the clip into Video Url. It is a port, so wire it; do not paste the url into config where nobody can see where it came from.
- Leave Alpha Format on
webm_vp9unless a tool downstream has to read the alpha itself. - Run it. The Matte Video (alpha) output is your subject with the background gone, frame by frame.
- In the Video Editor, put the text on one timeline track and the matte clip on a track AFTER it. Track order is z-order and the first track is the bottom one, so the later track is the one that covers the other.
Get the order backwards and the text sits on top of the person, which looks like the node failed. It did not; the tracks are just the wrong way round.
One more setting, if your matte and your composition are different shapes: a
timeline clip fits cover by default, which CROPS the mismatch and can quietly
eat the edges of your subject. Set the clip's fit to contain and it letterboxes
instead.
Subject Is Person mattes the person and NOTHING they are on
This is the setting that costs an afternoon.
With Subject Is Person on, VEED cuts out the human and treats everything else as background. A bike, a skateboard, a horse, a held prop: all background. Frame to frame the model disagrees with itself about where the person stops and the object starts, so the edge crawls and the thing your subject is sitting on drifts in and out. On a moving shot the occlusion visibly flickers.
Turn it off when the subject and their vehicle or prop should be cut out as ONE object. You get whole-foreground matting instead, the rider and the bike come out together, and the flicker goes with them.
Leave it on for a plain talking head, where it is the more accurate of the two.
Three backends, and they are not interchangeable
They all cost the same. Pricing on this node is flat per run, so switching backends changes the edges and the speed, never the bill. Pick on quality.
| Model | Use it for |
|---|---|
veed (default) |
Fastest, handles 4K. Start here. |
bria_v_rmbg |
Cleanest edges (hair, motion blur). Reach for it when VEED's edges crawl. |
birefnet |
The only one that emits true ProRes 4444 alpha. |
Alpha Format interacts with that choice, and the node protects you rather than surprising you:
webm_vp9carries real alpha on all three. This is the default and the right answer almost always.proresneedsbirefnet. Ask for it on VEED or Bria and you get WebM alpha instead, never a silently flattened file.mp4_h264has NO alpha channel. Picking it means the background comes back as solid black, which defeats the point of the node.
The output reports which backend actually ran, so an A/B between two of them is readable after the fact instead of a guess.
WebM alpha is real even when your player says it is not
VP9 alpha_mode is what webm_vp9 produces. Browsers decode it, Remotion
decodes it, so the Video Editor and the render both see the transparency.
ffmpeg's default decoder does NOT, so a clip that looks like it has a black
background in a local ffmpeg preview can be perfectly correct in the render.
If something downstream genuinely has to read the alpha channel, that is the
one reason to switch to birefnet and ProRes.
Auto-generated from the Wireflow node registry.