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.

5 min readSume
All posts

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.

Veo values from Google's Veo 3.1 guide; Omni values from Sume's docs. Both read 2026-10-01.
TopicVeo 3.1 guideOmni Flash 1.1 on Sume
Duration4, 6 or 8 seconds; 8 required for 1080p, 4K and reference images3 to 10 whole seconds
Resolution720p, 1080p, 4K (1080p and 4K at 8 seconds only)360p, 720p, 1080p, 4K
Aspect ratio16:9 or 9:1616:9 or 9:16
Reference mediaUp to three imagesUp to 10 images and up to 3 clips of 3 seconds or less
AudioGenerated nativelyNative, always on; generate_audio: false has no effect
SeedNot part of this mapRejected: 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.1 and read supported_durations and supported_resolutions from GET /v1/videos/models before 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_references and trim reference clips to 3 seconds or less.
  • Send an Idempotency-Key on every submit, and read the final amount from usage.cost on the completed job.
  • Keep the old Veo path behind a flag until the date passes, then delete it.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume