Veo 3.1 (Quality) to wersja modelu wideo Google nastawiona na jakość obrazu. Generuje 8-sekundowe klipy w 16:9 lub 9:16, w 720p, 1080p albo 4K, z tekstu lub z obrazów użytych jako klatki (do 3). Prompt mieści do 4000 znaków. Jeśli budujesz dużo wariantów, szukaj pomysłu w Veo 3.1 Fast, a gotowy prompt renderuj tutaj. Model Google z dłuższymi klipami i referencją wideo to Gemini Omni.
Do czego się nadaje
- Finalne ujęcia do reklamy telewizyjnej lub internetowej w 4K
- Kadry do teledysku, gdzie liczy się światło i faktura
- Animacja ilustracji lub zdjęcia z sesji jako pierwszej klatki
- Zwiastun filmu złożony z kilku 8-sekundowych ujęć
Jak pisać prompty
- Pisz jak scenariusz ujęcia: miejsce, pora dnia, obiektyw, ruch kamery, akcja.
- Oświetlenie nazwij konkretnie: "golden hour backlight", "neon rim light", "overcast soft light".
- Przy obrazie jako klatce opisz ruch, a wygląd sceny zostaw zdjęciu.
- Jedno ujęcie na prompt - zmiany planu w 8 sekundach rzadko wychodzą czysto.
FAQ
Ile kosztuje Veo 3.1 w złotówkach?
Cena to od 14,64 zł za film, z VAT. Nieudane generacje nie są płatne, a koszt widzisz przed wysłaniem zadania.
Czym Veo 3.1 różni się od Veo 3.1 Fast?
To wersja Quality, nastawiona na najlepszy obraz. Fast działa szybciej i kosztuje mniej. W Jantarisie oba mają te same pola: klip 8 s, 16:9 lub 9:16, 720p-4K i do 3 obrazów.
Czy mogę użyć klipów z Veo 3.1 komercyjnie?
Wyniki są Twoje w granicach prawa i warunków Google jako producenta modelu. Przykłady wywołań znajdziesz w dokumentacji, a bez kodu w Studio.
Jak wywołać Veo 3.1 (Quality) przez API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1",
"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"
}
}'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": "veo-3.1",
"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"
}
}).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": "veo-3.1",
"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"
}
}),
})).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 | ≤ 4000 znaków | |
aspect_ratio | string | 16:9 9:16 | 16:9 |
resolution | string | 720p 1080p 4k | 720p |
duration | integer | 8 | 8 |
image_urls | array | maks. 3 |
Ten sam schemat zwraca GET /v1/models/veo-3.1.









