Move a Vidu Q4 job to Sume: six fields to check before you submit
Vidu Q4 Preview's image-to-video fields (duration, resolution, start image, audio) mapped to Sume's /v1/videos names, with a Python filter for rows that fit.

To move a Vidu Q4 Preview image-to-video job to Sume, translate six fields: duration, resolution, start image, audio, aspect ratio and the model id. Sume has no Vidu row, so you choose a Sume row whose catalog entry fits, then send the request to POST /v1/videos.
Vidu's parameter page lists duration 3 to 16 seconds (default 5), resolutions 540p, 720p, 1080p, 2K and 4K (default 720p), one starting image up to 50 MB and an audio option (Vidu API, read 2026-10-10).
The six fields
Each Vidu input has a Sume counterpart or a gap:
| Vidu Q4 Preview | Sume field | What to check |
|---|---|---|
| Duration 3 to 16 s | duration | Row's supported_durations; 16 s only on Seedance 2.5 and Wan 3.0 |
| 540p / 720p / 1080p / 2K / 4K | resolution | No 540p; 480p or 720p; 2K or 4K only where listed |
| Starting image | frame_images with frame_type: first_frame | Row's supported_frame_images |
| Audio on or off | generate_audio | Omni and MiniMax rows always produce audio |
| Aspect ratio (not on the page) | aspect_ratio | Row's supported_aspect_ratios |
| Model id | model | A bare Sume id such as wan-3.0, or sume/auto |
A filter for rows that fit
This script lists Sume rows that cover a 6-second 720p clip with a first frame. It reads the public catalog and does not submit anything.
import os, requests
r = requests.get("https://api.sume.com/v1/videos/models",
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]})
r.raise_for_status()
for m in r.json()["data"]:
ok = (6 in (m.get("supported_durations") or [])
and "720p" in (m.get("supported_resolutions") or [])
and "first_frame" in (m.get("supported_frame_images") or []))
if ok:
print(m["id"], m["supported_durations"][0], m["supported_durations"][-1])Gaps to plan for
Four differences are likely to matter:
- 540p does not exist on Sume; pick 480p to save money or 720p to match the default.
- 2K and 4K: Gemini Omni Flash 1.1 lists 4K, and MiniMax H3 lists 2K and 4K as upscales from native 768p.
- Vidu's request cap of 20 MB for the whole HTTP body is Vidu's; on Sume, pass the image as a public HTTPS URL.
- Vidu's 3 to 16 s window is wider than every Sume row except Seedance 2.5 and Wan 3.0 at the top end.
After you pick a row
Send an Idempotency-Key with the submit so a retry returns the original job, poll the polling_url, and read usage.cost for the billed amount. The reserve at submit is the provider list times 1.25 for the row (Video Generation).
Sources
Related posts
More in Developers
- Music prompt rejected by policy: rewrite only the flagged part
If Sume Music rejects a prompt on policy, change the flagged content but keep the musical brief. The docs say not to flatten it to a generic bed; here is how.
- n=10 on the Sume Image API: docs say 10, catalog says 4 (Grok 1)
The Image API docs say n goes up to 10, but every catalog model caps lower: 4 for most, 1 for Grok Image, 1 or 4 for Soul. The 400 you get and how to batch.
- Next.js Oct 14 security update: redeploy, then test your Sume webhook
Next.js will ship an out-of-band security update on Oct 14. Prepare your Sume webhook receiver now, then prove it still verifies after you redeploy.
- Node 26.11 --process-timeout exits 124: the Sume job keeps running
Node 26.11.0 adds --process-timeout, which kills a script with exit code 124. A Sume job it was waiting on keeps running and billing, so save the polling URL.
Written by Sume