We Made a 30-Second Micro Drama in One Seedance 2.5 Generation: Full Test & Output
We generated a 30-second vertical microdrama in one Seedance 2.5 call. The exact prompt, the raw output, and the exact $7.118433 bill.
Deloitte expects in-app micro-series revenue to hit $7.8 billion in 2026, up from $3.8 billion in 2025. That is a format doubling in a year, and it runs on a very specific unit of content: a vertical episode of roughly 60 to 90 seconds, built around a hook in the first two seconds, one turn, and a cliffhanger that forces the next tap.
Seedance 2.5 generates up to 30 seconds of video with native audio in a single call. That number is interesting because it is not a clip length, it is close to a beat length. A third of an episode, or a complete cold open, out of one API request with dialogue already attached.
So I ran the obvious test. One prompt, one call, 30 seconds, 9:16, audio on, and a single reference image holding two faces, because a two-hander is the harder version of this problem: the model has to keep both leads consistent and put the right line in the right mouth. Below is the raw output, the exact prompt with nothing removed, the verified technical facts, and the exact bill down to the sixth decimal place.
The output
This is the file the API returned. No editing, no cuts, no post, no external audio. One request.
And here is what came back in the container, read straight out of the MP4 atoms rather than taken on trust from the docs:
| Property | Value |
|---|---|
| Duration | 30.042 s |
| Frame size | 720 x 1280 (9:16 vertical) |
| Video codec | H.264 (avc1) |
| Audio codec | AAC (mp4a), present as a real second track |
| File size | 7,289,136 bytes (6.95 MiB) |
| Generation wall clock | 135 seconds |
| Billed | $7.118433 |
Now this certainly isn't going to win any awards but the quality is impressive for a trial run. This is just a trial run and we will be having more info of Microdrama generation using Seedance 2.5 on Segmind soon. Let us know if you want a dedicated guide on it.
The exact prompt
This is the most useful thing in this post, so I am publishing it in full rather than describing it. Copy it, change the character and the beats, keep the shape.
Vertical 9:16 micro-drama, one continuous episode, photorealistic, cinematic night
grade, handheld-steady framing. Two characters, both from the reference image.
Character A: MAYA, the woman in the reference image. Same face, same straight dark
shoulder-length hair, same rust-orange knit sweater over a white collared shirt, same
thin silver necklace in every stage.
Character B: DANIEL, the man in the reference image. Same face, same short greying
hair, same close-trimmed grey beard, same rimless glasses, same navy quarter-zip
pullover in every stage.
Setting: a glass-walled meeting room inside an empty open-plan office at night, city
lights behind the glass, cold overhead strip lighting, a plain unbranded silver laptop
on the table. No visible brand logos anywhere.
Stage 1: Initial state: DANIEL sits alone at the meeting room table, hands folded,
looking at the dark window. Primary event: MAYA pushes the glass door open and crosses
to the table, setting the laptop down hard in front of him. End state: MAYA stands over
the table with both palms flat on it, looking down at DANIEL, who has not moved. MAYA
says, tight and controlled: "The numbers do not reconcile. Someone moved them."
Stage 2: Initial state: MAYA turns the laptop screen toward DANIEL. Primary event:
DANIEL does not look at the screen, he keeps his eyes on MAYA, and the camera pushes in
slowly on her face as she registers that he is not surprised. End state: MAYA
straightens up slowly, her hands leaving the table, her expression falling from anger
into disbelief. DANIEL says, calm and quiet: "I know. I approved it."
Stage 3: Initial state: MAYA stands very still on the far side of the table. Primary
event: she closes the laptop and picks it up, holding it against her chest, and DANIEL
rises from his chair and steps between her and the glass door. End state: the two of
them stand facing each other in the narrow gap by the door, neither moving. MAYA says,
steady and low: "Then you already know what I have to do."
Audio: spoken English dialogue, two distinct voices, quiet office room tone with a
faint air-conditioning hum, a low sustained tension drone underneath.Three things in that prompt are doing the real work.
The staged structure. Each stage is written as initial state, then one primary event, then end state. Not "she puts the laptop down and he admits it and then she tries to leave", which gives the model three actions to interleave across ten seconds and no instruction about where to land. One event per stage, with the frame you want at the start and the frame you want at the end, is the structure Seedance responds to. Three stages across 30 seconds gives each beat ten seconds to breathe, which matters: in earlier runs on this account, multi-shot prompts crammed into six seconds failed outright, while the same structure at 12 to 15 seconds passed cleanly.
The names, repeated, and the dialogue attributed. MAYA and DANIEL appear in capitals in every stage, always as the subject of the sentence, and every line of dialogue is tagged with the speaker's name rather than left to context. Pronouns across a stage boundary are where character identity drifts, because the model has to resolve "she" against everything else in the scene. With two people in frame that gets worse, and an untagged line is a coin flip over who says it.
The reference image. The lead is bound with reference_images, not first_frame_url. That distinction matters. A first frame pins the exact opening picture and constrains the camera from frame one. A reference image passes identity without dictating composition, which is what you want when the character has to survive three different shots. I generated one reference with Nano Banana 2 at 9:16 for $0.08, holding both characters in a single frame, then described each of them again in words. Belt and braces: the image carries the likenesses, the text carries the wardrobe and the distinguishing features so the model has a written anchor when the faces move. One frame with both leads in it also gives the model their relative scale and colouring side by side, which a pair of separate portraits does not.
What it cost, exactly
This generation billed $7.118433. Not approximately. That figure is worth unpacking, because Seedance 2.5 turns out to be one of the few video models you can quote to the cent before you fire it.
The published rate is $10.97 per million output tokens for text or image input. Across every 720p generation billed on this account, the token count resolves to a single formula:
tokens = 21,600 x seconds + 900
cost = tokens x $10.97 / 1,000,000Six different durations, all billed, all predicted exactly:
| Duration (720p) | Tokens | Predicted | Actually billed |
|---|---|---|---|
| 5 s | 108,900 | $1.194633 | $1.194633 |
| 6 s | 130,500 | $1.431585 | $1.431585 |
| 10 s | 216,900 | $2.379393 | $2.379393 |
| 15 s | 324,900 | $3.564153 | $3.564153 |
| 20 s | 432,900 | $4.748913 | $4.748913 |
| 30 s | 648,900 | $7.118433 | $7.118433 |
That 900 token constant is the whole explanation for something people notice and shrug at: the per-second cost falls slightly as clips get longer. It is not a volume discount, it is a fixed overhead being spread thinner. At 5 seconds you pay $0.2389 per second of output. At 30 seconds you pay $0.2373. The gap is the 900 tokens, and nothing else.
Dropping to 480p is the real lever. A 5 second 480p generation billed $0.531354 against $1.194633 for the same clip at 720p, roughly 2.25 times cheaper. For blocking out a script before you commit to the good render, that is the setting to use.
What an episode actually costs
Micro-drama episodes run 60 to 90 seconds, so one episode is two or three of these generations:
- 60 second episode, two 30s generations: $14.24
- 90 second episode, three 30s generations: $21.36
- Ten episode season at 90 seconds each: $213.55
Read that against what the format is worth and it reframes the economics. A 10 episode AI season for the price of a decent lunch order is not a rounding error against $7.8 billion of in-app revenue, it is a different production model. The caveat is that these numbers assume every generation is a keeper, and they will not be. Budget for two or three attempts per beat and the honest figure for a 90 second episode lands nearer $45 to $65.
How long it took
135 seconds. Just over two minutes for 30 seconds of finished video with audio.
Do not build a schedule on that number. An earlier 30 second generation on this account, same resolution and same aspect ratio, took 458 seconds: 3.4 times longer for the same amount of finished video. Across earlier runs, five byte-identical 10 second requests came back anywhere between 77 and 224 seconds, a 2.9x spread on the same input, and one 30 second clip returned faster than four of those 10 second ones. Duration barely moves the median. Queue depth does. Any sentence of the form "a 15 second clip takes N seconds on Seedance" is wrong, including one I could have written from this run alone.
The practical version: set your client timeout to at least 600 seconds for anything past 10 seconds, fire generations sequentially rather than in parallel from a single process, and treat the wait as variable. Parallel fires from one process have silently dropped on this account before.
Calling it from code
The endpoint is synchronous. You post, you wait, you get the MP4 back in the response body. No polling, no job IDs.
import requests
resp = requests.post(
"https://api.segmind.com/v1/seedance-2.5",
headers={"x-api-key": YOUR_KEY},
json={
"prompt": open("episode_01.txt").read(),
"reference_images": ["https://your-cdn.example.com/nora-ref.jpg"],
"duration": 30,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": True,
"seed": 730114,
"bitrate_mode": "standard",
},
timeout=600,
)
resp.raise_for_status()
open("episode_01.mp4", "wb").write(resp.content)Two parameters deserve more attention than they usually get. seed is fixed at 730114 here so the run is reproducible: change the prompt with the seed held constant and you are testing the prompt, not the dice. And generate_audio defaults to false, which is the single most common way people conclude the model does not do sound. It does, you have to ask.
Check the model page before you hardcode anything else. The duration range is 4 to 30, resolution is 480p or 720p, and aspect ratio covers 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 and adaptive. Guessing an enum value that is not on that list is the fastest way to burn an afternoon on 400s.
Honest assessment
What clearly works: 30 seconds in one pass with synchronised native audio is a genuine capability, not a demo trick, and it maps cleanly onto how micro-drama is actually structured. The staged prompt format gives you real directorial control over pacing. The pricing is exactly predictable, which is rarer than it should be and makes budgeting a spreadsheet exercise rather than a guess.
What does not: latency is unpredictable enough that you cannot promise a turnaround to a client on a single generation. 720p is the ceiling, so this is a phone-first format and not a broadcast one. There is no way to iterate on part of a clip, so one bad beat at second 22 means regenerating all 30 seconds and paying the full $7.12 again. And a 30 second maximum still means a 90 second episode needs three generations stitched together, where continuity across the seams is your problem, not the model's.
The thing I would want next is a cheap way to preview a beat before committing to the full render. Right now 480p is that lever, and it is a good one.
FAQ
Can Seedance 2.5 really make a microdrama in one generation?
It generates up to 30 seconds with native audio in a single call, which covers a full beat or a cold open. A complete 60 to 90 second episode still needs two or three generations joined together.
How much does a 30 second Seedance 2.5 video cost?
$7.118433 at 720p, billed exactly. The formula is 21,600 tokens per second plus a flat 900, charged at $10.97 per million tokens, and it predicts every duration to the cent.
Does Seedance 2.5 generate dialogue audio?
Yes, in the same pass as the video, as a real AAC track in the returned MP4. You must set generate_audio to true, because it defaults to false.
How do I keep the same character across a Seedance 2.5 microdrama?
Pass a portrait through reference_images, name the character in capitals in every stage of the prompt, and repeat the wardrobe and distinguishing features in text. Avoid pronouns across stage boundaries. For a two-hander, put both leads in a single reference frame and tag every line of dialogue with the speaker's name.
What aspect ratio should I use for vertical micro-drama?
9:16 at 720p, which returns a 720 x 1280 file. That is the native shape for the phone-first platforms where the format lives.
How long does a 30 second generation take?
This one took 135 seconds. Treat that as one sample and not a promise: an earlier 30 second request on this account took 458 seconds, and identical 10 second requests have varied by nearly 3x. Set your timeout to 600 seconds or more.
Conclusion
One prompt, one API call, 30 seconds of vertical video with dialogue already synced, for $7.12 and about eight minutes of waiting. The prompt above is the reusable part, so take it, swap Maya and Daniel for your own leads, and keep the staged initial state, primary event, end state shape, because that is what buys you control over the beats.
Then watch it back and answer the three questions yourself. The format is worth $7.8 billion this year and the tooling to make it now costs less than lunch. What it still takes is someone who can write a turn that lands in ten seconds.
Fire your first one at segmind.com/models/seedance-2.5.