Migrate Veo 3.1 API calls to Gemini Omni Flash 1.1: parameter map
Veo 3.1 previews shut down October 22, 2026. A parameter-by-parameter map from the Veo guide to Gemini Omni Flash 1.1 requests on Sume, with a working curl.

To move a Veo 3.1 integration to Gemini Omni Flash 1.1 on Sume, change the model id to gemini-omni-flash-1.1, send durations of 3 to 10 whole seconds instead of 4, 6 or 8, move reference media into input_references, and drop any audio-off setting, because Omni's audio is always on. The Veo preview ids shut down on October 22, 2026 according to Google's deprecations page, read 2026-10-01.
This map compares Google's Veo 3.1 guide (read 2026-10-01) with Sume's Video Generation and Video Router docs.
Which Veo setting becomes which Sume field?
Sume's POST /v1/videos follows the OpenRouter video wire, so the field names are duration, resolution, aspect_ratio, frame_images and input_references. Mode is inferred: frame images mean image-to-video, references mean reference-to-video, and if both are present frame_images wins.
| Topic | Veo 3.1 guide | Omni Flash 1.1 on Sume |
|---|---|---|
| Duration | 4, 6 or 8 seconds; 8 required for 1080p, 4K and reference images | 3 to 10 whole seconds |
| Resolution | 720p, 1080p, 4K (1080p and 4K at 8 seconds only) | 360p, 720p, 1080p, 4K |
| Aspect ratio | 16:9 or 9:16 | 16:9 or 9:16 |
| Reference media | Up to three images | Up to 10 images and up to 3 clips of 3 seconds or less |
| Audio | Generated natively | Native, always on; generate_audio: false has no effect |
| Seed | Not part of this map | Rejected: no Sume video model accepts seed |
What does a migrated request look like?
This is an image-to-video request with the first frame pinned. Idempotency-Key makes a retried submit return the original job instead of creating a second paid one. Poll the returned polling_url or pass an HTTPS callback_url.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: veo-migration-001" \
-d '{
"model": "gemini-omni-flash-1.1",
"prompt": "Slow push-in on the product, soft window light",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "9:16",
"frame_images": [{
"type": "image_url",
"image_url": {"url": "https://example.com/first.png"},
"frame_type": "first_frame"
}]
}'What is not a one-to-one move?
Reference clips are shorter on Omni (3 seconds each) and are addressed in the prompt as <VIDEO_REF_0>, which has no Veo equivalent. Veo's extension feature, 7 seconds per step, has no matching Sume input in the docs. Veo's two-day video retention does not apply: a completed Sume job gives you download URLs on the job, and the Sume docs tell integrations to store the Sume URL.
Run a handful of real prompts on both sides before cutover. Nothing here says Omni will reproduce a Veo look, only that the request shape maps.
A cutover checklist
Do these in order so a surprise shows up in staging rather than in a customer's queue.
- Swap the id to
gemini-omni-flash-1.1and readsupported_durationsandsupported_resolutionsfromGET /v1/videos/modelsbefore you hard-code anything. - Replace any 4, 6 or 8 second constants with a value between 3 and 10, and drop
generate_audio: false, which does nothing here. - Move reference images into
input_referencesand trim reference clips to 3 seconds or less. - Send an
Idempotency-Keyon every submit, and read the final amount fromusage.coston the completed job. - Keep the old Veo path behind a flag until the date passes, then delete it.
Sources
Related posts
More in Developers
- Music API has no duration field: steer length in the prompt
Sume's music router rejects duration and duration_seconds. Ask for a 30-second or 2-minute track in the prompt, with section timestamps, and verify.
- Music API metadata field: tag a track job with your own ids
Sume's music request has an optional metadata field, stored on the job and not sent to the provider. Use it to match tracks to your own records.
- Mux direct upload chunks: multiples of 256 KB, UpChunk at ~5 MB
Mux direct uploads need chunks in multiples of 256 KB; UpChunk sends about 5 MB. A chunk-size helper and the upload states to wait on before using an asset.
- Netflix subtitle limit: 42 characters per line, and max_chars
Netflix's English timed text spec allows 42 characters per line and two lines. Sume's caption design.phrasing.max_chars accepts 4 to 60, so 42 fits.
Written by Sume