The economics of clip length
A generation is billed for what you asked for, not for what came back. When a clip returns with a warped hand or a face that changed halfway through, you pay for it and then pay again for the retry. So the length you request is a bet on how much you are willing to lose, and that is the reason to settle clip length before writing a single prompt.
The smallest unit that still makes sense
Most hosted video models bill per second of output, so a 20 second clip costs 4 times a 5 second one. Failure rates work the same direction: a longer clip gives a subject more time to drift, a hand more time to deform and a style more time to wander. Length raises the price and the odds of paying it twice at once.
So the useful question is not how long a scene should be. It is what the smallest unit is that still makes sense. A unit that makes sense holds one complete thing: one spoken line, one finished gesture, one camera move. Below that there is nothing in the clip to judge. Above it, two things compete for the same 5 seconds and the model tends to morph between them.
Answering it that way changes what a failure costs rather than what the finished piece costs. Four clips of 5 seconds and one clip of 20 seconds both produce 20 seconds of runtime. The difference is that the 4 clip version fails one clip at a time and the 3 that worked stay.
Chunking is not free, and the cost is easy to forget. Every boundary between separately generated clips is a place where the style, the cast or the light can fail to match, and nothing carries across a boundary except the lines you repeat in both prompts. That is the whole case for generating a piece in one pass when nothing forces a cut, which is covered further down.
What a failure costs at each length
Ratios rather than money. Per second prices change between model versions and vary by resolution, so the money is the part that goes stale. The arithmetic does not.
| plan | clips | billed seconds if every clip passes | seconds lost to 1 failure | seconds to regenerate | total billed after 1 failure | multiple of the clean cost | what survives the failure |
|---|---|---|---|---|---|---|---|
| 1 clip of 20 seconds | 1 | 20 | 20 | 20 | 40 | 2x | Nothing. The scene is regenerated whole. |
| 2 clips of 10 seconds | 2 | 20 | 10 | 10 | 30 | 1.5x | Half the scene. |
| 4 clips of 5 seconds | 4 | 20 | 5 | 5 | 25 | 1.25x | 15 of the 20 seconds. |
- The finished runtime is 20 seconds in all 3 rows and the clean cost is identical. Only the exposure changes. One failure costs 20 extra seconds in the first row and 5 in the last, so the 4 clip plan absorbs a bad generation at a quarter of the price.
- Put the other way: every one of the 4 chunks would have to fail once before the chunked plan reaches what the single 20 second clip costs after a single failure. That is the margin you are buying.
- Chunking does not lower the price of success. It lowers the price of being wrong, which is the cost you cannot predict.
Working out how long a scene needs
Length is arithmetic, not judgment. Dialogue is the only part of it with a reliable basis, so start there and treat everything else as an estimate that names its method. An estimate with no method attached is a guess wearing a number.
Formula. clip seconds = (words divided by words per second) + 0.5 at the head + 0.5 at the tail, rounded up to the next half second
Consequence. A 5 second clip therefore holds about 4 seconds of speech, which is about 9 words. That one number decides most splits.
What forces a cut
The test is frame accuracy. Ask whether anything in the beat has to happen at a specific frame. Any one of these and the piece is chunked.
- {'trigger': 'Spoken dialogue', 'why': 'Lip sync has to match a specific waveform, so the line and the mouth have to be resolved inside one generation. This is what forces most splits.'}
- {'trigger': 'On screen text appearing or changing at a set point', 'why': 'The frame it appears on is the whole point of it, and a generator will not place it on request across a long clip.'}
- {'trigger': 'Music sync', 'why': 'A cut or a movement that lands on a beat needs the beat and the movement in the same frame. Nothing about a long generation is frame accurate.'}
- {'trigger': 'A plot beat that has to be readable', 'why': 'An object changing hands, a door opening as someone arrives. If a viewer has to see it happen, it needs a clip whose job is to show it.'}
- {'trigger': 'A change of location or of cast', 'why': 'It is a new setting to describe, and describing 2 settings in one prompt invites the model to blend them.'}
- {'trigger': "The model's published maximum duration", 'why': 'A hard limit rather than a judgment. Check it before planning, not after.'}
- {'trigger': 'Photoreal human faces held in close up', 'why': 'Drift is most visible on a face, so the length that would be fine on a landscape is not fine here.'}
- {'trigger': 'A budget that cannot absorb a failed long render', 'why': 'A legitimate reason on its own. Chunk, and say that is why, so nobody later mistakes it for a creative decision.'}
What does not force a cut
This is the part most guides miss, and it is where the money goes. Splitting for one of these buys a join to match and gets nothing in return.
- {'trigger': 'Non verbal sound', 'why': 'A sigh, a gasp, a laugh, humming, an animal noise. None of it needs frame accurate lip sync, because there is no waveform for it to be out of sync with. Describe the sound and roughly where it falls, and let it land where it lands.'}
- {'trigger': 'Several beats of action', 'why': 'Fine in one generation as long as no single beat has to land on a specific frame. State the beats inside the prompt and change the camera at each one.'}
- {'trigger': 'Camera changes', 'why': 'Cheap to describe inside a single prompt, and the most common reason people split when they do not need to. A shot size change is a clause, not a clip.'}
- {'trigger': 'Ambience, weather and a mood that shifts', 'why': 'All describable inside one prompt, and all better for being described once than 6 times in 6 prompts.'}
- {'trigger': 'A style or a cast you need to hold', 'why': 'This argues the other way. Repeating a style line in 6 prompts is a weaker guarantee than stating it once in 1 generation, because each repeat is a fresh chance for the model to reinterpret it.'}
TheDistinction. Speech forces a cut and a sigh does not, and the reason is the same in both cases: one has to match a waveform frame by frame and the other has nothing to match. Sound in a scene is not one category. Sort it by whether it needs frame accuracy before deciding how many clips the scene is.
One generation or several
The 5 second default assumes the usual case: dialogue, or an action that has to land at a particular moment. Some work has neither, and for that work the arithmetic reverses.
The reason to chunk is that a failure is cheap and a long clip drifts. The reason not to is that every boundary between separately generated clips is a place where the style, the cast or the light can fail to match, and nothing carries across a boundary except the lines you repeat in both prompts. A piece with no dialogue and a forgiving style is exactly the case where one generation removes that entire class of problem at a stroke.
So ask what actually forces a cut. If nothing does, the pile of chunk files is not the safer option, it is 6 chances for a character to change clothes.
ClearestCase. A children's cartoon of animals playing, with no dialogue, is the clearest case for one generation. One setting, a forgiving style, nothing that has to land on a frame, and the thing that would otherwise be hardest, keeping the animals looking like themselves, becomes free because there are no separate clips to match.
Music. One generation is the only way a score truly plays throughout. Identical prompt lines produce different takes, so a chunked set restarts the music at every join. That is why the default for a chunked set is no music in the prompt and a track laid over afterwards, and it is a real argument for one pass whenever the piece is short enough and has a score.
TheBill. Ask what a failed long render costs before committing to one. Under per second billing a 60 second attempt that fails costs what 12 clips of 5 seconds would have cost in total, and the answer may still be that the join free version is worth it. Decide it as a bet, not as a default.
What one generation can be, per model
The published maximum for a single generation, per model. These are ceilings, not recommendations. A model that offers 120 seconds still fails a 120 second clip more often than a 5 second one, and bills you for the attempt.
Check this before planning anything. A plan built on 5 second chunks is wrong for a model that only offers 6 and 10, and a scene timed at 5.5 seconds has nowhere to go on a model whose next unit up is 15.
| Model | Vendor | Longest single generation | Notes |
|---|---|---|---|
| Adobe Firefly Video Model | adobe | 5 seconds | Adobe's own API reference describes the model as generating a 5 second video. |
| HunyuanVideo 1.5 | tencent-hunyuan | 5 seconds | About 5 seconds native, from 121 frames at 24 fps, with longer output only via progressive generation. |
| Vidu Q1 | shengshu-vidu | 5 seconds | 5 seconds, priced per clip rather than per second. |
| Wan 2.1 T2V (1.3B and 14B) | alibaba-tongyi-wan | 5 seconds | |
| Wan 2.1 VACE (1.3B and 14B) | alibaba-tongyi-wan | 5 seconds | |
| Wan 2.2 TI2V-5B | alibaba-tongyi-wan | 5 seconds | About 5 seconds, and the variant most people run locally, so the practical unit on consumer hardware is the short one. |
| Allegro | rhymes-ai | 6 seconds | About 6 seconds, from 88 frames at 15 fps. |
| Veo 3.1 | 8 seconds | 8 seconds is the unit, so a spoken line has to be written to fit 8 rather than 10. About 17 words at a conversational pace. | |
| Veo 3.1 Fast | 8 seconds | As Veo 3.1. The cheaper rate makes it the sensible place to test a shot before paying the standard rate. | |
| Veo 3.1 Lite | 8 seconds | As Veo 3.1. | |
| CogVideoX1.5-5B (and 5B / 2B / I2V variants) | zhipu-thudm | 10 seconds | About 10 seconds, set by a frame count of up to 161 frames at 16 fps rather than by a duration field. |
| Kling 2.5 Turbo | kuaishou-kling | 10 seconds | |
| Kling 2.6 | kuaishou-kling | 10 seconds | |
| Kling O1 | kuaishou-kling | 10 seconds | |
| Luma Ray3.14 | luma-ai | 10 seconds | |
| Luma Ray3.2 | luma-ai | 10 seconds | 10 seconds, priced per generation, and the 10 second price is 3 times the 5 second price. |
| MiniMax Hailuo 02 | minimax | 10 seconds | Offered at 6 and 10 seconds, priced per finished video rather than per second. |
| MiniMax Hailuo 2.3 (and 2.3-Fast) | minimax | 10 seconds | Offered at 6 and 10 seconds, priced per finished video. |
| Pyramid Flow (miniFLUX / SD3) | pyramid-flow | 10 seconds | 10 seconds at 768p, 5 seconds on the 384p checkpoint. |
| Runway Gen-4 Turbo | runway | 10 seconds | |
| Runway Gen-4.5 | runway | 10 seconds | |
| Vidu Q2 | shengshu-vidu | 10 seconds | |
| Seedance 1.0 Pro (closed weights) | bytedance-seed | 12 seconds | Documented from 2 to 12 seconds. |
| Kling 3.0 | kuaishou-kling | 15 seconds | Documented from 3 to 15 seconds, with multi shot sequences supported inside one generation. |
| Kling 3.0 Omni | kuaishou-kling | 15 seconds | As Kling 3.0. 15 seconds is enough for 2 or 3 beats, so it wants the beat structure written into the prompt. |
| Kling 3.0 Turbo | kuaishou-kling | 15 seconds | |
| MiniMax H3 | minimax | 15 seconds | Documented from 4 to 15 seconds. The floor matters: a 2 second reaction still bills as 4. |
| PixVerse C1 | pixverse | 15 seconds | PixVerse states up to 15 seconds with native audio and automatic scene segmentation from the prompt. |
| Vidu Q3-mix | shengshu-vidu | 16 seconds | |
| Vidu Q3-pro | shengshu-vidu | 16 seconds | Documented from 1 to 16 seconds, so short units are available as well as long ones. |
| Vidu Q3-turbo | shengshu-vidu | 16 seconds | |
| Luma Modify Video (Ray3.2) | luma-ai | 18 seconds | Video editing, so the limit applies to the footage you send in rather than to an invented shot. |
| Runway Act-Two | runway | 30 seconds | Performance transfer rather than generation from a prompt. The 30 seconds applies to the driving performance. |
| Runway Aleph 2.0 | runway | 30 seconds | Video to video. Billing has a 56 credit floor per generation, so a clip under 2 seconds is billed as 2. |
| FramePack | lllyasviel | 60 seconds | The exception to the length argument. Its context is compressed to a constant size, so compute does not grow with duration, and it is self hosted, so a failure costs time rather than money. |
| Amazon Nova Reel 1.1 | amazon-aws | 120 seconds | 120 seconds is a total, not a continuous take: AWS documents output in 6 second increments up to 2 minutes, and anything past 6 seconds needs the v1:1 model id. |
| Sora 2 | openai | 20 seconds | 16 or 20 seconds in a single generation. A clip can then be extended up to 6 times for a total of 120 seconds, which is a different thing from one 20 second take and is billed as separate generations. |
| Sora 2 Pro | openai | 20 seconds | 16 or 20 seconds in a single generation. A clip can then be extended up to 6 times for a total of 120 seconds, which is a different thing from one 20 second take and is billed as separate generations. |
| ByteDance Seedance 2.0 | bytedance-seed | not published | No maximum published in the API schema reviewed. Not the same as no limit. |
| Google Flow | not published | ||
| Haiper 2.x (discontinued) | haiper | not published | |
| Higgsfield Cinematic Studio 3.0 / Video 3.5 | higgsfield | not published | |
| Higgsfield DoP (Lite / Standard / Turbo) | higgsfield | not published | |
| HunyuanVideo (13B) | tencent-hunyuan | not published | |
| HunyuanVideo-Avatar | tencent-hunyuan | not published | |
| HunyuanVideo-I2V | tencent-hunyuan | not published | |
| LTX-2.5 | lightricks | not published | |
| LTX-Video 13B 0.9.8 (and distilled / 2B variants) | lightricks | not published | |
| Luma Dream Machine / Ray2 | luma-ai | not published | |
| Meta Movie Gen (weights unreleased) | meta | not published | |
| Mochi 1 (preview) | genmo | not published | |
| Moonvalley Marey (Realism v1.5) | moonvalley | not published | |
| NVIDIA Cosmos 3 (Super / Nano / Edge) | nvidia | not published | |
| Open-Sora 2.0 | hpc-ai-tech | not published | |
| Pika 2.5 | pika | not published | |
| Pika 2.5 Keyframe | pika | not published | |
| Pikadditions | pika | not published | |
| Pikaffects | pika | not published | |
| Pikaswaps | pika | not published | |
| PixVerse V6 | pixverse | not published | |
| Runway Gen-4 Aleph | runway | not published | |
| SkyReels-V2 (Diffusion Forcing / T2V / I2V) | skywork-ai | not published | |
| Stable Video Diffusion (SVD-XT) | stability-ai | not published | |
| Veo 3 | not published | No maximum recorded for the earlier Veo 3 entry. Use the Veo 3.1 figure for planning and check the current documentation. | |
| Wan 2.2 I2V-A14B | alibaba-tongyi-wan | not published | |
| Wan 2.2 S2V-14B | alibaba-tongyi-wan | not published | |
| Wan 2.2 T2V-A14B | alibaba-tongyi-wan | not published | |
| Wan-Animate-2 | alibaba-tongyi-wan | not published |
Several models document a minimum as well as a maximum: Kling 3.0 from 3 seconds, MiniMax H3 from 4, Seedance 1.0 Pro from 2, Vidu Q3 from 1. A 2 second reaction on a model with a 4 second floor is billed as 4, so the floor is part of the arithmetic too.
Common questions
How long should an AI video clip be?
5 seconds unless something forces more, 10 when a spoken line will not fit, and not 20. The better question is not how long the scene should be, it is what the smallest unit is that still makes sense: one line, one finished gesture, one camera move. Check which units your model actually offers first, because a plan built on 5 second chunks is wrong for a model that only offers 6 and 10.
Why did my 20 second AI video fail?
Longer clips fail more often because there is more time for a subject to drift, a hand to deform and a style to wander, and a long prompt gives the model more to hold at once. The retry is no cheaper either: under per second billing you pay for all 20 seconds again. The same scene as 4 clips of 5 seconds fails one clip at a time, and the 3 that worked stay.
How many words fit in a 5 second clip?
About 9. Spoken English runs at roughly 2.5 words per second, and half a second at each end has to stay clear as trim handle, so a 5 second clip holds about 4 seconds of speech. A line of 10 to 12 words needs 10 seconds. Count the words rather than judging the line by feel, and if the count comes to 11, cutting 2 words is usually cheaper than paying for a 10 second clip.
How do I make a video longer than 10 seconds?
Generate it in parts and cut them together, or use a model whose published maximum is longer. If you generate in parts, repeat the style, cast, wardrobe, lighting and exclusion lines in every prompt without rewriting them, and where the model accepts an image, pass the last frame of one clip as the first frame of the next and prompt the motion only. Nothing carries across a boundary except what you repeat.
Is one long clip cheaper than several short ones?
Usually it is the same price. Most hosted video models bill per second of output, so 20 seconds costs what 4 clips of 5 seconds cost. Some price it worse than that: Luma Ray3.2 charges from $0.06 for 5 seconds and from $0.18 for 10, so doubling the length triples the price, as its pricing page read on 14 August 2026. A few charge a base fee per generation, which makes chunking slightly dearer. In every case the long clip is the worse bet on failure, because none of it is recoverable.
Does a sigh or a laugh need its own clip?
No. The test is frame accuracy. Speech has to match a waveform, so it forces a cut. A sigh, a gasp, a laugh, humming or an animal noise has nothing to be out of sync with, so describe the sound and roughly where it falls and leave the clip whole. Splitting for non verbal sound buys you another join to match and nothing else.
How many clips is a 30 second script?
Take the word count. 30 seconds of speech at 2.5 words per second is about 75 words. At about 9 words per 5 second clip that is 9 clips, which is 45 seconds of generated material, because each clip spends 1 second on handles at its ends. The handles get trimmed at the joins, so budget the generation on 45 seconds and cut the timeline to 30.
Why do my clips not match at the join?
Almost always a line that was rewritten instead of copied. Nothing carries across a boundary between separately generated clips except the text repeated in both prompts, so a paraphrased style or wardrobe line is a different instruction. A light that jumps means the lighting line was not repeated. Clothing that changes means wardrobe stayed in the scene heading. A hand that teleports means the cut landed mid gesture.
Should I ask for 20 seconds if the model offers it?
No. 20 seconds is 4 clips of 5 in a single billing event with no partial recovery, and the drift that the extra time allows is why most long clips come back unusable. The exception is a piece with no dialogue, one location and nothing that has to land on a specific frame, where one generation removes every join instead of adding 3.
What is the longest single AI video generation available?
Among the video models listed here, the longest published maximum for one generation is 120 seconds, on Sora 2, Sora 2 Pro and Amazon Nova Reel 1.1, with FramePack at 60 seconds. Read the small print before planning to it: Nova Reel's 2 minutes is documented as 6 second increments up to that total rather than one continuous take. These are vendor figures for what the model will accept, not advice, and a failed 120 second clip wastes what 24 failed 5 second clips would have wasted.