Avatar Video Scene Durations: Fields Must Agree and the 2.8 Rule
How Sume sets a text scene's length: ceil(words / 2.8), the 0.001-second agreement rule across duration fields, and worked examples of 14 and 15 words.
In a Sume Avatar 1.0 multi-scene request, a text scene without an explicit duration is estimated at ceil(words / 2.8) seconds, with a minimum of 1 second. If you do set a duration in more than one field, they must agree within 0.001 seconds or the request is refused. The total must still land at 4 to 60 seconds.
This is from Sume's Generate avatar video docs and the implementation, read on 2026-10-05.
How is the length of a scene worked out?
Words are split on whitespace, divided by 2.8 (the words-per-second constant), and rounded up. That means a short line costs a full second: the estimate is a planning number, not a measure of how long speech takes to say.
Billing for Avatar Video is per second of the video at the quality tier's rate, so a longer estimate costs more. At the standard rate of $0.184 per second, a 5-second scene is $0.92 and a 6-second scene is $1.10.
| Words | Words / 2.8 | Seconds (rounded up) | Standard cost |
|---|---|---|---|
| 3 | 1.07 | 2 | $0.37 |
| 14 | 5.00 | 5 | $0.92 |
| 15 | 5.36 | 6 | $1.10 |
| 28 | 10.00 | 10 | $1.84 |
Which duration fields must agree?
A scene can carry its length in several places: voice.duration, duration_seconds, duration, or a timing pair of start_seconds and end_seconds. If you provide more than one, the values must match within 0.001. A timing pair needs both ends, and end_seconds must be greater than start_seconds. No scene may exceed 60 seconds.
Silence scenes are different: voice.type: "silence" requires a duration and permits no script.
{
"id": "beat",
"voice": { "type": "silence", "duration": 2 }
}What should you do?
Set one duration field per scene and leave the rest off. For spoken scenes, let the 2.8 rule decide unless you have a reason to fix the length, and keep a spare second in the 4 to 60 window so a late edit does not push you over.
Sources
Related posts
More in Developers
- Avatar voice not ready: 409 avatar_not_ready, voice_not_ready
A video request can fail with 409 avatar_not_ready because the avatar's voice is not ready. How this differs from a plain not-ready avatar, and the retry hint.
- Pick the best of 4 AI image takes automatically with Pillow
Request n=4 from one Sume image call, score each take by edge contrast with Pillow ImageStat, keep the winner, and see what the four takes cost.
- Black Friday bulk queue: reconcile webhooks received against counts
A bulk queue has no webhook, and canceled runs send none. Count terminal events per item, then compare them with the queue's counts to find what is missing.
- Black Friday code freeze checklist for a Sume Format integration
Before the freeze: key scopes, spend caps, idempotency keys, a webhook test, queue failure handling and the rate-limit budget, all drawn from the Sume docs.
Written by Sume