Seedance 2.5 seed, size and provider options: why Sume returns 400
Sume rejects seed, size and non-empty provider.options on seedance-2.5 with 400 instead of dropping them. What to send to repeat a clip or fix the frame size.

Sume returns a 400 for seed, size and a non-empty provider.options on seedance-2.5, by design: the docs say a loud 400 beats generating something you did not ask for and still billing it. To get a given frame shape, use resolution plus aspect_ratio; there is no seed to repeat a clip, so keep the output you like.
The rules are in the Sume-differences table of Video generation ("no v1 model accepts seed; each reports seed: false and rejects the field") and in the schema for the Video Router (Video Router, API reference).
What does each field return?
Three fields are accepted by the /v1/videos schema so that OpenRouter-shaped clients type-check, then refused with a specific message. The Video Router is stricter at the schema level.
| Field | Result | Use instead |
|---|---|---|
seed | 400 unsupported_parameter: "seed is not supported in v1" | Save the clip you want; there is no replay |
size | 400 unsupported_parameter; every model reports supported_sizes: null | resolution + aspect_ratio |
provider.options (non-empty) | 400 unsupported_parameter; allowed_passthrough_parameters is empty | Omit it |
model_params (Video Router, non-empty) | 400: empty allowlist in v1 | Omit it or send {} |
| Any other unknown key (Video Router) | Rejected: the schema sets additionalProperties: false | Check the field list |
How do I get a particular frame size?
Pick resolution (480p, 720p or 1080p for Seedance 2.5) and aspect_ratio (16:9, 9:16, 1:1, 4:3, 3:4, 21:9, or auto). The pixel size follows from the pair. Seedance 2.0 resolution in pixels shows how those pairs map to width and height for the 2.0 family; read the catalog for 2.5.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"seedance-2.5","prompt":"Rain on a tram window","duration":6,"resolution":"720p","aspect_ratio":"9:16"}'Can I repeat a clip without a seed?
Not by request. Sume's docs list seed as unsupported for every v1 model, so the same prompt can give a different clip each time. To iterate on one result, use it as a reference or a first frame in the next request, rather than hoping a number reproduces it. What is an AI video seed? explains the idea and the workaround.
Is the 400 charged?
No job is created for a request refused at validation, so there is nothing to bill. Fix the body and send a new request. If you used an Idempotency-Key, change it along with the body, because a changed body under the same key is a conflict.
Sources
Related posts
More in Developers
- Seedance 2.5 sync mode: a 30-second wait, then poll
mode sync on the Video Router blocks at most 30 seconds. A Seedance 2.5 job can outlast it, so read sync.timed_out and poll status_url without resubmitting.
- Seedance aspect ratios on Sume: 3:2 and 9:21 are not on every model
Sume accepts nine aspect ratios in total, but each video model lists its own subset. Check supported_aspect_ratios before you request 3:2 or 9:21.
- Seedance 2.5 input_references: image, video and audio shapes
The exact JSON for an image_url, video_url and audio_url entry in input_references on POST /v1/videos, one mixed Seedance 2.5 request, and the errors you get.
- Seedance 2.5 reference images in Python with asyncio and httpx
A runnable Python script: send reference images to seedance-2.5 on Sume's /v1/videos, poll every 30 s with asyncio, save the MP4, and handle the errors.
Written by Sume