Skip to main content
Agenci OpenClaw generują filmy na podstawie promptów tekstowych, obrazów referencyjnych lub istniejących filmów za pomocą video_generate. Obsługiwanych jest szesnaście backendów dostawców; agent automatycznie wybiera właściwy na podstawie konfiguracji i dostępnych kluczy API.
video_generate pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania filmów. Jeśli brakuje go w narzędziach agenta, ustaw klucz API dostawcy lub skonfiguruj agents.defaults.videoGenerationModel.
video_generate ma trzy tryby działania, określane na podstawie danych referencyjnych w wywołaniu:
  • generate — brak multimediów referencyjnych (tekst na film).
  • imageToVideo — co najmniej jeden obraz referencyjny.
  • videoToVideo — co najmniej jeden film referencyjny.
Dostawcy mogą obsługiwać dowolny podzbiór tych trybów. Narzędzie sprawdza aktywny tryb przed przesłaniem zadania i zgłasza obsługiwane tryby w action=list.

Szybki start

1

Skonfiguruj uwierzytelnianie

Ustaw klucz API dowolnego obsługiwanego dostawcy:
2

Wybierz model domyślny (opcjonalnie)

3

Poproś agenta

Wygeneruj 5-sekundowy film w kinowym stylu, przedstawiający przyjaznego homara surfującego o zachodzie słońca.
Agent automatycznie wywołuje video_generate. Dodawanie narzędzia do listy dozwolonych nie jest wymagane.

Jak działa generowanie asynchroniczne

Generowanie filmów odbywa się asynchronicznie:
  1. OpenClaw przesyła żądanie do dostawcy i natychmiast zwraca identyfikator zadania.
  2. Dostawca przetwarza zadanie w tle (zwykle od 30 sekund do kilku minut, zależnie od dostawcy i rozdzielczości; powolni dostawcy korzystający z kolejek mogą działać do upływu skonfigurowanego limitu czasu).
  3. Gdy film jest gotowy, OpenClaw wznawia tę samą sesję za pomocą wewnętrznego zdarzenia ukończenia.
  4. Agent zgłasza wynik w zwykłym trybie widocznej odpowiedzi sesji: automatyczna odpowiedź końcowa lub message(action="send"), gdy sesja wymaga narzędzia wiadomości. Jeśli sesja żądającego jest nieaktywna albo jej wznowienie się nie powiedzie, a wygenerowanych multimediów nadal brakuje w odpowiedzi o ukończeniu, OpenClaw wysyła idempotentną bezpośrednią wiadomość awaryjną z multimediami.
Gdy zadanie jest w toku, kolejne wywołania video_generate w tej samej sesji zwracają bieżący stan zadania zamiast rozpoczynać następne generowanie. Użyj action: "status", aby sprawdzić stan bez wyzwalania nowego generowania, albo openclaw tasks list / openclaw tasks show <lookup> w CLI (zobacz Zadania w tle). Poza uruchomieniami agenta powiązanymi z sesją (na przykład przy bezpośrednich wywołaniach narzędzia) narzędzie przechodzi na generowanie w ramach wywołania i zwraca ścieżkę do gotowych multimediów w tej samej turze. Gdy dostawca zwraca dane binarne, wygenerowane pliki filmowe są zapisywane w magazynie multimediów zarządzanym przez OpenClaw. Domyślny limit wynosi 16 MB (współdzielony limit multimediów wideo); agents.defaults.mediaMaxMb zwiększa go w przypadku większych renderów. Jeśli dostawca zwraca również hostowany adres URL wyniku, OpenClaw dostarcza ten adres URL zamiast oznaczać zadanie jako nieudane, gdy lokalny zapis odrzuci zbyt duży plik.

Cykl życia zadania

Sprawdź stan w CLI:

Obsługiwani dostawcy

Niektórzy dostawcy akceptują dodatkowe lub alternatywne zmienne środowiskowe kluczy API. Szczegóły znajdziesz na poszczególnych stronach dostawców. Uruchom video_generate action=list, aby podczas działania sprawdzić dostępnych dostawców, modele i tryby działania.

Macierz możliwości

Jawna umowa trybów używana przez video_generate, testy umowy oraz współdzielony test środowiska rzeczywistego:

Parametry narzędzia

Wymagane

string
wymagane
Tekstowy opis filmu do wygenerowania. Wymagany dla action: "generate".

Dane wejściowe treści

string
Pojedynczy obraz referencyjny (ścieżka lub adres URL).
string[]
Wiele obrazów referencyjnych (maksymalnie 9).
string[]
Opcjonalne wskazówki roli dla poszczególnych pozycji, odpowiadające połączonej liście obrazów. Wartości kanoniczne: first_frame, last_frame, reference_image.
string
Pojedynczy film referencyjny (ścieżka lub adres URL).
string[]
Wiele filmów referencyjnych (maksymalnie 4).
string[]
Opcjonalne wskazówki roli dla poszczególnych pozycji, odpowiadające połączonej liście filmów. Wartość kanoniczna: reference_video.
string
Pojedynczy dźwięk referencyjny (ścieżka lub adres URL). Używany jako muzyka w tle lub wzorzec głosu, gdy dostawca obsługuje wejścia audio.
string[]
Wiele dźwięków referencyjnych (maksymalnie 3).
string[]
Opcjonalne wskazówki roli dla poszczególnych pozycji, odpowiadające połączonej liście dźwięków. Wartość kanoniczna: reference_audio.
Wskazówki roli są przekazywane dostawcy bez zmian. Wartości kanoniczne pochodzą z unii VideoGenerationAssetRole, ale dostawcy mogą akceptować dodatkowe ciągi ról. Tablice *Roles nie mogą zawierać więcej elementów niż odpowiadająca im lista referencyjna; błędy przesunięcia o jeden powodują niepowodzenie z jednoznacznym komunikatem. Użyj pustego ciągu, aby pozostawić pozycję nieustawioną. W przypadku xAI ustaw rolę każdego obrazu na reference_image, aby użyć trybu generowania reference_images; pomiń rolę lub użyj first_frame dla konwersji pojedynczego obrazu na film.

Sterowanie stylem

string
Wskazówka proporcji obrazu, na przykład 1:1, 16:9, 9:16, adaptive lub wartość specyficzna dla dostawcy. OpenClaw normalizuje lub ignoruje nieobsługiwane wartości zależnie od dostawcy.
string
Wskazówka rozdzielczości, na przykład 360P, 480P, 540P, 720P, 768P, 1080P, 4K lub wartość specyficzna dla dostawcy. OpenClaw normalizuje lub ignoruje nieobsługiwane wartości zależnie od dostawcy.
number
Docelowy czas trwania w sekundach (zaokrąglany do najbliższej wartości obsługiwanej przez dostawcę).
string
Wskazówka rozmiaru, gdy dostawca ją obsługuje.
boolean
Włącza generowany dźwięk w wyniku, gdy jest obsługiwany. Jest to opcja odrębna od audioRef* (wejść).
boolean
Włącza lub wyłącza znak wodny dostawcy, gdy jest obsługiwany.
adaptive jest wartością specjalną zależną od dostawcy: jest przekazywana bez zmian dostawcom, którzy deklarują adaptive w swoich możliwościach (np. BytePlus Seedance używa jej do automatycznego wykrywania proporcji na podstawie wymiarów obrazu wejściowego). Dostawcy, którzy jej nie deklarują, ujawniają tę wartość w details.ignoredOverrides w wyniku narzędzia, dzięki czemu jej odrzucenie jest widoczne.

Zaawansowane

"generate" | "status" | "list"
domyślnie:"generate"
"status" zwraca bieżące zadanie sesji; "list" sprawdza dostawców.
string
Nadpisanie dostawcy/modelu (np. runway/gen4.5).
string
Wskazówka nazwy pliku wyjściowego.
number
Opcjonalny limit czasu operacji dostawcy w milisekundach. Jeśli zostanie pominięty, OpenClaw używa agents.defaults.videoGenerationModel.timeoutMs, jeśli skonfigurowano tę wartość, a w przeciwnym razie domyślnej wartości dostawcy określonej przez autora pluginu, jeśli taka istnieje.
object
Opcje specyficzne dla dostawcy jako obiekt JSON (np. {"seed": 42, "draft": true}). Dostawcy deklarujący typowany schemat weryfikują klucze i typy; nieznane klucze lub niezgodności powodują pominięcie kandydata podczas przełączania awaryjnego. Dostawcy bez zadeklarowanego schematu otrzymują opcje bez zmian. Uruchom video_generate action=list, aby zobaczyć, jakie opcje akceptuje każdy dostawca.
Nie wszyscy dostawcy obsługują wszystkie parametry. OpenClaw normalizuje czas trwania do najbliższej wartości obsługiwanej przez dostawcę i przekształca wskazówki geometrii, na przykład rozmiar na proporcje obrazu, gdy dostawca awaryjny udostępnia inny zestaw ustawień. Faktycznie nieobsługiwane nadpisania są w miarę możliwości ignorowane i zgłaszane jako ostrzeżenia w wyniku narzędzia. Twarde ograniczenia możliwości (takie jak zbyt wiele wejść referencyjnych) powodują błąd przed wysłaniem. Wyniki narzędzia podają zastosowane ustawienia; details.normalization rejestruje wszelkie przekształcenia wartości żądanych na zastosowane.
Wejścia referencyjne wybierają tryb działania:
  • Brak multimediów referencyjnych -> generate
  • Dowolny obraz referencyjny -> imageToVideo
  • Dowolny film referencyjny -> videoToVideo
  • Referencyjne wejścia audio nie zmieniają wybranego trybu; są stosowane do trybu wybranego przez referencje obrazów lub filmów i działają wyłącznie z dostawcami deklarującymi maxInputAudios.
Łączenie referencji obrazów i filmów nie stanowi stabilnego wspólnego zakresu możliwości. Preferuj jeden typ referencji na żądanie.

Przełączanie awaryjne i typowane opcje

Niektóre kontrole możliwości są wykonywane w warstwie przełączania awaryjnego, a nie na granicy narzędzia, dlatego żądanie przekraczające limity głównego dostawcy nadal może zostać obsłużone przez odpowiedniego dostawcę awaryjnego:
  • Aktywny kandydat, który nie deklaruje maxInputAudios (lub deklaruje 0), jest pomijany, gdy żądanie zawiera referencje audio; następuje próba użycia kolejnego kandydata. Ta sama kontrola dotyczy liczby referencji obrazów i filmów względem maxInputImages/maxInputVideos.
  • Aktywny kandydat, którego maxDurationSeconds jest mniejsze od żądanego durationSeconds i który nie deklaruje listy supportedDurationSeconds -> zostaje pominięty.
  • Żądanie zawiera providerOptions, a aktywny kandydat jawnie deklaruje typowany schemat providerOptions -> zostaje pominięty, jeśli podanych kluczy nie ma w schemacie lub typy wartości są niezgodne. Dostawcy bez zadeklarowanego schematu otrzymują opcje bez zmian (przekazywanie zgodne wstecznie). Dostawca może zrezygnować ze wszystkich opcji dostawcy, deklarując pusty schemat (capabilities.providerOptions: {}), co powoduje takie samo pominięcie jak niezgodność typów.
Pierwsza przyczyna pominięcia w żądaniu jest rejestrowana na poziomie warn, aby operatorzy widzieli, kiedy ich główny dostawca został pominięty; kolejne pominięcia są rejestrowane na poziomie debug, aby długie łańcuchy przełączania awaryjnego nie generowały nadmiernych komunikatów. Jeśli każdy kandydat zostanie pominięty, zbiorczy błąd zawiera przyczynę pominięcia każdego z nich.

Akcje

Wybór modelu

OpenClaw wybiera model w następującej kolejności:
  1. Parametr narzędzia model — jeśli agent poda go w wywołaniu.
  2. videoGenerationModel.primary z konfiguracji.
  3. videoGenerationModel.fallbacks po kolei.
  4. Automatyczne wykrywanie — dostawcy z prawidłowym uwierzytelnieniem, począwszy od bieżącego domyślnego dostawcy, a następnie pozostali dostawcy w kolejności alfabetycznej.
Jeśli dostawca zawiedzie, automatycznie podejmowana jest próba użycia kolejnego kandydata. Jeśli wszyscy kandydaci zawiodą, błąd zawiera szczegóły każdej próby. Ustaw agents.defaults.mediaGenerationAutoProviderFallback: false, aby używać wyłącznie jawnych wpisów model, primary i fallbacks.

Uwagi dotyczące dostawców

Korzysta z asynchronicznego punktu końcowego DashScope / Model Studio. Obrazy i filmy referencyjne muszą być zdalnymi adresami URL http(s).
Identyfikator dostawcy: byteplus.Modele: seedance-1-0-pro-250528 (domyślny), seedance-1-0-pro-t2v-250528, seedance-1-0-pro-fast-251015, seedance-1-0-lite-t2v-250428, seedance-1-0-lite-i2v-250428.Modele T2V (*-t2v-*) nie przyjmują wejść obrazowych; modele I2V i ogólne modele *-pro-* obsługują pojedynczy obraz referencyjny (pierwszą klatkę). Przekaż obraz pozycyjnie lub ustaw role: "first_frame". Po podaniu obrazu identyfikatory modeli T2V są automatycznie zamieniane na odpowiadający wariant I2V.Obsługiwane klucze providerOptions: seed (liczba), draft (wartość logiczna — wymusza 480p), camera_fixed (wartość logiczna).
Wymaga pluginu @openclaw/byteplus-modelark (zewnętrznego, niedołączonego). Identyfikator dostawcy: byteplus-seedance15. Model: seedance-1-5-pro-251215.Korzysta z ujednoliconego API content[]. Obsługuje maksymalnie 2 obrazy wejściowe (first_frame + last_frame). Wszystkie wejścia muszą być zdalnymi adresami URL https://. Ustaw role: "first_frame" / "last_frame" dla każdego obrazu albo przekaż obrazy pozycyjnie.aspectRatio: "adaptive" automatycznie wykrywa proporcje na podstawie obrazu wejściowego. audio: true jest mapowane na generate_audio. Wartość providerOptions.seed (liczba) jest przekazywana dalej.
Wymaga pluginu @openclaw/byteplus-modelark (zewnętrznego, niedołączonego). Identyfikator dostawcy: byteplus-seedance2. Modele: dreamina-seedance-2-0-260128, dreamina-seedance-2-0-fast-260128.Korzysta z ujednoliconego API content[]. Obsługuje maksymalnie 9 obrazów referencyjnych, 3 filmy referencyjne i 3 dźwięki referencyjne. Wszystkie wejścia muszą być zdalnymi adresami URL https://. Ustaw role dla każdego zasobu — obsługiwane wartości: "first_frame", "last_frame", "reference_image", "reference_video", "reference_audio".aspectRatio: "adaptive" automatycznie wykrywa proporcje na podstawie obrazu wejściowego. audio: true jest mapowane na generate_audio. Wartość providerOptions.seed (liczba) jest przekazywana dalej.
Lokalne wykonywanie lub wykonywanie w chmurze oparte na przepływach pracy. Obsługuje generowanie tekstu do wideo oraz obrazu do wideo za pomocą skonfigurowanego grafu.
Używa przepływu opartego na kolejce do zadań długotrwałych. OpenClaw domyślnie czeka do 20 minut, zanim uzna trwające zadanie w kolejce fal za przekraczające limit czasu. Większość modeli wideo fal przyjmuje jedno odwołanie do obrazu. Modele Seedance 2.0 generujące wideo na podstawie materiałów referencyjnych przyjmują do 9 obrazów, 3 filmów i 3 materiałów audio, przy czym łączna liczba plików referencyjnych nie może przekraczać 12.
Obsługuje jedno odwołanie do obrazu lub filmu. Żądania wygenerowania dźwięku są ignorowane z ostrzeżeniem w ścieżce API Gemini, ponieważ to API odrzuca parametr generateAudio dla bieżącego generowania wideo za pomocą Veo.
Obsługuje tylko jedno odwołanie do obrazu. MiniMax przyjmuje rozdzielczości 768P i 1080P; żądania takie jak 720P są przed wysłaniem normalizowane do najbliższej obsługiwanej wartości.
Przekazywane jest tylko nadpisanie size. Inne nadpisania stylu (aspectRatio, resolution, audio, watermark) są ignorowane z ostrzeżeniem.
Używa asynchronicznego API /videos usługi OpenRouter. OpenClaw wysyła zadanie, cyklicznie sprawdza polling_url i pobiera zasób z unsigned_urls albo z udokumentowanego punktu końcowego zawartości zadania. Dołączony domyślny model google/veo-3.1-fast deklaruje czasy trwania 4/6/8 sekund, rozdzielczości 720P/1080P oraz proporcje obrazu 16:9/9:16.
Używa tego samego zaplecza DashScope co Alibaba. Dane referencyjne muszą być zdalnymi adresami URL http(s); pliki lokalne są odrzucane przed rozpoczęciem.
Obsługuje pliki lokalne za pomocą identyfikatorów URI danych. Generowanie wideo na podstawie wideo wymaga runway/gen4_aleph. Uruchomienia wyłącznie na podstawie tekstu udostępniają proporcje obrazu 16:9 i 9:16.
Obsługuje tylko jedno odwołanie do obrazu.
Używa bezpośrednio https://www.vydra.ai/api/v1, aby uniknąć przekierowań usuwających dane uwierzytelniające. veo3 jest dołączony wyłącznie do generowania tekstu do wideo; kling wymaga zdalnego adresu URL obrazu.
Domyślny model grok-imagine-video obsługuje generowanie tekstu do wideo, generowanie obrazu do wideo na podstawie pojedynczego obrazu pierwszej klatki, do 7 danych wejściowych reference_image przez reference_images xAI oraz zdalne przepływy edycji i rozszerzania wideo. Generowanie domyślnie odbywa się w 480P; generowanie obrazu do wideo z pojedynczego obrazu dziedziczy proporcje źródła, gdy pominięto aspectRatio. Edycja i rozszerzanie wideo dziedziczą geometrię wejściową i nie przyjmują nadpisań proporcji obrazu ani rozdzielczości. Rozszerzanie przyjmuje wartości od 2 do 10 sekund.grok-imagine-video-1.5 obsługuje wyłącznie generowanie obrazu do wideo: podaj dokładnie jeden obraz. Obsługuje czas od 1 do 15 sekund oraz 480P, 720P lub 1080P, domyślnie używając 480P; pomiń aspectRatio, aby odziedziczyć proporcje obrazu źródłowego. Identyfikatory wersji zapoznawczej i wersji 1.5 z datą podlegają tej samej walidacji i są przekazywane bez zmian.

Tryby możliwości dostawców

Wspólny kontrakt generowania wideo obsługuje możliwości zależne od trybu zamiast wyłącznie płaskich limitów zbiorczych. Nowe implementacje dostawców powinny preferować jawne bloki trybów:
Płaskie pola zbiorcze, takie jak maxInputImages i maxInputVideos, nie wystarczają do deklarowania obsługi trybów przekształcania. Dostawcy powinni jawnie deklarować generate, imageToVideo i videoToVideo, aby testy na żywo, testy kontraktowe i wspólne narzędzie video_generate mogły deterministycznie weryfikować obsługę trybów. Gdy jeden model dostawcy obsługuje więcej danych referencyjnych niż pozostałe, użyj maxInputImagesByModel, maxInputVideosByModel lub maxInputAudiosByModel zamiast zwiększać limit dla całego trybu.

Testy na żywo

Opcjonalne pokrycie testami na żywo dla wspólnych dołączonych dostawców:
Skrypt opakowujący repozytorium:
Ten plik testów na żywo domyślnie używa już wyeksportowanych zmiennych środowiskowych dostawców przed zapisanymi profilami uwierzytelniania i domyślnie przeprowadza bezpieczny dla wydania test dymny:
  • generate dla każdego dostawcy innego niż FAL objętego przebiegiem testowym.
  • Jednosekundowe polecenie z homarem.
  • Limit czasu operacji dla każdego dostawcy określony przez OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS (domyślnie 180000).
FAL jest opcjonalny, ponieważ opóźnienie kolejki po stronie dostawcy może zdominować czas wydania:
Ustaw OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1, aby uruchomić również zadeklarowane tryby przekształcania, które wspólny przebieg testowy może bezpiecznie wykonać przy użyciu lokalnych multimediów:
  • imageToVideo, gdy capabilities.imageToVideo.enabled.
  • videoToVideo, gdy capabilities.videoToVideo.enabled, a dostawca/model przyjmuje lokalne wejście wideo oparte na buforze we wspólnym przebiegu testowym.
Obecnie wspólna ścieżka testów na żywo videoToVideo obejmuje tylko runway, gdy wybierzesz runway/gen4_aleph.

Konfiguracja

Ustaw domyślny model generowania wideo w konfiguracji OpenClaw:
Lub za pomocą CLI:

Powiązane materiały