Gemini Omni robi klip z prawie każdego materiału: samego opisu, zdjęcia, które ma ożyć, trzech obrazów (postać, produkt, tło) albo Twojego nagrania, które chcesz przerobić. To model wideo Google, występujący u producenta także jako Gemini Omni Flash. Wynik ma od 4 do 10 sekund i może wyjść nawet w 4K.
Co z nim zrobisz
- Nową wersję ujęcia z Twojego nagrania - klip wzorcowy przerobiony według promptu.
- Klip z trzech zdjęć - bohater, produkt i sceneria w jednej scenie.
- 10 sekund w 4K - intro albo reklama do dużego ekranu.
- Rolkę 9:16 z animowanego zdjęcia - zdjęcie jako pierwsza klatka.
Ustawienia w praktyce
- Długość - 4, 6, 8 albo 10 s (domyślnie 6). Przy klipie wzorcowym pole
durationpomijasz, bo długość wynika z materiału. - Rozdzielczość - 720p (domyślnie), 1080p albo 4K.
- Proporcje - 16:9 albo 9:16.
- Zdjęcie startowe - jedno w
image_url. Do fuzji wysyłasz dokładnie trzy wimage_urls, bo dwa zostaną odrzucone. - Klip wzorcowy - jeden, do 30 s, w
video_urls; model korzysta z jego pierwszych 10 sekund, a cena jest stała za całe zadanie. - Prompt - do 2000 znaków. Przy fuzji przypisz każdemu obrazowi rolę.
Prompt na start
Image 1 is the main character, image 2 is the product, image 3 is the location. The character picks up the product from a café counter, smiles at the camera, steam rises from a cup. Warm morning light, handheld camera.Zamień role obrazów na swoje i trzymaj tę samą kolejność plików co w opisie.
Pytania
Ile kosztuje klip z Gemini Omni?
od 8,39 zł za film, z VAT. Koszt zadania widzisz przed startem w estimated_cost, a nieudana generacja kosztuje 0 zł. Rozpisane przykłady znajdziesz w tekście Gemini Omni - cena.
Czy jest nowsza wersja?
Tak, Gemini Omni 1.1 ma ten sam schemat zapytania, niższe ceny i dodatkowy próg 360p.
Jak wysłać trzy zdjęcia przez API?
Trzy adresy w image_urls i opis sceny w prompt na POST /v1/generate - przykład w dokumentacji. W Studio wrzucasz po prostu trzy pliki.
Gemini Omni w twoim kodzie
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni",
"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",
"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",
"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));
Pola wejściowe
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ≤ 2000 znaków | |
aspect_ratio | string | 16:9 9:16 | 16:9 |
resolution | string | 720p 1080p 4k | 720p |
duration | integer | 4 6 8 10 | 6 |
image_url | string | ||
image_urls | array | maks. 3 | |
video_urls | array | maks. 1 |
Tę listę w JSON-ie dostaniesz z GET /v1/models/gemini-omni.























