Seedance 2.5 text to video
Write the scene and get the clip back with its soundtrack already on it — dialogue, ambience and effects generated alongside the picture, not dubbed over it afterwards.
bytedance/seedance-v2.5/text-to-videorequires prompt
ByteDance · audio-video generation
Seedance 2.5 generates the picture and its soundtrack in one pass, and holds a single unbroken take for up to 30 seconds at 24 fps. Five endpoints — from a text prompt, a still, a pair of keyframes, reference plates, or footage you already have — behind one REST API, one SDK and one MCP server.
A whole beat — setup, turn, resolution — in a single generation, instead of three clips cut together. Twice the ceiling of Seedance 2.0.
Dialogue, ambience and effects are generated in the same pass as the frames, so speech lands on mouths and effects land on the action.
Up to 30 reference images and 10 audio clips, plus 10 source videos on video-to-video — addressed in the prompt as @Image1, @Video1.
Text, stills, keyframe pairs, reference plates or existing footage. Same request lifecycle, same auth, same billing — swap the endpoint.
Every clip below was generated through these endpoints, and every one has sound. Click any of them to watch it here with its audio — the looping previews are silent, so playing a clip is the only way to hear what this model actually does.
Write the scene and get the clip back with its soundtrack already on it — dialogue, ambience and effects generated alongside the picture, not dubbed over it afterwards.
bytedance/seedance-v2.5/text-to-videorequires prompt
Your still becomes the first frame and the prompt describes what happens next. aspect_ratio defaults to adaptive, so the clip keeps the shape of the photo you sent.
bytedance/seedance-v2.5/image-to-videorequires prompt, image
Pin both ends of the shot and let the model generate everything in between — a transition, a transformation, or a loop when both frames are the same image.
bytedance/seedance-v2.5/first-last-framerequires prompt, image, end_image
Send up to 30 reference images — a face, a product, a wardrobe, a location — and address them in the prompt as @Image1, @Image2 to say what goes where.
bytedance/seedance-v2.5/reference-to-videorequires prompt, reference_images, plus reference_audios (up to 10)
Extend a clip past where it ends, or restyle, restage and reframe footage you already shot. Up to 10 source clips, addressed as @Video1 in the prompt, carry their camera move and pacing into the new shot. Extension returns a new generation rather than splicing your file, so plan a cut where exact frames, faces or on-screen text have to match.
Billed per token rather than per second: the length of the source footage you send is metered alongside the clip that comes back.
bytedance/seedance-v2.5/video-to-videorequires prompt, reference_videos, plus reference_images (up to 30), reference_audios (up to 10)
2.5 is not a strict upgrade. It buys length and reference capacity; it gives up the 1080p ceiling and costs more per second. Both generations are live, so pick per shot.
| Seedance 2.0 | Seedance 2.5 | |
|---|---|---|
| Longest single take | 15 seconds | 30 seconds |
| Default length | 5 seconds | model picks, 4–30s |
| Highest resolution | 1080p | 720p |
| Reference images | up to 9 | up to 30 |
| Reference video clips | up to 3 | up to 10 |
| Reference audio clips | up to 3 | up to 10 |
| Cost per second | lower | higher |
Need 1080p? Seedance 2.0 text to video runs at up to 1080p, and Seedance 2.0 Mini is the cheapest tier for drafting.
duration: -1 (the default) lets the model pick a length for the shot you described. To go past 30 seconds, extend with video to video — chain each result back in as the next pass’s source.480p or 720p (720p default). This generation has no 1080p.16:9, 4:3, 1:1, 3:4, 9:16, 21:9, and adaptive — which matches the shape of the image or clip you sent.generate_audio: false returns a silent clip at the same price.You pay per request — no subscription. Four of the five endpoints bill per second of finished video, so resolution and clip length are the two levers: 480p costs less per second than 720p, and setting duration yourself rather than leaving it at -1 is how you cap what a run can cost. Audio is free — a silent clip costs exactly the same. Video to video bills per token instead, metering the source clip you send alongside the clip you get back, so trim it.
Submit to the queue, poll the status URL, fetch the result. Input fields go at the top level of the request body. Swapping to any other Seedance 2.5 endpoint means changing the URL and the input fields — nothing else.
curl -X POST https://queue.modelrunner.run/bytedance/seedance-v2.5/text-to-video \
-H "Authorization: Key $MRUN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A lighthouse keeper climbs the spiral stair at dawn, lamp glass catching the first light, gulls calling outside as the storm clears",
"resolution": "720p",
"aspect_ratio": "9:16",
"duration": 12,
"generate_audio": true
}'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }
# Poll status_url until "COMPLETED", then fetch the finished clip
curl "https://queue.modelrunner.run/bytedance/seedance-v2.5/text-to-video/requests/$REQUEST_ID" \
-H "Authorization: Key $MRUN_API_KEY"import { modelrunner } from "@modelrunner/client";
const result = await modelrunner.subscribe(
"bytedance/seedance-v2.5/text-to-video",
{
input: {
prompt: "A lighthouse keeper climbs the spiral stair at dawn, gulls calling outside as the storm clears",
resolution: "720p",
aspect_ratio: "9:16",
duration: 12,
generate_audio: true,
},
},
);
// result.output holds the hosted MP4 URL
const videoUrl = result.output;Or connect the ModelRunner MCP server once and let Claude, Cursor or any MCP-capable assistant run Seedance 2.5 as a tool, authorized over OAuth.
claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcpSeedance 2.5 is ByteDance's audio-video generation model. It produces the picture and the soundtrack in a single pass — dialogue, ambience and sound effects come out aligned with what moves on screen instead of being dubbed on afterwards — and it can hold one continuous take for up to 30 seconds at 24 fps. ModelRunner exposes it as five endpoints under bytedance/seedance-v2.5, callable over one REST API.
Up to 30 seconds in a single generation, which is twice the 15-second ceiling of Seedance 2.0. Lengths are whole seconds from 4 to 30. Leaving duration at its default of -1 lets the model choose a length that suits the shot you described; because billing is per second of finished video, setting duration yourself is how you cap the cost of a run.
Yes. Audio is generated jointly with the video rather than as a separate pass, so speech lines up with mouths and effects land on the action. Describe the sound in the prompt as explicitly as the picture and the track follows it. Setting generate_audio to false returns a silent clip, and costs the same.
480p or 720p, at 24 fps, in seven frame shapes: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, and adaptive. This generation does not offer 1080p — if you need it, bytedance/seedance-v2/text-to-video runs at up to 1080p on the previous generation.
You pay per request, with no subscription. Four of the five endpoints bill per second of finished video, so resolution and clip length are the two levers — 480p costs less per second than 720p, and setting duration yourself instead of leaving it at -1 is how you cap what a run can cost. The video-to-video endpoint bills per token instead, because the source clip you send is metered alongside the clip you get back, so trim it. Current per-second rates for all five endpoints are listed on the pricing page at modelrunner.ai/pricing?q=seedance+2.5.
2.5 doubles the maximum single take from 15 to 30 seconds, raises the reference limits from 9 images / 3 clips / 3 audio tracks to 30 / 10 / 10, and improves motion consistency and realism. In exchange it tops out at 720p where 2.0 reached 1080p, and it costs more per second. Pick 2.0 when you need 1080p or the lowest price; pick 2.5 when you need length, references, or a single unbroken take.
Yes — extending existing footage is what the video-to-video endpoint is for. Send the clip you already have as reference_videos, address it in the prompt as @Video1, and describe what happens next; the model continues the action past where your source ends. One generation still returns at most 30 seconds, so to build something longer you chain passes: feed each result back in as the source for the next one. Two things to plan around. It returns a new generation rather than splicing your original file, so exact frames, faces and on-screen text are not carried across the join — put a cut there if they matter. And this endpoint bills per token, metering the source clip you send as well as the clip you get back, so trim each pass to the part that matters.
That is what the reference-to-video endpoint is for. Send up to 30 reference images — faces, wardrobe, a product, a location, a style plate — and address them in the prompt as @Image1, @Image2 and so on to control what appears where. The video-to-video endpoint accepts the same reference images alongside up to 10 source clips.
Connect the ModelRunner MCP server at https://mcp.modelrunner.run/mcp once, authorize it over OAuth, and every Seedance 2.5 endpoint becomes a tool your assistant can call. Results come back as hosted URLs in the conversation. In Claude Code that is a single command: claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp
Every endpoint has a free playground on its model page — run one before you write any code. Pay per request, no subscription.