Seedance 2.5 green-screen editing: swap a background on Sume
ByteDance and fal describe green-screen editing for Seedance 2.5. Sume does not expose that mode, but Omni edit swaps a background with one video_url request.

Sume does not expose a green-screen or editing mode for Seedance 2.5: the seedance-2.5 id takes text, frames and references, and a video input there is a reference, not an edit source. To swap the background of an existing clip on Sume, send the clip as video_url to gemini-omni-flash-1.1 with a prompt that describes the new background.
That is a different model, so the result will not match what Seedance's own editing would give. It does give you a hosted edit through the same API.
What the vendors say
ByteDance's Seedance 2.5 page mentions smarter reference and editing capabilities, with white-model control and green-screen editing. fal's page describes green-screen editing as swapping backgrounds while the subject reacts to the new surroundings. Neither page gives the request fields for it, and I found no Sume doc that exposes it, so I treat it as not available on Sume today.
The Sume route: Omni edit
Omni's edit mode is triggered by video_url. You cannot combine it with image_url, end_image_url or reference_*_urls. Native audio stays on, and the API rejects aspect_ratio in this mode because the source sets the output, and a duration is only a cost hint.
The edit lives on the Video Router surface. It is not part of the OpenRouter-shaped /v1/videos body.
curl -X POST https://api.sume.com/v1/video-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bg-swap-001" \
-d '{"model":"gemini-omni-flash-1.1","prompt":"Replace the background with a sunlit rooftop garden. Keep the person, their motion and the sound exactly the same.","video_url":"https://example.com/clip.mp4","resolution":"720p","mode":"async"}'How the options compare
Use the table to choose by what you need to keep.
| Need | Seedance 2.5 on Sume | Omni edit on Sume |
|---|---|---|
| Edit an existing video | no, video input is a reference | yes, send video_url |
| Output length | 4 to 30 s of new content | set by the source clip |
| Audio | generate_audio toggle | always on |
| Resolution options | 480p, 720p, 1080p | 360p, 720p, 1080p, 4K (default 720p) |
Know the limits
An edit regenerates the clip rather than compositing a cutout, so faces, hands and small details can shift. Check the result against the source before you ship it. There is no mask field, so you describe what to keep in the prompt.
If the background change is all you need and the subject has to stay pixel-identical, a model edit is the wrong tool; a matte-based workflow in your own editor will beat it.
Write the edit prompt well
Omni's edit is driven by one prompt, so the prompt has to say what stays as well as what changes.
- Name the thing to replace, in plain words: the wall, the street, the sky.
- State what must not move: the person, their motion, the camera path and the sound.
- Describe the light of the new background so the subject does not look pasted in.
- Keep it to one change per request. Two changes in one prompt more often shift something you wanted to keep.
- Check hands, hair edges and any text in the frame on the result before you ship it.
Sources
Related posts
More in Developers
- Seedance 2.5 price per second: read it from the Sume catalog before Q4
Seedance 2.5 renders 4 to 30 seconds at up to 1080p on Sume. Read its live price from the catalog, then run one 4-second draft to get your real cost per second.
- Seedance 2.5 reference video over 30 s: trim it first with Video Trim
fal lists Seedance 2.5 reference video and audio at 30 seconds in total. Cut a longer source to fit with Sume's video-trim, $0.02 a job, before you generate.
- Send a WAV file to MAI-Transcribe-2-Streaming: PCM16, no WAV header
MAI streaming wants raw PCM16 mono at 16 or 24 kHz as base64 in 10-20 ms chunks, no header. Python's wave module strips it; Sume's STT shape is 16 kHz mono.
- service_account_callback_domain_not_allowed 403: fix the callback host
The 403 means webhook_url's host is outside the key's allowed callback domains. An exact host or any subdomain of an allowed domain passes.
Written by Sume