Summary: Most video models hand you two bad options: clips short enough that you have to stitch them, or resolution you pay dearly for. Seedance 2.5, running on OpenRouter’s video API since August 7, 2026, takes a third path — single takes that run longer, and cheaper work that builds on footage already in hand. What that path costs is a 720p ceiling.
Most video models hand you two bad options: clips short enough that you have to stitch them, or resolution you pay dearly for. Seedance 2.5, running on OpenRouter’s video API since August 7, 2026, takes a third path — single takes that run longer, and cheaper work that builds on footage already in hand. What that path costs is a 720p ceiling.
The spec sheet, and where it narrows
OpenRouter’s review of Seedance 2.5 puts the model at clips of 4 to 30 seconds, 480p or 720p, six aspect ratios, first and last frame control, and audio produced in the same pass. Its slug is bytedance/seedance-2.5.
Resolution is where it gives ground. Seedance 2.0, from the same family, reaches 4K but stops at 15 seconds — which makes the newer release the narrower of the two on that axis. A delivery format calling for 1080p or 4K rules this slug out, so settle that question before building anything on top of it.
What the per-second number actually means
As of September 3, 2026, OpenRouter lists Seedance 2.5 from $0.1028 per second of generated video, the figure 480p works out to. It is derived rather than posted: billing runs on video tokens, and token count moves with output pixels as well as with duration. A second of 720p from the same model costs a little over double a second of 480p — roughly $0.231.
The formula OpenRouter publishes is (width x height x fps x duration) / 1024 video tokens at 24 fps, billed at $0.0000107 per token. Budgeting turns on this, because a 30-second 720p clip does not scale linearly from a 5-second one the way a flat per-second rate would imply.
There is a second rate worth knowing. A request carrying a video reference bills at $0.0000064 per token, about 40% under base — at 720p, $0.138 per second rather than $0.231. Extending footage you already hold is cheaper per second than generating cold.
Audio is included either way. OpenRouter charges video tokens at the same rate whether generate_audio is on or off, so muting a generation saves nothing — unlike Veo 3.1, at $0.40 per second with audio against $0.20 without, and unlike Seedance 1.5 Pro, which halves its rate for silent output.
Where the request shape gets interesting
On Seedance generation 2 and newer, input_references takes image, video, and audio assets. An image reference carries a face, a product, or a style; a video reference hands the model footage to edit or extend; an audio reference supplies a track to work against. OpenRouter’s model page lists up to 50 reference assets per request, though the review flags that as a model page figure rather than a limit the endpoint publishes.
Frame images and reference assets are separate modes, not layers that stack. Send both and frame images take priority: the job is treated as image-to-video, the references produce no visible effect, and the request bills at the base rate. That is an easy way to spend more than you meant to.
frame_images accepts first_frame and last_frame, letting you pin both ends of a shot and leave the motion between them to the model. Wan 3.0, the other 30-second model, lists first frame only.
Calling it is not a chat completion
Video generation runs on a dedicated asynchronous endpoint rather than /chat/completions. You submit a job to POST /api/v1/videos, poll the returned polling_url until the status reads completed, then download the result with your API key. Generation usually takes 30 seconds to a few minutes, which makes a 30-second polling interval a reasonable default. Video models are also missing from the plain models list — reach them through /api/v1/videos/models or the video model collection.
curl -X POST "https://openrouter.ai/api/v1/videos" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.5",
"prompt": "A chef plates a bowl of ramen in a narrow shop at night.",
"duration": 12,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
A 202 response carries { id, polling_url, status }. The statuses failed, cancelled, and expired are terminal, and the reason lands in .error.
The practical routing decision
OpenRouter’s own guidance is to use a different model when 1080p or 4K is required, when the lowest price per second at the same clip length is the goal, or when output has to be frame-exact and reproducible. Seedance 2.0 Fast and Mini are the cheaper draft slugs, at $0.0000042 and $0.0000035 per token.
The pattern that falls out: draft at 480p, finish at 720p, and prefer extension over cold generation when footage is already in hand. The two resolutions differ by more than a factor of two in price, but not in how the prompt gets written.
If the question is whether a per-token video bill belongs in your pipeline at all, the same arithmetic shows up in OpenRouter Presets and config-as-code for LLM calls — a cost model only pays off once the request shape is something you can version and review.
Two limits are worth holding onto: OpenRouter reports the 50-reference ceiling as a model page figure rather than a measured endpoint limit, and determinism is not guaranteed even when a seed is accepted. Treat both as reported, not verified.
