Wan 3.0 lists 20 references; Sume caps 10 images, 5 videos, 5 audio
Wan 3.0's own page says up to 20 reference assets. Sume splits that into 10 images, 5 videos and 5 audio clips. Validate a request offline in Python first.

How many reference files can I send to Wan 3.0 on Sume?
Up to 10 images, 5 videos and 5 audio clips in one request; Sume rejects a request over any of those counts. Alibaba's Wan 3.0 repository says the model takes up to 20 reference assets. Sume applies a per-type cap, so a request that is fine for the model can still be rejected at the Sume edge.
The three caps add up to 20, but the split matters: 20 images is over the cap even though the total is not. Catch it locally and you never spend an API call on a 400.
Why bother when the API validates anyway? Because a rejected request still costs a round trip, an error to log and, in a batch, a retry decision. A preflight in your own code also documents the limit where your team can read it, and it fails in a unit test instead of at 2 a.m. in a queue worker.
The limits side by side
| Item | Alibaba Wan 3.0 page | Sume wan-3.0 |
|---|---|---|
| Reference assets in total | Up to 20 | 10 images + 5 videos + 5 audio |
| Reference images | Part of the 20 | At most 10 |
| Reference videos | Part of the 20 | At most 5 |
| Reference audio | Part of the 20 | At most 5 |
| Clip length | Native 30 s | 2 to 30 s |
Offline preflight in Python
The function takes the counts of each reference type and returns the list of problems. Run it before you build the request body.
LIMITS = {"images": 10, "videos": 5, "audios": 5}
def preflight(images=0, videos=0, audios=0):
have = {"images": images, "videos": videos, "audios": audios}
return [f"{k}: {v} > {LIMITS[k]}" for k, v in have.items() if v > LIMITS[k]]
print(preflight(images=10, videos=5, audios=5))
print(preflight(images=12, videos=2))What the check cannot see
Counts are not everything. Input media must be a public HTTPS URL, and a signed, private or non-HTTPS link is refused. Sume's documented reference fields are image, video and audio URLs, so do not copy document or web-page fields from Alibaba's examples without checking the live descriptor. Check GET /v1/videos/models for the current limits before you hard-code them.
Per-file limits such as clip length or frame rate are model-side details that this counting check cannot see; confirm them in the descriptor and the vendor page.
Finally, references steer the look, motion and sound of a clip, and they do not change the duration range. Ask for between 2 and 30 seconds in duration and keep the resolution to 480p, 720p or 1080p.
Sources
Related posts
More in Developers
- What a 30-second Wan 3.0 job reserves on Sume: list times 1.25
Sume reserves the provider list price times 1.25 at submit. Work out the hold for a 30-second Wan 3.0 clip and other models in Python.
- Sume webhook beat your database write: handle an unknown job_id
A fast Sume job can send its webhook before your submit handler commits the job id. Park the event in an inbox table and reconcile it, in runnable Python.
- Webhook for an unknown job_id: park it, then reconcile on insert
A Sume job.completed webhook can name a job_id your database has not stored yet. Return 2xx, park the event in SQLite, and apply it when the insert lands.
- Which AI video model makes a 25-second clip? Duration check in Python
Only some Sume video models accept 25 seconds in one request. See each model's duration range and filter a target length in a few lines of runnable Python.
Written by Sume