Guide
Seedance 2.0 Prompts: Copy-Paste Recipes With Real Video Outputs
- 720p price
- $0.134/s
- duration range
- 4-15s
- aspect ratios supported
- 6
Most "Seedance prompt" posts show a single line like "a cat on a skateboard, cinematic" and a thumbnail. That's not a prompt you can actually reuse — you have no idea what made the shot work. Below are three complete, copy-pasteable prompts for seedance-2.0@ext, each run through hiapi's /v1/tasks API and shown next to the real 6-second clip it produced. Every prompt is written second-by-second so the model gets explicit camera and action beats instead of a vague mood word.
Why second-by-second beats a mood-word prompt
seedance-2.0@ext (the "ext" route of Seedance 2.0) takes a duration field between 4 and 15 seconds, but it doesn't automatically invent a story arc for you — it fills the time with whatever your prompt implies. A prompt that only says "a skateboarder at sunset, cinematic, 4k" leaves the model to guess when anything happens. Splitting the duration into explicit second ranges ("During seconds 0 to 2... During seconds 2 to 4...") gives the model a beginning, a turn, and an ending beat — which is what actually produces a shot with pacing instead of one continuous blur.
The three recipes below follow the same pattern: subject + setting → beat 1 (0-2s) → beat 2 (2-4s) → beat 3 (4-6s) → lighting/physics constraints → native audio cue. All three ran at "aspect_ratio": "16:9", "resolution": "720p", "duration": 6, "generate_audio": true.
Recipe 1: Product macro reveal
{
"model": "seedance-2.0@ext",
"input": {
"prompt": "One continuous six-second cinematic product commercial shot, no cuts. A matte black wireless earbud case sits centered on a wet obsidian stone slab under a single overhead softbox light. During seconds 0 to 2, the camera holds a slow, stabilized push-in as a thin mist drifts across the frame and a faint blue rim light traces the case's edges. During seconds 2 to 4, the lid lifts open on its hinge in one smooth mechanical motion, releasing a soft warm glow from inside and revealing the two earbuds nested in their charging slots. During seconds 4 to 6, the camera arcs slightly right and tilts down to a low three-quarter angle as a shallow depth-of-field pulls focus from the case to the brand logo etched on the lid, ending on a still frame. Photoreal studio lighting, high-contrast reflections on the wet stone, subtle lens flare from the rim light, no text overlays, no human hands in frame. Native audio: a soft mechanical click when the lid opens, a low ambient studio hum underneath, silence otherwise.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6,
"generate_audio": true
}
}
Why it works: the beat structure maps directly to a three-act product ad — establish (push-in), reveal (lid opens), sell (focus pull to logo) — so the model has a concrete mechanical action (hinge opening) to animate instead of an abstract "reveal the product" instruction. Naming the exact light source (single overhead softbox) and surface (wet obsidian stone) also keeps the reflections and rim light consistent instead of drifting.
Recipe 2: Action tracking shot
{
"model": "seedance-2.0@ext",
"input": {
"prompt": "One continuous six-second tracking shot, no cuts. A skateboarder in a gray hoodie rides down a sunlit concrete embankment in an empty skatepark at golden hour. During seconds 0 to 2, the camera tracks alongside at hip height, matching the skater's speed as they carve toward a raised ledge, long shadows stretching across the concrete. During seconds 2 to 4, the skater ollies onto the ledge and grinds along its edge; the camera pans slightly to keep the board's trucks in frame as motion blur builds on the wheels. During seconds 4 to 6, the skater pops off the end of the ledge and lands rolling away from camera as the shot holds and lets them ride out of frame toward the horizon. Natural sunlight, dust particles catching backlight, realistic skin and fabric physics, no slow motion. Native audio: wheels rolling on concrete, the metallic scrape of the grind, a light gust of wind.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6,
"generate_audio": true
}
}
Why it works: "tracking shot" plus an explicit camera height ("hip height") locks the camera to a physically plausible rig move instead of letting it float. Calling out the exact trick (ollie onto the ledge, grind, pop off) rather than "does a trick" avoids the model defaulting to a generic skid, and specifying "no slow motion" stops it from padding the 6 seconds with an unwanted speed ramp.
Recipe 3: Atmospheric establishing shot
{
"model": "seedance-2.0@ext",
"input": {
"prompt": "One continuous six-second aerial establishing shot, no cuts. A drone glides low over a dense pine forest blanketed in ground fog just after sunrise, distant granite peaks catching the first orange light. During seconds 0 to 2, the camera moves forward at a steady low altitude, skimming just above the fog layer as treetops pass beneath. During seconds 2 to 4, the drone gradually climbs and tilts up, revealing the full mountain range silhouetted against a pale gradient sky. During seconds 4 to 6, the camera slows to a near-static hover as sunlight breaks through a gap in the clouds, casting a single visible sun-ray shaft across the valley. Cinematic color grade, cool shadows and warm highlights, light atmospheric haze, no camera shake. Native audio: soft wind at altitude, distant birdsong fading in near the end.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6,
"generate_audio": true
}
}
Why it works: the climb-and-tilt in the middle beat converts a flat flyover into a reveal (fog layer → full mountain range), which is the difference between "drone footage" and an establishing shot with a payoff. Naming the light event ("sunlight breaks through a gap in the clouds") gives the model a specific moment to land the final beat on instead of ending arbitrarily mid-motion.
Reproducing these with your own subject
Swap the subject, setting, and beats — keep the second-by-second structure and the trailing native-audio line, since that's what gives the model both pacing and consistent sound design instead of silence or random foley. Submit and poll like this:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0@ext",
"input": {
"prompt": "<your second-by-second prompt>",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6,
"generate_audio": true
}
}'
curl -s https://api.hiapi.ai/v1/tasks/$TASK_ID -H "Authorization: Bearer $HIAPI_KEY"
# poll until "status":"success", then download output[0].url before its expireAt
Full parameter reference: Create Task. Model details and the full resolution/duration schema: seedance-2.0-ext on hiapi.
Pricing at these settings
Per the live pricing page, seedance-2.0@ext bills per output second: $0.134/s at 720p, $0.342/s at 1080p, $0.694/s at 4k. At current rates, each 6-second 720p clip above is estimated at $0.804; the three clips together at $2.412. Going to 1080p roughly 2.6x's the per-second rate, so it's worth prototyping beats at 720p before committing a longer render to a higher resolution.
Note that seedance-2.0@ext is text-to-video only on both its routes — despite pricing pages sometimes listing image-to-video-style tiers, fields like image_urls or first_frame_image are rejected by the schema. Everything above works from text prompts alone.
FAQ
Does seedance-2.0@ext support image-to-video?
No. Both the default and @ext routes of Seedance 2.0 are text-to-video only — image/reference-frame fields are rejected by the input schema as of this writing.
What's the difference between seedance-2.0 and seedance-2.0@ext?
@ext is a separate route on the same model with its own resolution tiers (720p/1080p/2k/4k) and duration range (4-15s), priced per-second rather than flat per-clip. See the seedance-2.0-ext model page for the full schema.
Can I get longer than 6 seconds?
Yes, duration accepts any integer from 4 to 15. Longer durations need more explicit beats in the prompt — a 12-second clip with only two beats tends to let the model pad the extra seconds with drift rather than new action.
Why did my aspect_ratio request get rejected?
aspect_ratio is a required field on seedance-2.0@ext with no default — omitting it returns a 400. Valid values are 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, and adaptive.
Does generate_audio: true add real synced sound, or generic background music?
It generates native ambient audio tied to the actions in the prompt (mechanical clicks, wheels on concrete, wind) rather than a music track — which is why describing the expected sound explicitly in the prompt, as the three recipes above do, produces more relevant audio than leaving it to guess.
Ready to try your own recipe? Submit a prompt against seedance-2.0@ext via Create Task and iterate on the second-by-second beats until the pacing matches what you're picturing.
Related articles
View all articles →-
Guide
Getting Started with seedream-5.0-pro/image-to-image: Capabilities, Pricing, and Integration Essentials
Capability boundaries, billing model, and engineering integration practices for ByteDance's image editing model
-
Guide
seedream-5.0-pro Text-to-Image Getting Started Guide: Capability Boundaries, API Integration, and Cost Control
A hands-on developer perspective: from key parameters to a cost estimate of $0.05 per image
-
Guide
Hailuo 2.3 Fast Image-to-Video Getting Started Guide: Capability Boundaries, Pricing, and Integration Practices
MiniMax image-to-video model selection and integration key points for developers