Green screen removal by API: chromakey in a video filter graph
Sume's video filter allowlists chromakey and colorkey, but an MP4 holds no alpha, so a key must be composited inside the graph. Not AI background removal.

For footage shot on a solid green or blue backdrop, POST /v1/video-filter can run chromakey or colorkey, both on its filter allowlist. The result is a new MP4, which cannot carry transparency, so the keyed subject has to be composited onto something inside the same graph.
Adobe's September 2026 Firefly notes describe a Remove Background feature that detects subjects and strips the background across a clip with no frame-by-frame masking. That is matting by detection; Sume's filter is a color key. What Sume offers for detection is covered in what Sume covers for video background removal. Filter facts are from Video filter, read 2026-10-01.
Which key filters can a graph use?
| Filter | Listed under |
|---|---|
chromakey | Tone / colour |
colorkey | Tone / colour |
despill | Tone / colour |
overlay, split | Compositing, internal labels only |
lut3d, movie | Not allowed |
Where does the keyed subject go?
There is one input clip and no second file, so there is no background image to key onto. The graph can split the clip and composite the keyed copy over a processed copy of itself. This sketch greys out and blurs the backdrop copy; the similarity and blend values are ffmpeg options you tune per footage, and the graph is untested here. Validate it with the free /check first. Stream specifiers like [0:v] are refused; internal labels are fine.
curl -X POST https://api.sume.com/v1/video-filter/check \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/greenscreen.mp4",
"filtergraph": "split[fg][bg];[bg]hue=s=0,gblur=sigma=20[bgb];[fg]chromakey=color=0x00FF00:similarity=0.15:blend=0.05[k];[bgb][k]overlay"
}'What if I want the subject on a new background?
Compose is the surface for that: Timeline compose places one Sume-hosted still and one video on screen together, but it takes a finished video layer and has no key option. A keyed result with real transparency is not something the video filter returns.
What does a filter job cost?
The docs list $0.02 per encode job, source up to 300 seconds, a filtergraph of at most 2048 characters and 32 named filters. The check is free and runs the same allowlist, but a bad expression or memory limit can still fail on the worker.
Sources
Related posts
More in Developers
- Agent SDK permissionMode omitted: auto mode, Sume gates stay
From Agent SDK 0.3.286 an omitted permissionMode can start in auto mode. Sume's idempotency_key and scope checks run server-side whatever mode you pick.
- Agent SDK rewind_conversation and a Sume job: find, then cancel
After rewind_conversation or a priority-now message, the MCP call is handled client-side. A submitted Sume job has its own id: find it with jobs_list.
- Claude Code: disable an MCP server mid-session, Sume jobs persist
Switching off an MCP server in Claude Code SDK sessions removes its tools for new calls. Sume jobs already submitted keep running until you read or cancel them.
- Claude API compaction block: keep Sume job ids past the summary
The compact-2026-09-04 beta swaps old messages for a signed compaction block. Keep Sume job ids and keys outside it; re-read with jobs_status.
Written by Sume