30-clip storyboard agent: which Sume plan accepts all jobs at once?
If an agent submits 30 separate generation jobs, only Startup (48 accepted) and above take them all at once; Pro (24) needs two waves of 18 and 12.

A storyboard agent that submits 30 separate paid generation jobs is accepted in full only on Startup (48 accepted jobs), Scale or Enterprise (120). Pro accepts 24, so the last six get 429 queue_full, and Free accepts 6. Accepted capacity is the processing concurrency plus the queue, and jobs beyond it are refused rather than queued.
Processing is separate: on Pro only 4 jobs run at once, so 30 accepted jobs still finish in waves of four. Accepting a job is about the queue, not about speed.
Plan limits from the docs
Defaults from the Generation admission page, read 2026-10-09. The dashboard Concurrency tab and generation_limits in the API response are the source of truth for your workspace.
| Plan | Processing | Queue | Accepted | Fits 30 at once? | wave_size_hint (empty queue) |
|---|---|---|---|---|---|
| Free | 1 | 5 | 6 | No | 4 |
| Pro | 4 | 20 | 24 | No | 18 |
| Startup | 8 | 40 | 48 | Yes | 36 |
| Scale | 20 | 100 | 120 | Yes | 90 |
| Enterprise | 20 | 100 | 120 | Yes | 90 |
What the agent should do on Pro
On Pro, with an empty queue, queue_capacity_remaining is 24 and the hint is max(1, floor(24 x 0.75)) = 18. Submit 18, wait until they drain, then submit the remaining 12. The hint is only a guide for submission waves; it is not a concurrency limit, and the docs say not to use it to size in-flight work.
To size work in flight, use max(0, concurrency_limit - active_generation_jobs - queued_generation_jobs) capped by queue_capacity_remaining, refreshed from a live generation_limits snapshot. Refresh before every wave.
import math
def wave_hint(remaining):
return max(1, math.floor(remaining * 0.75))
plans = {"free": 6, "pro": 24, "startup": 48, "scale": 120}
for name, accepted in plans.items():
print(name, accepted, wave_hint(accepted), accepted >= 30)Retry rules when the queue is full
429 queue_full is retryable: wait for jobs to finish or cancel queued ones, then retry with the same idempotency key. It is different from 429 rate_limited, which is request volume, and from 402 insufficient_credits, which means the balance cannot be reserved. For the clip prices themselves, use the public catalog; a 5-second Wan 3.0 720p clip is 5 x $0.125 = $0.625, so 30 of them are $18.75 before any retries.
What it means for the budget
Capacity and money are separate checks. A plan that accepts 30 jobs still needs the balance to reserve each estimate, or the submit fails with 402 insufficient_credits. For 30 five-second Wan 3.0 720p clips the list total is 30 x $0.625 = $18.75. At the Seedance 2 720p rate of $0.378 per second the same 30 clips are 30 x 5 x $0.378 = $56.70. Preview with dry_run or generation_admission_preview before the first wave, and read generation_limits from the response to see how much room is left.
Also watch for an unusual case: org workspaces have a floor of 10 processing seats and Enterprise can be raised by admin override, so the effective fields in the response beat this table.
Sources
Related posts
More in Pricing
- A $30 wallet and a 24-clip batch: where the 402 lands on Seedance 2
With $30.00 and 24 Seedance 2 clips at $3.024 each, submit 9 is accepted and 10 returns 402, with $2.784 free. The reserve math and a stop-on-402 loop.
- 30-second 1080p AI video: Luma $7.20, LTX $3.90, Sume from $5.63
What 30 seconds of 1080p costs: Luma as six 5-second clips ($7.20) or three 10-second ones ($10.80), LTX Fast $3.90, and Sume. Arithmetic shown.
- 30-second vertical Short at 1080p: $5.625 to $42.65 by Sume model
Omni Flash 1.1 makes 30 s of 1080p 9:16 for $5.625 in three jobs, H3 Max $6.00, Wan 3.0 $7.50 in one job and Seedance 2.5 $42.65. Joins add $0.10.
- 300 captioned clips on Sume: $60, and a restyle pass costs $60 more
Each Sume caption job reserves and captures $0.20 for videos up to 60 seconds. 300 clips are $60.00; restyling all 300 in a second style is another $60.00.
Written by Sume