Storyboard panels as Gemini Omni Flash reference images, in order
Feed storyboard panels to Gemini Omni Flash 1.1 as reference images and ask it to follow the story in order. Tag syntax, 10-image limit, and what to verify.

To turn storyboard panels into a Gemini Omni Flash clip, send up to 10 panel images as reference_image_urls on Sume, refer to them as <IMAGE_REF_0>, <IMAGE_REF_1> and so on in the prompt, and tell the model to follow the story exactly in order. Google's Omni guide uses that "Follow the story exactly in order" wording for storyboards.
Details come from Google DeepMind's Omni prompt guide and the Gemini API Omni docs (read 2026-10-03) and from Sume's Video Router docs.
Limits that shape the storyboard
Output is 3 to 10 seconds, so ten panels is the most you can send and the practical number is fewer. Roughly one panel per second or two keeps each beat readable. Beyond that, split the story into several clips and join them.
| Item | Value | Source |
|---|---|---|
| Output length | 3 to 10 seconds | Google model page; Sume docs |
| Reference images on Sume | up to 10 | Sume Video Router docs |
| Reference video clips | up to 3, each 3 seconds or less | Google Omni docs; Sume docs |
| Tag format on Sume | <IMAGE_REF_0> ... | Sume Video Router docs |
| Audio references | not supported on Sume | Sume Video Router docs |
Order and wording
Tags are 0-based and follow the order of the URL list, so the order of reference_image_urls is the order of your panels. Write one sentence per panel: "Panel <IMAGE_REF_0>: wide shot of a harbor at dawn. Panel <IMAGE_REF_1>: a fisher steps onto the dock." End with "Follow the story exactly in order." Keep faces and outfits consistent across panels, since Google lists character consistency limits on scene changes at launch.
Request
Replace the URLs with public HTTPS images you control.
curl -X POST https://api.sume.com/v1/video-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: omni-storyboard-001" \
-d '{
"model": "gemini-omni-flash-1.1",
"prompt": "Panel <IMAGE_REF_0>: wide shot of a harbor at dawn. Panel <IMAGE_REF_1>: a fisher steps onto the dock. Panel <IMAGE_REF_2>: close-up of hands coiling rope. Follow the story exactly in order.",
"reference_image_urls": [
"https://example.com/panel-0.png",
"https://example.com/panel-1.png",
"https://example.com/panel-2.png"
],
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"mode": "async"
}'Check the order
Watch the result against the panels. If a beat is skipped or swapped, shorten the story to fewer panels or generate two clips. The Video Router docs list the full reference rules.
Sources
Related posts
More in Use cases
- Edit an existing ad video with Gemini Omni Flash on Sume
Sume's Video Router takes a video_url for video edit on gemini-omni-flash-1.1. How to send an edit request and why sume/auto won't tell you the model.
- GivingTuesday 2026 is December 1: a 30-second appeal video plan
A small nonprofit can make a 30-second appeal from five photos with music and captions for about $0.43 in render, music and caption fees.
- Non-skippable YouTube ads: 6 s, 7-15 s and 16-30 s CTV lengths
Google Ads sorts non-skippable in-stream video into bumper up to 6 s, 7 to 15 s, and 16 to 30 s for CTV, bought on target CPM. How to cut each length with Sume.
- Google Ads video text assets: 40 and 35 characters, not in the cut
Google lists headlines at 2 lines of 40 characters and descriptions at 2 lines of 35. Keep that copy out of the render; use Sume captions only for speech.
Written by Sume