Gemini Omni 1.2 to trzecia wersja modelu wideo Google, po Gemini Omni i Gemini Omni 1.1. Najważniejsza zmiana dla portfela: płacisz za każdą sekundę klipu, a nie stałą stawkę za zadanie. Długość ustawiasz co sekundę od 3 do 15 s (wcześniej 4-10 s), a rozdzielczość od 360p do 4K. Klip ma od razu dźwięk. Proporcje: 16:9 albo 9:16.
Wejść jest więcej niż w 1.1: sam tekst, zdjęcie jako pierwsza klatka, para klatek start-koniec albo do 10 obrazów referencyjnych (w 1.1 było 1 albo 3). Producent ma też tryby edycji i przedłużania gotowego klipu, ale tych Jantaris jeszcze nie udostępnia.
Do czego się nadaje
- Tanie szkice w 360p - tu ten próg jest naprawdę tańszy, w przeciwieństwie do 1.1
- Przejście między dwoma kadrami (pierwsza i ostatnia klatka)
- Sceny z kilkoma postaciami albo produktami z obrazów referencyjnych
- Dłuższe ujęcia do 15 s w 4K
Jak pisać prompty
- Kompozycję sprawdź w 360p i krótkim klipie, potem podbij rozdzielczość i długość.
- Para klatek:
image_urlto start,end_image_urlto koniec. Nie łącz jej zimage_urls. - Opisz dźwięk: szum, kroki, muzyka w tle - model dźwięk robi zawsze.
- Napisy w kadrze najlepiej pomijać.
FAQ
Ile kosztuje Gemini Omni 1.2?
od 0,268 zł za sekundę z VAT. Cena zależy od rozdzielczości i liczby sekund. Nieudane generacje nie są płatne.
Czym różni się od Gemini Omni 1.1?
Rozliczeniem za sekundę zamiast stałej ceny za zadanie, długością 3-15 s co sekundę, parą klatek i do 10 obrazów referencyjnych. W 1.1 360p kosztowało tyle co 720p - tu jest wyraźnie tańsze.
Jakie proporcje obsługuje?
16:9 i 9:16.
Jak wywołać Gemini Omni 1.2 przez API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 10
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "gemini-omni-1.2",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 10
}
}).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://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "gemini-omni-1.2",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 10
}
}),
})).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));
Parametry
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ||
aspect_ratio | string | 16:9 9:16 | 16:9 |
resolution | string | 360p 720p 1080p 4k | 720p |
duration | integer | 3-15 | 10 |
image_url | string | ||
end_image_url | string | ||
image_urls | array | maks. 10 |
Ten sam schemat zwraca GET /v1/models/gemini-omni-1.2.























