Claude Opus 5.5 jest już dostępny w SeedRouter
SeedRouter Docs

Veo 3.1

Generuj klipy wideo Veo 3.1 przez jedno API zadań: trzy modele rozliczane za 8-sekundowy klip i dwa rozliczane za sekundę, z klatkami, dźwiękiem i wyjściem GIF.

View Markdown

Veo 3.1 to model generowania wideo od Google. SeedRouter udostępnia go pod pięcioma ID modeli w jednym punkcie końcowym: trzy rozliczane za klip, każdy klip trwa 8 sekund, i dwa rozliczane za sekundę, z większą kontrolą (długość, dźwięk, seed, prompt negatywny, pierwsza i ostatnia klatka). Wyślij żądanie, zachowaj zwrócony identyfikator zadania i odczytaj gotowe wideo z tego zadania. Obrazy przekazujesz jako adresy URL.

ID modeli

ID modeluRozliczenieDługośćObrazyDźwięk
veo-3.1-fastza klip8 sekunddo 3, tryb klatek lub referencjibez przełącznika
veo-3.1-qualityza klip8 sekunddo 3, tryb klatekbez przełącznika
veo-3.1-liteza klip8 sekundbrak (tekst na wideo)bez przełącznika
veo-3.1-fast-officialza sekundę4, 6 lub 8 sekundpierwsza i ostatnia klatkagenerate_audio
veo-3.1-quality-officialza sekundę4, 6 lub 8 sekundpierwsza i ostatnia klatkagenerate_audio

Aktualne ceny znajdziesz na stronie modelu.

Krótki przykład

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "prompt": "A red paper boat drifts across a calm pond at sunrise, soft mist on the water, slow push-in on a 35mm lens, no text, no logos.",
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Punkt końcowy

POST https://api.seedrouter.ai/v1/videos/generations
NagłówekWartość
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

Odpowiedź to zadanie ({"id": "task_...", "status": "processing"}), a nie gotowe wideo. Wynik odczytasz, odpytując GET /v1/tasks/{task_id}. Klucze API trzymaj w kodzie po stronie serwera.

Parametry: modele rozliczane za klip

veo-3.1-fast, veo-3.1-quality i veo-3.1-lite.

PoleTypDomyślnieUwagi
modelstringwymaganeJeden z trzech powyższych ID.
promptstringwymaganeOpisuje ujęcie.
durationinteger8Akceptowane jest tylko 8.
aspect_ratioenum16:9 lub 9:16.
resolutionenum720p720p, 1080p lub 4k (wielkość liter dowolna). veo-3.1-lite nie ma 4k.
enable_gifbooleanfalseZwraca klip jako animowany GIF zamiast MP4. Tylko 720p.
nsfw_checkbooleanfalseSprawdza prompt i obrazy pod kątem niebezpiecznych treści przed generowaniem.
image_urlsarrayTylko Fast i Quality. Do 3 publicznych adresów URL obrazów.
generation_typeenumwedług liczby obrazówTylko Fast i Quality. frame lub reference; Quality przyjmuje tylko frame.

Parametry: modele rozliczane za sekundę

veo-3.1-fast-official i veo-3.1-quality-official.

PoleTypDomyślnieUwagi
modelstringwymaganeJeden z dwóch powyższych ID.
promptstringwymaganeOpisuje ujęcie.
negative_promptstringCzego ma nie być w klipie.
durationinteger84, 6 lub 8 sekund.
aspect_ratioenum16:916:9 lub 9:16.
resolutionenum720p720p, 1080p lub 4k (wielkość liter dowolna).
first_frame_imagestringPubliczny URL obrazu. Klip zaczyna się od niego.
last_frame_imagestringPubliczny URL obrazu. Wymaga first_frame_image.
seedintegerlosowyOd 0 do 4294967295.
generate_audiobooleanfalseDodaje ścieżkę dźwiękową. Naliczane według wyższej stawki za sekundę.
person_generationenumallow_adultallow_adult lub disallow.
resize_modeenumpadpad lub crop. Wymaga first_frame_image.
enhance_promptbooleantrueAkceptowane jest tylko true; w przeciwnym razie pomiń to pole.
nsfw_checkbooleanfalseSprawdza prompt i obrazy pod kątem niebezpiecznych treści przed generowaniem.

Schemat jest ścisły: nieznane pola są odrzucane, a nie ignorowane, a każdy model przyjmuje tylko własne pola. Callbacki nie są dostępne; zamiast tego odpytuj zadanie.

Tryby obrazów

W veo-3.1-fast i veo-3.1-quality pole generation_type określa, jak są używane image_urls:

generation_typeObrazyEfekt
frame1 lub 2Pierwszy obraz jest pierwszą klatką, drugi ostatnią.
referencedo 3Obrazy są referencjami obiektu i stylu. Tylko Fast.
pominięte2 lub 3Dwa obrazy używają trybu klatek, trzy trybu referencji.

veo-3.1-quality nie obsługuje trybu referencji, więc odrzuca generation_type: "reference" oraz trzy obrazy bez generation_type. veo-3.1-lite nie przyjmuje obrazów.

W modelach rozliczanych za sekundę ustaw first_frame_image i opcjonalnie last_frame_image. resize_mode decyduje, czy obraz o innych proporcjach zostanie dopełniony, czy przycięty.

Dane wejściowe multimediów

Obrazy to publiczne adresy URL HTTP(S):

{ "image_urls": ["https://example.com/first.jpg", "https://example.com/last.jpg"] }

W modelach rozliczanych za klip każdy obraz musi być w formacie JPEG, PNG lub WebP i mieć najwyżej 10 MB; plik, który łamie te zasady, kończy zadanie niepowodzeniem bez naliczenia opłaty. Dane base64 nie są przyjmowane: prześlij plik do własnego magazynu i przekaż jego adres URL.

Czynniki wpływające na koszt

Aktualne stawki znajdziesz w sekcji cen modelu.

per-clip models:    cost = price of one clip at the output resolution        (720p and 1080p cost the same)
per-second models:  cost = duration × rate for the resolution and audio setting

Opłata jest ustalana w chwili przyjęcia żądania, więc zarezerwowana kwota jest kwotą naliczoną. Ostateczne opłaty zobaczysz w historii zużycia swojego konta. Nieudane zadania nie są naliczane.

Schemat odpowiedzi

Wysłanie zwraca zadanie:

{"id": "task_...", "model": "veo-3.1-fast", "status": "processing", "created_at": 1789689600}

Pobieranie zadania

GET https://api.seedrouter.ai/v1/tasks/{task_id}

Odpytuj co 10–20 sekund, aż status przyjmie wartość completed lub failed. Przekroczenie limitu czasu sieci podczas odpytywania nie oznacza, że generowanie się nie powiodło: zachowaj identyfikator zadania i wznów sprawdzanie. Nie twórz kolejnego zadania, aby sprawdzić postęp.

Zadanie zakończone

{
  "id": "task_...",
  "model": "veo-3.1-fast",
  "status": "completed",
  "created_at": 1789689600,
  "finished_at": 1789689720,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
  }
}

video_url to plik MP4 albo GIF, gdy żądanie ustawiło enable_gif. Link prowadzi do magazynu SeedRouter.

Co zwróciły nasze przebiegi testowe (po jednym przebiegu, 2026-10-04):

ŻądaniePlik
veo-3.1-fast, 9:16, tryb klatekMP4, H.264, 720 × 1280, 24 fps, 8 s, ze stereofoniczną ścieżką dźwiękową AAC
veo-3.1-fast-official, 16:9, 720p, 4 s, bez generate_audioMP4, H.264, 1280 × 720, 24 fps, 4 s, bez ścieżki dźwiękowej
veo-3.1-lite, enable_gifGIF, 480 × 270, 16 fps, 8 s

Modele rozliczane za klip nie mają przełącznika dźwięku; modele rozliczane za sekundę dodają ścieżkę dźwiękową tylko z generate_audio.

Błędy

Żądania odrzucone przed utworzeniem zadania zwracają błąd HTTP wraz z obiektem error i nie są naliczane. Zadanie, które zawiodło po przyjęciu, przy odpytaniu zwraca HTTP 200 z status: "failed" i obiektem error.

Kody, statusy HTTP i wskazówki dotyczące ponawiania znajdziesz we wspólnym katalogu błędów.

{
  "id": "task_...",
  "model": "veo-3.1-fast",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

Jeśli limit czasu został przekroczony przy samym wysyłaniu, przed ponownym wysłaniem sprawdź swoje zadania: pierwsze żądanie mogło już zostać przyjęte.

Wskazówki

  • Zacznij od veo-3.1-lite lub veo-3.1-fast w 720p, żeby przetestować prompt, a do finalnego renderu przejdź na Quality lub 4k.
  • Nazwij kamerę i światło: obiektyw i ruch kamery zmieniają ujęcie bardziej niż przymiotniki.
  • Dodaj no text, no logos, aby w kadrze nie pojawiały się wymyślone napisy i znaki.
  • Jeśli ujęcie musi zaczynać się i kończyć na znanych obrazach, użyj trybu klatek z dwoma obrazami albo modeli rozliczanych za sekundę z first_frame_image i last_frame_image.
  • Aby dopracować ujęcie, ustal seed w modelach rozliczanych za sekundę i zmieniaj po jednym fragmencie promptu.

Powiązane