Google's video default is Omni Flash: three cases where Veo 3.1 fits
Google's video docs call Gemini Omni Flash the default and keep Veo 3.1 for extension, frame-specific and image-directed jobs. What each maps to on Sume.

Google's video generation docs name Gemini Omni Flash as the recommended default for video and keep Veo 3.1 for specialized cases: extension, frame-specific control, and image direction. If your job is none of those three, start with Omni Flash.
The three Veo cases
The three Veo cases are narrow on purpose. Each corresponds to a request shape you can describe in a few words, which makes the choice easy to automate in a router or an agent.
| Veo case | What it means | Nearest Sume request |
|---|---|---|
| Extension | Veo can extend a clip by 7 s, up to 20 times, 720p only | New job per clip, chained by first frame |
| Frame-specific | Control the first or last frame | frame_images with first_frame or last_frame |
| Image direction | Guide the look with images (up to 3 on Veo) | input_references |
What Sume documents
Gemini Omni Flash 1.1 is in the Sume catalog with 3 to 10 second clips, 16:9 or 9:16, image and video input_references but no audio references, plus an edit mode through the Video Router video_url field, per the video docs. Those docs do not describe a Veo model, so the first two Veo cases map to fields other catalog models accept.
Routing sketch
Frame control is model-dependent. The docs list supported_frame_images per model, and the example seedance-2 row shows both first_frame and last_frame. Read that field before you route a frame-specific job.
def pick_route(needs_extension, needs_frames, needs_image_direction):
if needs_extension:
return "chain clips: last frame of clip N is first frame of clip N+1"
if needs_frames:
return "model whose supported_frame_images lists first_frame and last_frame"
if needs_image_direction:
return "model whose supported_input_references lists image_url"
return "default: gemini-omni-flash-1.1"Why a default matters
A named default is a statement about where a vendor invests. Google's docs steer new work to Omni Flash. Veo 3.1 stays for the specific cases listed.
For your own code, mirror that structure: one default model id in configuration, and a small list of exceptions keyed by request shape. Then a change of default is a one-line edit instead of a search through the codebase.
- Default id in config, not in code.
- Exceptions keyed by request shape.
- Log the id used for every job.
- Review the default each time the vendor posts a changelog.
Keep the default honest
The three-way split is a starting point, not a verdict. Clip length, price, and resolution still decide. Check supported_durations and pricing_skus on the live catalog before you commit a pipeline to either default.
Sources
Related posts
More in Comparisons
- Google Ads built-in image and video generation vs a Sume pipeline
Demand Gen can generate up to 20 images per prompt and auto-build video from a logo, two images and two texts. Where a separate Sume pipeline differs.
- Image reference limits: 10 on ElevenLabs, 16 on Sume, 5 Ideogram 4.5
ElevenLabs lists 10 references for GPT Image 2.5. Sume's docs list 16 for the same models and 5 total for Ideogram 4.5. A table, a count guard and an edit rule.
- Kling 4.0 vs Kling 3.0: the spec differences in one dated table
Length, resolution, HDR, references, keyframes, audio and prompt size, Kling 4.0 against 3.0 as stated on Kling's pages, plus how each maps to a Sume request.
- Luma API callbacks and credit balance vs Sume webhooks and /v1/balance
Luma's docs list callbacks and a credits balance. Sume has webhook mode, GET /v1/balance, and a generation_limits snapshot. How to use each before a batch.
Written by Sume