Prompting Omni Flash with sound: write the audio as its own line
Gemini Omni Flash 1.1 always generates audio. A prompt layout that separates picture from sound, three example prompts, and the request on Sume.

Because Omni Flash always produces native synced audio, the prompt is also your sound brief. A simple layout is: one sentence of picture, one sentence of camera, one sentence that starts with "Sound:". Nothing in the docs requires that format; it is a habit that keeps audio from being left to chance.
Sume's Video Router page states the audio is always on and that generate_audio: false is rejected, and the model takes no audio input, so you cannot supply a voice track to follow.
Three prompts
| Use | Picture and camera | Sound line |
|---|---|---|
| Cafe hook | A barista pours latte art into a white cup. Close, slow push in. | Sound: milk pouring, a spoon on porcelain, quiet cafe murmur. |
| Shoe drop | White sneakers on wet pavement, low angle, static. | Sound: rain on asphalt, one footstep, no music. |
| Tool demo | A cordless drill drives a screw into oak. Side view. | Sound: motor whine rising, then a short stop. |
Request
The sound line goes into the same prompt string.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sound-test-001" \
-d '{
"model": "gemini-omni-flash-1.1",
"prompt": "A barista pours latte art into a white cup. Close, slow push in. Sound: milk pouring, a spoon on porcelain, quiet cafe murmur.",
"duration": 5,
"resolution": "360p",
"aspect_ratio": "9:16"
}'Test cheaply
Audio is in the price, so a sound test costs the same as a silent one: $0.1875 for 5 seconds at 360p. Run three wordings at 360p ($0.5625) and keep the one you like before you spend on 1080p.
Sources
Related posts
More in Developers
- Python: submit, poll and download one Omni Flash clip (v1/videos)
A short Python script that submits a Gemini Omni Flash 1.1 request to Sume's /v1/videos, polls the job until it completes and saves the MP4.
- Railway closes idle HTTP at 5 minutes: why Sume sync waits 30 s
Railway keeps a request open up to 15 minutes only while data moves. Sume sync mode caps the wait at 30 seconds, so long video jobs need async or a webhook.
- Worker crashed mid-poll: list Sume jobs and join on idempotency_key
After a restart, GET /v1/jobs?status=processing lists your in-flight video jobs. Each row carries the idempotency_key you sent, so match your records on it.
- Reserve, capture, refund: a 20-clip batch with 3 failures, 2 cancels
Worked example of how a Sume balance moves across a 20-job batch when 3 jobs fail and 2 are canceled while queued: what is held, captured and released.
Written by Sume