Wan 3.0 on Sume: one id, three modes, and which field picks each
fal lists three Wan 3 endpoints. Sume has one id, wan-3.0, and picks text, image or reference-to-video from frame_images and input_references.

You send model: "wan-3.0" and the fields you have; Sume picks the mode. No frame_images and no input_references means text-to-video, a frame_images entry means image-to-video, and input_references alone means reference-to-video. If you send both, frame_images wins.
fal's Wan 3 page, read 2026-10-05, lists three endpoints (text-to-video, image-to-video, reference-to-video) at one rate card: $0.05, $0.10 and $0.20 per second at 480p, 720p and 1080p. Sume bills the same tiers at list times 1.25.
Field to mode
The Sume side of this is documented in the video generation docs: the API infers the mode from the body, and you never declare it.
| Request has | Mode | fal endpoint family | Sume 720p, 10 s |
|---|---|---|---|
| Prompt only | Text-to-video | text-to-video | $1.25 |
frame_images with first_frame (and optional last_frame) | Image-to-video | image-to-video | $1.25 |
input_references (images, and per the docs, video or audio) | Reference-to-video | reference-to-video | $1.25 |
Both frame_images and input_references | Image-to-video (frame_images wins) | image-to-video | $1.25 |
A first-frame request
The body below pins the opening frame. A single reference image that should condition the whole clip belongs in input_references instead.
{
"model": "wan-3.0",
"prompt": "Slow push-in on the mug, steam rising",
"duration": 6,
"resolution": "720p",
"aspect_ratio": "16:9",
"frame_images": [
{
"type": "image_url",
"image_url": { "url": "https://example.com/mug.png" },
"frame_type": "first_frame"
}
]
}What stays the same across modes
The per-second price does not change with the mode on either side, so a 6-second 720p clip is $0.75 whether it starts from text, a first frame or references. Wan 3.0 on Sume takes 2 to 30 seconds at 480p, 720p and 1080p, so the whole range of modes is available at the same length limits.
One id also means one place to look when something fails. If an input URL cannot be fetched, the poll response says so with the same public error text, whichever mode you used.
Sources
Related posts
More in Developers
- Wan 3.0 sync mode waits 30 seconds: a 30-second clip needs async
Sume's sync mode holds a request at most 30 seconds, so a 30 second Wan 3.0 clip needs async or a webhook. What the timeout means and how to avoid paying twice.
- Wan 3.0's watermark parameter defaults to false: and on Sume?
Alibaba's Wan 3.0 API has a watermark boolean that is off by default. What that means when you call wan-3.0 through Sume, which documents no watermark field.
- Watch a Sume Format run by phase: preparing, running, finalizing
Pass timeline: true to subscribeFormatRun or waitForRun, or call getFormatRunTimeline, to show phases during a long run. It doubles the polling rate.
- Webhook before your DB row? Insert, then submit the Sume video
A Sume job webhook can beat your own write of the job id. Insert a pending row keyed by Idempotency-Key first, then upsert by job_id when the event lands.
Written by Sume