Seedance 2.5

Seedance 2.5 is ByteDance's higher-end multimodal video generation model for production-oriented creative work. It supports native 30-second video generation, larger reference sets across image, video, and audio inputs, and stronger instruction following for complex shots, multilingual prompts, and reference-heavy creative direction. It is especially well suited to branded storytelling, advertising, explainers, and other commercial workflows that need longer continuous scenes, tighter subject and style consistency, and precise edits that preserve the rest of the shot.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesPrompting Seedance 2.5
How to prompt Seedance 2.5 for directed text-to-video: the five-layer shot scaffold, camera vocabulary the model reads directly, second-level timing, and native audio.
Introduction
Seedance 2.5 is ByteDance's flagship video model, and it reads a prompt like a shot brief. Framing, subject, action, light, and audio each become a directive, and the returned clip holds all of them at once. The result reads as directed motion, closer to a shot a crew set up than a moving still.
An 8-second fitness workout demo, bright and energetic. A fit athlete in a charcoal training top and shorts performs three controlled kettlebell swings in a clean sunlit gym studio with pale wood floors. A medium tracking shot arcs slowly from her side to a three-quarter front angle as she swings, holding her centered while the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from tall windows on the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell at the bottom of each swing, light airy gym ambience, no music.
That clip came from a single 8-second call. The prompt named the shot (a slow arc), the subject (the athlete and the kettlebell), the action (three controlled swings), the light, and the sound of the effort. This guide covers the five-layer scaffold Seedance rewards, the camera vocabulary it reads directly, how to keep subject motion separate from camera motion, second-level timing, and the native audio track.
The request
Every call is a videoInference task, and the only required field is positivePrompt. Everything else has a sensible default. The hero above came from this call:
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bytedance:seedance@2.5',
positivePrompt: 'An 8-second fitness workout demo. A fit athlete in a charcoal training top performs three controlled kettlebell swings in a clean sunlit gym studio. A medium tracking shot arcs slowly from her side to a three-quarter front angle, holding her centered as the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell, light gym ambience, no music.',
resolution: '720p',
duration: 8,
deliveryMethod: 'async'
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "bytedance:seedance@2.5",
"positivePrompt": "An 8-second fitness workout demo. A fit athlete in a charcoal training top performs three controlled kettlebell swings in a clean sunlit gym studio. A medium tracking shot arcs slowly from her side to a three-quarter front angle, holding her centered as the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell, light gym ambience, no music.",
"resolution": "720p",
"duration": 8,
"deliveryMethod": "async"
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "videoInference",
"taskUUID": "3f8a2b1c-5d6e-4790-b1a2-c3d4e5f60718",
"model": "bytedance:seedance@2.5",
"positivePrompt": "An 8-second fitness workout demo. A fit athlete in a charcoal training top performs three controlled kettlebell swings in a clean sunlit gym studio. A medium tracking shot arcs slowly from her side to a three-quarter front angle, holding her centered as the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell, light gym ambience, no music.",
"resolution": "720p",
"duration": 8,
"deliveryMethod": "async"
}
]'runware run bytedance:seedance@2.5 \
positivePrompt="An 8-second fitness workout demo. A fit athlete in a charcoal training top performs three controlled kettlebell swings in a clean sunlit gym studio. A medium tracking shot arcs slowly from her side to a three-quarter front angle, holding her centered as the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell, light gym ambience, no music." \
resolution=720p \
duration=8 \
deliveryMethod=async{
"taskType": "videoInference",
"taskUUID": "3f8a2b1c-5d6e-4790-b1a2-c3d4e5f60718",
"model": "bytedance:seedance@2.5",
"positivePrompt": "An 8-second fitness workout demo. A fit athlete in a charcoal training top performs three controlled kettlebell swings in a clean sunlit gym studio. A medium tracking shot arcs slowly from her side to a three-quarter front angle, holding her centered as the kettlebell rises to chest height and drops back in a steady rhythm. Bright even daylight from the left, clean commercial color grade. Audio: her steady rhythmic breathing, the soft thud of the kettlebell, light gym ambience, no music.",
"resolution": "720p",
"duration": 8,
"deliveryMethod": "async"
}[
{
"taskType": "videoInference",
"taskUUID": "3f8a2b1c-5d6e-4790-b1a2-c3d4e5f60718",
"videoUUID": "8c1d2e3f-4a5b-6789-0abc-def123456789",
"videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/8c1d2e3f-4a5b-6789-0abc-def123456789.mp4"
}
]The essentials:
positivePromptis required, up to 10,000 characters. Detail helps, but retention doesn't scale forever: past a few hundred well-chosen words the model starts dropping clauses. Tighten before you add.- Output size is either
resolution(480por720p) or an explicitwidthandheightpair. The two are mutually exclusive.resolutionrenders 16:9, so for anything other than 16:9, pass a width and height instead. durationis an integer from 4 to 30 seconds, default 5.- Audio is generated by default. Set
settings.audiotofalsefor a silent clip. - Video delivery is always async: the immediate response acknowledges the task, and the finished clip arrives by polling or a webhook.
Seedance 2.5 tops out at 720p. There is no 1080p or 4k output: resolution accepts only 480p and 720p, and the width/height pairs top out at the 720p tier (1280 × 720 and its aspect variants). Plan delivery around 720p as the ceiling.
Structuring the prompt
Seedance rewards prompts that separate five concerns: the shot, the subject, the action, the light, and the audio. Each clause becomes a directive the model tries to hold, so dropping any one hands that decision to the model's defaults.
An 8-second beverage brand commercial for a sparkling citrus soda. A slow steady push-in at close range as a hand lifts a frosted glass bottle of pale-orange sparkling soda from a wet slate countertop and pours a steady stream into a tall glass of ice beside it. The soda fizzes and races with bubbles as it fills the glass, a thin curl of orange zest dropping onto the rising foam, beads of condensation on the bottle catching the light. Bright clean daylight from the upper left, fresh airy color grade, shallow depth of field. Audio: the crisp fizz of the pour, ice settling in the glass, light bright ambience, no music.
Every layer earns its place. The shot layer sets framing and camera movement, so "push-in" becomes a real move rather than ambient float. The subject layer grounds the materials and setting, the action layer is what happens across the runtime, and the light layer picks the exposure register. The audio layer is a real input, so name what you want to hear or the model fills it in for you.
Name the shot first. A shot clause up front tells Seedance to reserve motion for the camera. Drop it and the model tends to animate the subject to feel less static, which is not the same as directing a camera.
The character ceiling is generous, but detail retention isn't. Past a few hundred well-chosen words, extra clauses compete for attention and details drop out. Cut anything that isn't carrying the shot.
Directing motion
Motion comes from two places worth prompting separately: what the camera does, and what the subject does.
Camera vocabulary
Seedance reads shot language directly, in the terms a real crew uses. These moves land without further explanation:
- Dolly-in / push-in, dolly-out / pull-back. The camera physically moves toward or away from the subject.
- Orbit / arc. The camera swings around the subject on a circular path, revealing new faces.
- Crane / boom. The camera rises or falls on a vertical arm.
- Handheld. Subtle organic shake, as if a person is holding the camera.
- Static / locked-off. No camera movement, only subject motion inside the frame.
- Dolly zoom / Vertigo. Physical dolly and optical zoom in opposite directions, warping the background.
- One-shot, FPV, bullet time, speed ramp. The specialist moves also register. Pair an unusual term with a plain-language description of what should happen, to be safe.
The three clips below run the same sneaker on the same pedestal through three of those moves. Only the shot clause changes.
A 5-second premium sneaker product shot. A single white-and-mint running sneaker centered on a smooth pale concrete pedestal in a bright minimalist studio, clean soft daylight from the left. The camera performs a slow steady dolly-in from a mid-shot down to a tight close-up on the laces and knit upper; the sneaker stays centered as the studio compresses around it. Clean commercial product cinematography. Audio: low studio room tone, no music.
A 5-second premium sneaker product shot. A single white-and-mint running sneaker centered on a smooth pale concrete pedestal in a bright minimalist studio, clean soft daylight from the left. The camera performs a smooth ninety-degree orbit around the sneaker from a front three-quarter angle to a full side profile; the sneaker stays centered as the light slides across the knit and the sole. Clean commercial product cinematography. Audio: low studio room tone, no music.
A 5-second premium sneaker product shot. A single white-and-mint running sneaker centered on a smooth pale concrete pedestal in a bright minimalist studio, clean soft daylight from the left. The camera performs a subtle dolly-zoom (Vertigo effect): it pushes forward while the lens zooms out, so the sneaker holds its size while the studio backdrop warps and stretches outward around it. Clean commercial product cinematography. Audio: low studio room tone, no music.
Each move signals a different intent. The dolly-in fills the frame with the product for a "look at this" beat. The orbit reveals a second face without changing the light or the set, which is what a spec-sheet turnaround wants. The dolly zoom isolates the product against a warping plane, the way a hero beat does. Running one subject through several moves gives you campaign variants that read as one shoot. Change more than the camera clause between them and they read as three unrelated clips.
Directing subject motion
Subject motion carries the actual story of the shot. In the clip below the camera is locked, and every bit of movement is the model and the coat.
An 8-second fashion lookbook clip. A model in a flowing camel-tan trench coat walks slowly toward a locked, static camera down a clean sunlit studio runway, then stops and makes a half-turn so the coat flares and settles around her. The camera does not move at all; every bit of motion is the model's walk, the turn, and the drift of the fabric. Bright even daylight, seamless warm-grey backdrop, editorial fashion color grade. Audio: the soft click of her steps, the light rustle of the fabric, quiet studio ambience, no music.
Describe the camera's move in one clause and the subject's action in another. They are two independent axes, and separating them stops the model from guessing which to prioritize and flattening both. When the subject runs through a sequence, name the beats in order: here it is walk, stop, turn. Seedance paces its runtime to fit the beats it is given, and dropping one lets the model choose what to compress. Keep to one dominant action arc per clip. Two independent arcs competing for the same runtime lose fidelity on both.
Second-level control
Seedance reads per-second timing. Tag a clause with a time range and the model paces the runtime to land it. The night scene below is written as three timed beats, and the payoff, a car's headlights swinging across the frame, lands exactly in its window.
A 9-second cinematic night scene on a rain-slicked city street, moody and atmospheric. A man in a dark overcoat stands at an empty crossing under a flickering streetlight, wet asphalt reflecting the light, fine rain falling through the beam. [0-3s]: he stands still at the curb looking down the empty street, his breath faint in the cold air, the camera slowly pushing in. [3-6s]: he turns up his collar and steps off the curb, walking slowly toward the camera. [6-9s]: the bright headlights of a car swing across him from the left as it rounds the corner behind him, throwing his long shadow forward across the wet street. Cinematic teal-and-amber night grade, deep shadows, shallow depth of field, anamorphic film look. Audio: steady rain on the pavement, distant city traffic, the low approaching hum of the car engine, no music.
Write time ranges at roughly one-second granularity and keep them continuous, with no gaps between windows. Put too little in a window and the model improvises to fill it. Pack too much in and it either cuts hard or drops a beat. The tags also take single time points ("at the 5-second mark, cut left") and relative timing ("three seconds after she sits, the lights dim"). What they are not for is high-frequency micro-control: asking for "shake three times a second" fights the model rather than directing it.
Native audio and negative controls
Audio is generated in the same pass, on by default, and it is a real part of the prompt. Name the mix in an Audio: clause ("the shaker rattle, faint distant murmur, no music") and Seedance builds a track that matches the scene. Every clip in this guide carries one: turn the sound on for the hero above to hear the track it generated from its Audio: clause. Set settings.audio to false when the clip lands on top of a separate audio bed.
Seedance also takes negative directives for the parts you want gone. No subtitles keeps burned-in text off the frame, which matters because the model will otherwise sometimes caption dialogue on its own. On the audio side, No BGM, only ambient and action sounds shapes the mix, and No sound is the blunt mute. These read most reliably at the end of the prompt.
Duration matching to content
Pick duration by counting the beats the shot has to fit, not by feel. Seedance runs 4 to 30 seconds:
- 4 to 5 seconds for one clean beat, like a product turn or a held hero moment. This is the fastest tier and the one to iterate on.
- 8 seconds for a small micro-narrative that develops start to finish, like the fitness and fashion clips above.
- 15 seconds for a fuller scene with a couple of connected beats, the length of a short social cut.
- 30 seconds is the flagship ceiling, a full spot or a multi-beat story. It has its own pacing conventions, covered in the long-form and extension guide.
Under about five seconds the model compresses hard, so reach for it when the shot doesn't need to develop, not for a scene with several beats. Past thirty the request is rejected.
Tips
-
Name the camera move first. Leading with "slow dolly-in" or "static locked-off" gives you a directed shot instead of a generic drift. Seedance reads shot language as a directive.
-
Separate subject motion from camera motion. Describe the camera in one clause and the subject in another. They are independent axes, and merging them makes the model flatten both.
-
Time the beats with second-level tags. Writing
[0-3s]windows at one-second granularity paces the runtime for you. Keep the windows continuous and don't use them for high-frequency micro-control. -
Write the audio inline. Name the mix in an
Audio:clause, addNo subtitlesorNo BGMwhen you need them, and setsettings.audiotofalsefor a silent clip. -
Match duration to beat count. 4 to 5 seconds is one clean beat and the fastest iteration cycle, 8 fits a micro-narrative, and 30 is the flagship ceiling with its own long-form guide.
-
Match the aspect to the right size field.
resolutionrenders 16:9 at 480p or 720p. For anything other than 16:9, pass an explicitwidthandheightpair. 720p is the ceiling either way. -
Anchor identity with references when the subject has to be a specific one. For an approved product or a returning character, pass the asset through
inputs.referenceImages, and the multimodal reference guide has the full pattern. -
Iterate at 480p, deliver at 720p. 480p renders fastest and gives enough signal to lock the prompt. Re-render at 720p once the direction lands.