Gemini Omni 1.1 takes almost any input and gives you a short video: a text idea, a still photo to bring to life, three separate images merged into one scene, or an existing clip reworked with a new prompt. Google released it in August 2026 as the follow-up to Gemini Omni, keeping the same request format and charging less at every resolution tier. Google's own name is Gemini Omni Flash 1.1; on Kadraris the id is gemini-omni-1.1.
What you can make
- Quick 4-second drafts before a 10-second or 4K final
- A product still animated as the opening frame of an ad
- One scene combining a person, an object and a place from three photos
- A reference clip restyled or re-staged with a new prompt
Settings that matter
duration: 4, 6 (default), 8 or 10 seconds.resolution: 360p, 720p (default), 1080p or 4K. On Kadraris 360p is billed like 720p, so it does not save money.aspect_ratio: 16:9 or 9:16.- Images: one in
image_url, or exactly three inimage_urls. Two images are rejected. video_urls: one reference clip up to 30 seconds. Output length follows the source and the job has a flat price. Do not add a start image to the same request.- Google's
generation_typeswitch (locked first frame vs subject reference) is not exposed yet.
Starter prompt
The woman from image 1 walks into the cafe from image 3
holding the red umbrella from image 2, shakes off rain,
camera tracks her from behind, warm interior lightChange who, what and where; keep one clear action and one camera move.
Questions
How much does a clip cost?
from $1.02 per video, cheaper than Gemini Omni at each tier. A failed generation costs $0.
How should I draft before a 4K render?
Test the prompt at 720p and 4 seconds, then render the same prompt at 1080p or 4K. The Gemini Omni API guide walks through the inputs.
How does it compare with Veo or Seedance?
See Gemini Omni 1.1 vs Veo 3.1 and Gemini Omni 1.1 vs Seedance 2.5.
Gemini Omni 1.1 in your code
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "gemini-omni-1.1",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "gemini-omni-1.1",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 6
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Input fields
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 2000 chars | |
aspect_ratio | string | 16:9 9:16 | 16:9 |
resolution | string | 360p 720p 1080p 4k | 720p |
duration | integer | 4 6 8 10 | 6 |
image_url | string | ||
image_urls | array | max 3 | |
video_urls | array | max 1 |
Fetch this list as JSON with GET /v1/models/gemini-omni-1.1.























