Seedance 2.5 arrived in July 2026 and doubled the length ceiling of its predecessor: one render can run half a minute. It also reads a very large set of references, so a product or a person stays recognizable across the whole clip, and it can take a video you already have and change or continue it. Speech, effects and music are generated with the picture, in mono.
What you can make
- A complete 30-second ad or explainer from one prompt.
- A campaign where the same character and product stay consistent thanks to many reference shots.
- A longer version of an existing clip, or a clip with one element swapped out.
- Dialogue in a voice set by a reference audio track.
Settings that matter
- Length: 4 to 30 seconds, or
duration: -1for automatic (the estimate then counts 30 s). - Resolution: 480p, 720p or 1080p. For 4K, go back to Seedance 2.0.
- References: up to 30 images, 10 clips and 10 audio tracks. Real people may appear in reference images and videos.
- Reference clips: 2 to 30 seconds each, 30 seconds combined, billed on top of the output.
- Frame shape: start and end frames, edits and extensions force
adaptive, so crop later if you need a fixed format. - Extras: a
seed, mp4 or mov output, prompts up to 20,000 characters. Audio alone can serve as the only reference, for a voice or a beat.
Starter prompt
0-6 s: wide shot, a cyclist rides through a foggy forest at dawn. 6-18 s: close-up of the bike's chain and gears, mud splashing. 18-30 s: she stops on a ridge, sunlight breaks through, birdsongFor long clips a timed shot list like this works better than one paragraph; keep the time ranges and rewrite each shot.
Questions
How much does a Seedance 2.5 clip cost?
from $0.261 per second. Reference clips add to it, and the full amount shows up as estimated_cost before anything runs. A failed render costs nothing.
Can I use photos of real people as references?
Yes, the model allows it. You need the rights and the consent of the people shown, and the output is yours within the law and ByteDance's terms.
Where can I read more before I start?
The Seedance 2.5 guide covers requests and limits, and Veo 3.1 vs Seedance 2.5 helps if you are choosing between them.
Seedance 2.5 in your code
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "seedance-2.5",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "seedance-2.5",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Input fields
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 20000 chars | |
aspect_ratio | string | 16:9 9:16 1:1 4:3 3:4 21:9 adaptive | adaptive |
resolution | string | 480p 720p 1080p | 720p |
duration | integer | 4-30 | 5 |
generate_audio | boolean | true | |
image_url | string | ||
end_image_url | string | ||
image_urls | array | max 30 | |
video_urls | array | max 10 | |
audio_urls | array | max 10 | |
seed | integer |
Fetch this list as JSON with GET /v1/models/seedance-2.5.























