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
- 38-second ad: stills, clips, voice, music, render, cost per second
One 38-second ad from 6 stills, five 8-second Wan clips, a 640-character voiceover, a music bed and a render costs $5.8554, or $0.1541 per finished second.
- 7-second 720p AI video clip: Luma lists 5 or 10 seconds, Sume bills 7
A 7-second 720p clip: $0.56 on MiniMax, $0.63 on LTX Fast, $0.525 on Sume H3. Luma's page lists only 5 and 10 second totals ($0.30, $0.90).
- Cancel a queued Sume video job: refund rules and the 409 after start
A queued Sume job can be canceled before it starts; after that cancel returns 409 job_generation_already_started. What is held, with a 30-second example.
- Cancel 16 of 20 queued Seedance 2.5 clips: what you keep
Twenty 10-second Seedance 2.5 clips reserve $115.56. Cancel the 16 still queued and $92.448 is released; the 4 running clips complete and cost $23.112.
Written by Sume