{
  "aboutHtml": "<p>Jeden rezultat audiowizualny z opisu multimodalnego</p><p>MiniMax H3 to wszechmodalny system wideo MiniMax. Łącznie interpretuje tekst, obrazy, wideo i dźwięk, a następnie generuje film z natywnym dźwiękiem stereo. Producent przedstawia go jako narzędzie do krótkich form twórczych, takich jak wizualizacje produktów, reklamy, animowane plakaty i koncepcje czołówek filmowych, w których związki między materiałami referencyjnymi mają równie duże znaczenie jak opis sceny.</p><p>Udokumentowany system tworzy filmy o długości 4–15 sekund przy 24 klatkach na sekundę, z dźwiękiem stereo 32 kHz. Generowanie H3-Base działa w 768p; pełny proces 2K ponownie generuje ten wynik z wykorzystaniem pierwotnego kontekstu multimodalnego. To więcej niż zwykła zmiana rozmiaru: drugi etap ponownie używa modelu i kontekstu źródłowego do odtworzenia drobnych szczegółów. H3 Max i H3-Context-IR mają odrębne role i limity.</p><p>Tworzenie z tekstu i na podstawie klatek</p><p>Dane wejściowe zawierające wyłącznie tekst opisują całą oś czasu audiowizualnej sceny. Pierwszy obraz zakotwicza początek, ostatni — zakończenie, a dwa obrazy mogą określić oba te punkty. W ujęciu z pierwszej klatki zacznij od kompozycji i tożsamości widocznych na obrazie, a następnie opisz rozwijającą się z nich akcję. Przy przejściu od pierwszej do ostatniej klatki opisz obserwowalny ruch łączący dwa stany, zamiast powtarzać dwa niepowiązane opisy obrazów.</p><p>Praktyczny opis produktu może określać zamknięte opakowanie w pierwszej klatce, otwierającą je dłoń, delikatny ruch kamery i stan końcowy, który trzeba osiągnąć. Zachowaj w dostarczonych klatkach kształt przedmiotu, położenie etykiety i oświetlenie. Tworzenie na podstawie klatek i tworzenie z referencjami są odrębnymi trybami wejściowymi; interfejs producenta nie łączy ról pierwszej i ostatniej klatki z rolami mediów referencyjnych w jednym żądaniu.</p><p>Generowanie i edycja z referencjami</p><p>Tryb referencyjny przyjmuje tekst wraz z obrazami, klipami wideo i klipami audio. Określ wkład każdego źródła: wygląd postaci, lokalizację, ruch kamery, strukturę czasową klipu źródłowego lub głos. Film używany wyłącznie jako wzorzec ruchu kamery różni się od filmu, który ma być faktycznie edytowany lub kontynuowany. Jasno określ tę zależność.</p><p>Przewodnik referencyjny producenta rozdziela definicje obiektów i postaci, podsumowanie zadania, analizę elementów do zachowania, szczegółowy opis ujęcia, ogólną warstwę dźwiękową i muzykę w tle słyszalną tylko dla widzów. Odróżnia zachowanie widocznej treści od przenoszenia cech lub ogólnej referencji stylu. W przypadku audio kopiowanie sygnału różni się od odwołania do barwy, rytmu czy sposobu wypowiedzi. Utrzymuj te role spójnie w całym opisie.</p><p>Do sceny opartej na referencjach dostarcz obraz postaci, krótką referencję ruchu kamery i dźwiękową referencję głosu, a następnie opisz, gdzie każda z nich ma wpływać na docelowe ujęcie. Określ, które szczegóły ubrania, otoczenia lub przedmiotu muszą pozostać rozpoznawalne. Porównaj gotowy klip z tymi wymaganiami, uwzględniając ciągłość ruchu i związek między widocznym mówcą a słyszanym głosem.</p><p>Mowa, dźwięk i czas ujęć</p><p>H3 wspólnie modeluje dialog, dźwięki fizyczne, odgłosy otoczenia i muzykę. Karta modelu dokumentuje stabilną obsługę dialogu po arabsku, chińsku, angielsku, francusku, niemiecku, włosku, japońsku, koreańsku, portugalsku, rosyjsku i hiszpańsku; wsparcie dla pozostałych języków określono jako zróżnicowane. Podaj dokładne wypowiadane słowa i język, zachowując stałą tożsamość mówcy między ujęciami.</p><p>Przewodniki producenta dotyczące promptów używają angielskiego w częściach opisowych, zachowując dialog i widoczny tekst w ich oryginalnym języku. Treść mówiona korzysta z zapisu <code>&lt;d&gt;[Language] ...&lt;/d&gt;</code>, a tożsamość mówcy i opis głosu znajdują się poza tym blokiem. Odróżnij mowę postaci od narracji spoza kadru i wskaż, kiedy kwestia trwa przez cięcie lub urywa się wraz z końcem. Dokładnie zachowaj również widoczny tekst. Dopasuj ilość mowy do wybranego czasu trwania i sprawdź łącznie wyświetlone słowa oraz słyszaną kwestię.</p><p>Opisuj ruch kamery jako działanie, podając zakres i szybkość, gdy mają znaczenie. Numeruj ujęcia w kolejności odtwarzania i utrzymuj czasy cięć w granicach długości filmu. Oddziel dźwięki sceny, takie jak kroki lub zamykanie drzwi, od podkładu muzycznego słyszalnego tylko dla widzów. Dzięki tym wyborom krótki plan ujęć jest łatwiejszy do zinterpretowania i porównania z wynikiem.</p><p>Przygotowanie danych wejściowych i limity liczbowe</p><p>Obecny schemat generowania wymaga niepustego tekstu w każdym trybie, z limitem 7000 znaków na element tekstowy. Obrazy mogą mieć format JPG, JPEG, PNG, WebP, HEIC lub HEIF, do 30 MB każdy, każdy bok od 256 do 5760 pikseli i proporcje od 0.4 do 2.5. Wejście klatkowe dopuszcza jeden obraz początkowy i jeden końcowy; tryb referencyjny — maksymalnie dziewięć obrazów referencyjnych.</p><p>Referencje wideo mogą obejmować maksymalnie trzy klipy MP4 lub MOV, każdy o długości 2–15 sekund, łącznie nie więcej niż 15 sekund. Klip może mieć do 50 MB; jego kodek wideo to H.264 lub H.265, z dźwiękiem AAC lub MP3, bokami od 256 do 5760 pikseli, proporcjami od 0.4 do 2.5 i liczbą klatek od 23.976 do 60 na sekundę. Referencje audio obsługują maksymalnie trzy klipy WAV lub MP3, do 15 MB każdy, każdy o długości 2–15 sekund i łącznie nie więcej niż 15 sekund. Karta modelu ogranicza mieszane referencje wejściowe do 12 plików. Udokumentowany limit treści żądania wynosi 64 MB i jest odrębny od limitów pojedynczych plików.</p><p>Wybieraj tylko referencje wnoszące coś do opisu i jasno określ wkład każdej z nich. Czytelny widok obiektu lub postaci jest bardziej przydatny niż kilka sprzecznych widoków bez wyjaśnienia. Zachowaj kolejność referencji, wykadruj nieistotne elementy bez usuwania potrzebnego kontekstu sceny i sprawdź, czy krótkie klipy źródłowe zawierają żądaną akcję lub cechę głosu.</p><p>Format wyniku i kompletny system</p><p>Interfejs H3 producenta oferuje 768P i 2K. Generowanie wyłącznie z tekstu wymaga konkretnych proporcji: 21:9, 16:9, 4:3, 1:1, 3:4 lub 9:16. Tworzenie z pierwszej i ostatniej klatki przyjmuje proporcje obrazu wejściowego; tworzenie z referencjami może korzystać z proporcji adaptacyjnych lub wskazanych wprost. Całkowita liczba sekund wyniku mieści się w zakresie 4–15.</p><p>Karta modelu wyróżnia H3-Context-IR, który interpretuje i wzbogaca opis, H3-Base, który generuje treść audiowizualną, oraz H3-Regenerate-2K, który tworzy wynik o wyższej rozdzielczości. Udostępnione bazowe punkty kontrolne rozdzielają zadania oparte na klatkach i zadania z wieloma rodzajami referencji. Komponenty kontekstu i ponownego generowania są odrębne od tych bazowych wag, dlatego sama nazwa otwartego punktu kontrolnego nie określa zachowania całego systemu.</p><p>Proces generowania producenta jest asynchroniczny. Interfejs odpytywania zadań pobiera zadania z poprzednich siedmiu dni. Zachowaj identyfikator zadania do czasu zwrócenia rzeczywistego filmu, a następnie zapisz klip zamiast przechowywać wyłącznie czasowy adres pobierania. Oceń tożsamość wizualną, drobny tekst, interakcje przedmiotów, treść mówioną i synchronizację dźwięku w docelowym rozmiarze wyświetlania. Producent wskazuje rozumienie multimodalne i drobne szczegóły wizualne jako obszary dalszych ulepszeń; szczegółowy opis i porównanie ze źródłami pozostają kluczowe dla użytecznego rezultatu.</p>",
  "aboutText": "Jeden rezultat audiowizualny z opisu multimodalnego\n\nMiniMax H3 to wszechmodalny system wideo MiniMax. Łącznie interpretuje tekst, obrazy, wideo i dźwięk, a następnie generuje film z natywnym dźwiękiem stereo. Producent przedstawia go jako narzędzie do krótkich form twórczych, takich jak wizualizacje produktów, reklamy, animowane plakaty i koncepcje czołówek filmowych, w których związki między materiałami referencyjnymi mają równie duże znaczenie jak opis sceny.\n\nUdokumentowany system tworzy filmy o długości 4–15 sekund przy 24 klatkach na sekundę, z dźwiękiem stereo 32 kHz. Generowanie H3-Base działa w 768p; pełny proces 2K ponownie generuje ten wynik z wykorzystaniem pierwotnego kontekstu multimodalnego. To więcej niż zwykła zmiana rozmiaru: drugi etap ponownie używa modelu i kontekstu źródłowego do odtworzenia drobnych szczegółów. H3 Max i H3-Context-IR mają odrębne role i limity.\n\nTworzenie z tekstu i na podstawie klatek\n\nDane wejściowe zawierające wyłącznie tekst opisują całą oś czasu audiowizualnej sceny. Pierwszy obraz zakotwicza początek, ostatni — zakończenie, a dwa obrazy mogą określić oba te punkty. W ujęciu z pierwszej klatki zacznij od kompozycji i tożsamości widocznych na obrazie, a następnie opisz rozwijającą się z nich akcję. Przy przejściu od pierwszej do ostatniej klatki opisz obserwowalny ruch łączący dwa stany, zamiast powtarzać dwa niepowiązane opisy obrazów.\n\nPraktyczny opis produktu może określać zamknięte opakowanie w pierwszej klatce, otwierającą je dłoń, delikatny ruch kamery i stan końcowy, który trzeba osiągnąć. Zachowaj w dostarczonych klatkach kształt przedmiotu, położenie etykiety i oświetlenie. Tworzenie na podstawie klatek i tworzenie z referencjami są odrębnymi trybami wejściowymi; interfejs producenta nie łączy ról pierwszej i ostatniej klatki z rolami mediów referencyjnych w jednym żądaniu.\n\nGenerowanie i edycja z referencjami\n\nTryb referencyjny przyjmuje tekst wraz z obrazami, klipami wideo i klipami audio. Określ wkład każdego źródła: wygląd postaci, lokalizację, ruch kamery, strukturę czasową klipu źródłowego lub głos. Film używany wyłącznie jako wzorzec ruchu kamery różni się od filmu, który ma być faktycznie edytowany lub kontynuowany. Jasno określ tę zależność.\n\nPrzewodnik referencyjny producenta rozdziela definicje obiektów i postaci, podsumowanie zadania, analizę elementów do zachowania, szczegółowy opis ujęcia, ogólną warstwę dźwiękową i muzykę w tle słyszalną tylko dla widzów. Odróżnia zachowanie widocznej treści od przenoszenia cech lub ogólnej referencji stylu. W przypadku audio kopiowanie sygnału różni się od odwołania do barwy, rytmu czy sposobu wypowiedzi. Utrzymuj te role spójnie w całym opisie.\n\nDo sceny opartej na referencjach dostarcz obraz postaci, krótką referencję ruchu kamery i dźwiękową referencję głosu, a następnie opisz, gdzie każda z nich ma wpływać na docelowe ujęcie. Określ, które szczegóły ubrania, otoczenia lub przedmiotu muszą pozostać rozpoznawalne. Porównaj gotowy klip z tymi wymaganiami, uwzględniając ciągłość ruchu i związek między widocznym mówcą a słyszanym głosem.\n\nMowa, dźwięk i czas ujęć\n\nH3 wspólnie modeluje dialog, dźwięki fizyczne, odgłosy otoczenia i muzykę. Karta modelu dokumentuje stabilną obsługę dialogu po arabsku, chińsku, angielsku, francusku, niemiecku, włosku, japońsku, koreańsku, portugalsku, rosyjsku i hiszpańsku; wsparcie dla pozostałych języków określono jako zróżnicowane. Podaj dokładne wypowiadane słowa i język, zachowując stałą tożsamość mówcy między ujęciami.\n\nPrzewodniki producenta dotyczące promptów używają angielskiego w częściach opisowych, zachowując dialog i widoczny tekst w ich oryginalnym języku. Treść mówiona korzysta z zapisu `<d>[Language] ...</d>`, a tożsamość mówcy i opis głosu znajdują się poza tym blokiem. Odróżnij mowę postaci od narracji spoza kadru i wskaż, kiedy kwestia trwa przez cięcie lub urywa się wraz z końcem. Dokładnie zachowaj również widoczny tekst. Dopasuj ilość mowy do wybranego czasu trwania i sprawdź łącznie wyświetlone słowa oraz słyszaną kwestię.\n\nOpisuj ruch kamery jako działanie, podając zakres i szybkość, gdy mają znaczenie. Numeruj ujęcia w kolejności odtwarzania i utrzymuj czasy cięć w granicach długości filmu. Oddziel dźwięki sceny, takie jak kroki lub zamykanie drzwi, od podkładu muzycznego słyszalnego tylko dla widzów. Dzięki tym wyborom krótki plan ujęć jest łatwiejszy do zinterpretowania i porównania z wynikiem.\n\nPrzygotowanie danych wejściowych i limity liczbowe\n\nObecny schemat generowania wymaga niepustego tekstu w każdym trybie, z limitem 7000 znaków na element tekstowy. Obrazy mogą mieć format JPG, JPEG, PNG, WebP, HEIC lub HEIF, do 30 MB każdy, każdy bok od 256 do 5760 pikseli i proporcje od 0.4 do 2.5. Wejście klatkowe dopuszcza jeden obraz początkowy i jeden końcowy; tryb referencyjny — maksymalnie dziewięć obrazów referencyjnych.\n\nReferencje wideo mogą obejmować maksymalnie trzy klipy MP4 lub MOV, każdy o długości 2–15 sekund, łącznie nie więcej niż 15 sekund. Klip może mieć do 50 MB; jego kodek wideo to H.264 lub H.265, z dźwiękiem AAC lub MP3, bokami od 256 do 5760 pikseli, proporcjami od 0.4 do 2.5 i liczbą klatek od 23.976 do 60 na sekundę. Referencje audio obsługują maksymalnie trzy klipy WAV lub MP3, do 15 MB każdy, każdy o długości 2–15 sekund i łącznie nie więcej niż 15 sekund. Karta modelu ogranicza mieszane referencje wejściowe do 12 plików. Udokumentowany limit treści żądania wynosi 64 MB i jest odrębny od limitów pojedynczych plików.\n\nWybieraj tylko referencje wnoszące coś do opisu i jasno określ wkład każdej z nich. Czytelny widok obiektu lub postaci jest bardziej przydatny niż kilka sprzecznych widoków bez wyjaśnienia. Zachowaj kolejność referencji, wykadruj nieistotne elementy bez usuwania potrzebnego kontekstu sceny i sprawdź, czy krótkie klipy źródłowe zawierają żądaną akcję lub cechę głosu.\n\nFormat wyniku i kompletny system\n\nInterfejs H3 producenta oferuje 768P i 2K. Generowanie wyłącznie z tekstu wymaga konkretnych proporcji: 21:9, 16:9, 4:3, 1:1, 3:4 lub 9:16. Tworzenie z pierwszej i ostatniej klatki przyjmuje proporcje obrazu wejściowego; tworzenie z referencjami może korzystać z proporcji adaptacyjnych lub wskazanych wprost. Całkowita liczba sekund wyniku mieści się w zakresie 4–15.\n\nKarta modelu wyróżnia H3-Context-IR, który interpretuje i wzbogaca opis, H3-Base, który generuje treść audiowizualną, oraz H3-Regenerate-2K, który tworzy wynik o wyższej rozdzielczości. Udostępnione bazowe punkty kontrolne rozdzielają zadania oparte na klatkach i zadania z wieloma rodzajami referencji. Komponenty kontekstu i ponownego generowania są odrębne od tych bazowych wag, dlatego sama nazwa otwartego punktu kontrolnego nie określa zachowania całego systemu.\n\nProces generowania producenta jest asynchroniczny. Interfejs odpytywania zadań pobiera zadania z poprzednich siedmiu dni. Zachowaj identyfikator zadania do czasu zwrócenia rzeczywistego filmu, a następnie zapisz klip zamiast przechowywać wyłącznie czasowy adres pobierania. Oceń tożsamość wizualną, drobny tekst, interakcje przedmiotów, treść mówioną i synchronizację dźwięku w docelowym rozmiarze wyświetlania. Producent wskazuje rozumienie multimodalne i drobne szczegóły wizualne jako obszary dalszych ulepszeń; szczegółowy opis i porównanie ze źródłami pozostają kluczowe dla użytecznego rezultatu.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "366a94d7128c3649c9554b80cc1fe237382171d488b1a76c1d2f3daf71915bd3",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "pl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">MiniMax: H3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zamknij\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>minimax/hailuo-3</code><button type=\"button\" id=\"copy-id\">Kopiuj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekcje karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Dane wejściowe i metody</button><button type=\"button\" data-card-jump=\"pricing\">Cennik</button><button type=\"button\" data-card-jump=\"examples\">Przykłady</button><button type=\"button\" data-card-jump=\"results\">Wyniki</button><button type=\"button\" data-card-jump=\"aliases\">Aliasy</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metody API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|minimax%2Fhailuo-3\">Wideo</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">MiniMax H3 generuje krótkie filmy z natywnym dźwiękiem stereo na podstawie tekstu, obrazów klatek lub referencji multimodalnych. Obsługuje tworzenie z pierwszej i ostatniej klatki, edycję z referencjami oraz zależności dotyczące ruchu lub głosu, oferując wynik o długości 4–15 sekund i odrębny proces ponownego generowania w 2K.</p><dl class=\"card-io\" data-card-io><div><dt>Akceptowane dane wejściowe</dt><dd>Tekst · Obrazy · Audio · Wideo</dd></div><div><dt>Wyniki</dt><dd>Wideo</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.</p><div class=\"mabout\" id=\"m-about\"><p>Jeden rezultat audiowizualny z opisu multimodalnego</p><p>MiniMax H3 to wszechmodalny system wideo MiniMax. Łącznie interpretuje tekst, obrazy, wideo i dźwięk, a następnie generuje film z natywnym dźwiękiem stereo. Producent przedstawia go jako narzędzie do krótkich form twórczych, takich jak wizualizacje produktów, reklamy, animowane plakaty i koncepcje czołówek filmowych, w których związki między materiałami referencyjnymi mają równie duże znaczenie jak opis sceny.</p><p>Udokumentowany system tworzy filmy o długości 4–15 sekund przy 24 klatkach na sekundę, z dźwiękiem stereo 32 kHz. Generowanie H3-Base działa w 768p; pełny proces 2K ponownie generuje ten wynik z wykorzystaniem pierwotnego kontekstu multimodalnego. To więcej niż zwykła zmiana rozmiaru: drugi etap ponownie używa modelu i kontekstu źródłowego do odtworzenia drobnych szczegółów. H3 Max i H3-Context-IR mają odrębne role i limity.</p><p>Tworzenie z tekstu i na podstawie klatek</p><p>Dane wejściowe zawierające wyłącznie tekst opisują całą oś czasu audiowizualnej sceny. Pierwszy obraz zakotwicza początek, ostatni — zakończenie, a dwa obrazy mogą określić oba te punkty. W ujęciu z pierwszej klatki zacznij od kompozycji i tożsamości widocznych na obrazie, a następnie opisz rozwijającą się z nich akcję. Przy przejściu od pierwszej do ostatniej klatki opisz obserwowalny ruch łączący dwa stany, zamiast powtarzać dwa niepowiązane opisy obrazów.</p><p>Praktyczny opis produktu może określać zamknięte opakowanie w pierwszej klatce, otwierającą je dłoń, delikatny ruch kamery i stan końcowy, który trzeba osiągnąć. Zachowaj w dostarczonych klatkach kształt przedmiotu, położenie etykiety i oświetlenie. Tworzenie na podstawie klatek i tworzenie z referencjami są odrębnymi trybami wejściowymi; interfejs producenta nie łączy ról pierwszej i ostatniej klatki z rolami mediów referencyjnych w jednym żądaniu.</p><p>Generowanie i edycja z referencjami</p><p>Tryb referencyjny przyjmuje tekst wraz z obrazami, klipami wideo i klipami audio. Określ wkład każdego źródła: wygląd postaci, lokalizację, ruch kamery, strukturę czasową klipu źródłowego lub głos. Film używany wyłącznie jako wzorzec ruchu kamery różni się od filmu, który ma być faktycznie edytowany lub kontynuowany. Jasno określ tę zależność.</p><p>Przewodnik referencyjny producenta rozdziela definicje obiektów i postaci, podsumowanie zadania, analizę elementów do zachowania, szczegółowy opis ujęcia, ogólną warstwę dźwiękową i muzykę w tle słyszalną tylko dla widzów. Odróżnia zachowanie widocznej treści od przenoszenia cech lub ogólnej referencji stylu. W przypadku audio kopiowanie sygnału różni się od odwołania do barwy, rytmu czy sposobu wypowiedzi. Utrzymuj te role spójnie w całym opisie.</p><p>Do sceny opartej na referencjach dostarcz obraz postaci, krótką referencję ruchu kamery i dźwiękową referencję głosu, a następnie opisz, gdzie każda z nich ma wpływać na docelowe ujęcie. Określ, które szczegóły ubrania, otoczenia lub przedmiotu muszą pozostać rozpoznawalne. Porównaj gotowy klip z tymi wymaganiami, uwzględniając ciągłość ruchu i związek między widocznym mówcą a słyszanym głosem.</p><p>Mowa, dźwięk i czas ujęć</p><p>H3 wspólnie modeluje dialog, dźwięki fizyczne, odgłosy otoczenia i muzykę. Karta modelu dokumentuje stabilną obsługę dialogu po arabsku, chińsku, angielsku, francusku, niemiecku, włosku, japońsku, koreańsku, portugalsku, rosyjsku i hiszpańsku; wsparcie dla pozostałych języków określono jako zróżnicowane. Podaj dokładne wypowiadane słowa i język, zachowując stałą tożsamość mówcy między ujęciami.</p><p>Przewodniki producenta dotyczące promptów używają angielskiego w częściach opisowych, zachowując dialog i widoczny tekst w ich oryginalnym języku. Treść mówiona korzysta z zapisu <code>&lt;d&gt;[Language] ...&lt;/d&gt;</code>, a tożsamość mówcy i opis głosu znajdują się poza tym blokiem. Odróżnij mowę postaci od narracji spoza kadru i wskaż, kiedy kwestia trwa przez cięcie lub urywa się wraz z końcem. Dokładnie zachowaj również widoczny tekst. Dopasuj ilość mowy do wybranego czasu trwania i sprawdź łącznie wyświetlone słowa oraz słyszaną kwestię.</p><p>Opisuj ruch kamery jako działanie, podając zakres i szybkość, gdy mają znaczenie. Numeruj ujęcia w kolejności odtwarzania i utrzymuj czasy cięć w granicach długości filmu. Oddziel dźwięki sceny, takie jak kroki lub zamykanie drzwi, od podkładu muzycznego słyszalnego tylko dla widzów. Dzięki tym wyborom krótki plan ujęć jest łatwiejszy do zinterpretowania i porównania z wynikiem.</p><p>Przygotowanie danych wejściowych i limity liczbowe</p><p>Obecny schemat generowania wymaga niepustego tekstu w każdym trybie, z limitem 7000 znaków na element tekstowy. Obrazy mogą mieć format JPG, JPEG, PNG, WebP, HEIC lub HEIF, do 30 MB każdy, każdy bok od 256 do 5760 pikseli i proporcje od 0.4 do 2.5. Wejście klatkowe dopuszcza jeden obraz początkowy i jeden końcowy; tryb referencyjny — maksymalnie dziewięć obrazów referencyjnych.</p><p>Referencje wideo mogą obejmować maksymalnie trzy klipy MP4 lub MOV, każdy o długości 2–15 sekund, łącznie nie więcej niż 15 sekund. Klip może mieć do 50 MB; jego kodek wideo to H.264 lub H.265, z dźwiękiem AAC lub MP3, bokami od 256 do 5760 pikseli, proporcjami od 0.4 do 2.5 i liczbą klatek od 23.976 do 60 na sekundę. Referencje audio obsługują maksymalnie trzy klipy WAV lub MP3, do 15 MB każdy, każdy o długości 2–15 sekund i łącznie nie więcej niż 15 sekund. Karta modelu ogranicza mieszane referencje wejściowe do 12 plików. Udokumentowany limit treści żądania wynosi 64 MB i jest odrębny od limitów pojedynczych plików.</p><p>Wybieraj tylko referencje wnoszące coś do opisu i jasno określ wkład każdej z nich. Czytelny widok obiektu lub postaci jest bardziej przydatny niż kilka sprzecznych widoków bez wyjaśnienia. Zachowaj kolejność referencji, wykadruj nieistotne elementy bez usuwania potrzebnego kontekstu sceny i sprawdź, czy krótkie klipy źródłowe zawierają żądaną akcję lub cechę głosu.</p><p>Format wyniku i kompletny system</p><p>Interfejs H3 producenta oferuje 768P i 2K. Generowanie wyłącznie z tekstu wymaga konkretnych proporcji: 21:9, 16:9, 4:3, 1:1, 3:4 lub 9:16. Tworzenie z pierwszej i ostatniej klatki przyjmuje proporcje obrazu wejściowego; tworzenie z referencjami może korzystać z proporcji adaptacyjnych lub wskazanych wprost. Całkowita liczba sekund wyniku mieści się w zakresie 4–15.</p><p>Karta modelu wyróżnia H3-Context-IR, który interpretuje i wzbogaca opis, H3-Base, który generuje treść audiowizualną, oraz H3-Regenerate-2K, który tworzy wynik o wyższej rozdzielczości. Udostępnione bazowe punkty kontrolne rozdzielają zadania oparte na klatkach i zadania z wieloma rodzajami referencji. Komponenty kontekstu i ponownego generowania są odrębne od tych bazowych wag, dlatego sama nazwa otwartego punktu kontrolnego nie określa zachowania całego systemu.</p><p>Proces generowania producenta jest asynchroniczny. Interfejs odpytywania zadań pobiera zadania z poprzednich siedmiu dni. Zachowaj identyfikator zadania do czasu zwrócenia rzeczywistego filmu, a następnie zapisz klip zamiast przechowywać wyłącznie czasowy adres pobierania. Oceń tożsamość wizualną, drobny tekst, interakcje przedmiotów, treść mówioną i synchronizację dźwięku w docelowym rozmiarze wyświetlania. Producent wskazuje rozumienie multimodalne i drobne szczegóły wizualne jako obszary dalszych ulepszeń; szczegółowy opis i porównanie ze źródłami pozostają kluczowe dla użytecznego rezultatu.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostępne w Ailoot · dane wejściowe i metody</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Wideo</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Wejście</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>Wyjście</dt><dd><code>video</code></dd></div><div><dt>Format wyjściowy</dt><dd>oryginalne bajty MP4; bez normalizacji i transkodowania</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Wymaganie</th><th>Wartości i limity</th><th>Domyślnie</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>minimax/hailuo-3</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Minimum: 1</div><div>Maksimum: 600</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>2K</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>21:9, 16:9, 4:3, 1:1, 3:4, 9:16</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>false, true</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>array</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>Minimalna liczba elementów: 1</div><div>Maksymalna liczba elementów: 2</div><div>Treść wejściowa: Tablica obiektów klatek. Każdy obiekt zawiera type=image_url, image_url z polem url oraz frame_type. Użyj adresu URL obrazu przez HTTPS i ustaw frame_type na first_frame lub last_frame. Każda rola klatki może wystąpić najwyżej raz.</div><div>Dokładne klucze: type, image_url, frame_type</div><div>Warunki: Te klucze opisują każdy obiekt klatki; image_url zawiera wyłącznie url. Pomiń frame_images w żądaniu zawierającym wyłącznie tekst.</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>array</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>Wzorzec: ^https://</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacje materiałów wejściowych</summary><p class=\"note-s\"><b>Tekst na wideo</b> · Prompt tekstowy. · Wymagane: model, prompt, duration</p><p class=\"note-s\"><code>Podaj prompt jako tekst, a czas trwania jako pełne sekundy. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maksymalna liczba bajtów UTF-8: 10 000 · Wymagana treść inna niż białe znaki: Tak</p><p class=\"note-s\"><b>Obraz na wideo</b> · Prompt tekstowy i obraz pierwszej klatki. · Wymagane: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images to tablica. Każdy obiekt klatki zawiera type, image_url i frame_type; image_url zawiera url. Ustaw type na image_url. Użyj first_frame z opcjonalnym last_frame. Każda rola klatki może wystąpić najwyżej raz. Dla każdej klatki podaj publiczny URL obrazu przez HTTPS. W jednym żądaniu używaj obrazów klatek albo obrazów referencyjnych; nie łącz obu. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.</code></p><p class=\"note-s\">Dokładne klucze: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maksymalna liczba bajtów UTF-8: 10 000 · Wymagana treść inna niż białe znaki: Tak</p><p class=\"note-s\"><b>Reference to video</b> · Prompt tekstowy oraz obsługiwane materiały referencyjne w postaci obrazów, wideo i dźwięku. · Wymagane: model, prompt, duration, input_references</p><p class=\"note-s\"><code>input_references to tablica obiektów. Ustaw type na image_url, video_url lub audio_url i użyj odpowiadającego mu pola zawierającego url. Używaj publicznych adresów URL przez HTTPS. Pomiń frame_images, aby wybrać tryb materiałów referencyjnych. Oszacowanie uwzględnia wyświetlaną składową za obraz wyłącznie dla obrazów referencyjnych po pierwszych pięciu. Końcowa opłata odpowiada faktycznie rozliczonej konfiguracji. Nie łącz obrazów referencyjnych z obrazami klatek. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maksymalna liczba bajtów UTF-8: 10 000 · Wymagana treść inna niż białe znaki: Tak</p></details><details class=\"note-s\" data-method-contract><summary>Parametry i cykl życia metody</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Kontrakt</th></tr></thead><tbody><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>content_type</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>application/json</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>required</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_types</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>additional_properties</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>false</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>optional_controls</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Cykl życia: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cennik</h3><div class=\"card-result-process\" data-billing-basis><h5>Jak obliczana jest ostateczna opłata</h5><p class=\"note-s\">Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.</p><dl data-price-conditions><dt>Tryb szybki</dt><dd>Nie określono <span class=\"note-s\">Gdy wybrany jest tryb szybki</span></dd><dt>Tryb flex</dt><dd>Nie określono <span class=\"note-s\">Gdy wybrany jest tryb flex</span></dd><dt>Maksymalna intensywność rozumowania</dt><dd>Nie określono <span class=\"note-s\">Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Szacunkowe stawki do porównania</h4><h4>Ceny według konfiguracji</h4><p class=\"note-s\">Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguracja</th><th>Tabela stawek</th><th>Przewidywana ilość</th><th>Jednostka rozliczeniowa</th><th>Warunki rozliczania</th><th>Opłata</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Bazowe stawki za tokeny</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>Stawka podstawowa</td><td data-cell-label=\"Przewidywana ilość\"><span class=\"card-cell-label\">Przewidywana ilość</span>—</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>—</td><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>—</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · Tokeny wejściowe · Szacunek tylko do porównania</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Odczyt cache · Szacunek tylko do porównania</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Zapis do cache · Szacunek tylko do porównania</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div></td></tr><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Cena wideo</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>—</td><td data-cell-label=\"Przewidywana ilość\"><span class=\"card-cell-label\">Przewidywana ilość</span>—</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>za sekundę wideo</td><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>W tym kluczu cenowym nie zadeklarowano dodatkowego warunku.</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wyjście · Cena wideo · Szacunek tylko do porównania</span> <b>$0.26</b> <span class=\"price-unit\">za sekundę wideo</span></div></td></tr><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>obraz referencyjny</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>—</td><td data-cell-label=\"Przewidywana ilość\"><span class=\"card-cell-label\">Przewidywana ilość</span>—</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>za obraz referencyjny</td><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>—</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · obraz referencyjny · Szacunek tylko do porównania</span> <b>$0.08</b> <span class=\"price-unit\">za obraz referencyjny</span></div></td></tr><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Szacowany koszt generowania</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>—</td><td data-cell-label=\"Przewidywana ilość\"><span class=\"card-cell-label\">Przewidywana ilość</span>szacunek dla jednego generowania</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>—</td><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>—</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania</span> <b>$1.3</b> <span class=\"price-unit\">szacunek przed generowaniem</span></div><p class=\"note-s\">Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. <a href=\"/docs/pl/billing/reserve/\">Jak działają rezerwacja i rozliczenie →</a></p><div data-declared-reference-pricing><h4>Szczegóły taryfy referencyjnej</h4><p class=\"note-s\">Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Referencje cenowe konfiguracji wideo</summary><h4>Ceny według konfiguracji</h4><p class=\"note-s\">Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguracja</th><th>Warunki rozliczania</th><th>Opłata</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Cena wideo</th><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>W tym kluczu cenowym nie zadeklarowano dodatkowego warunku.</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wyjście · Cena wideo</span> <b>$0.26</b> <span class=\"price-unit\">za sekundę wideo</span></div><p class=\"note-s\">Opublikowana cena referencyjna dla pokazanej konfiguracji. Ostateczne opłaty wynikają z faktycznie rozliczonej konfiguracji.</p></td></tr><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Obrazy referencyjne po pierwszych pięciu</th><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>W tym kluczu cenowym nie zadeklarowano dodatkowego warunku.</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · Obrazy referencyjne po pierwszych pięciu</span> <b>$0.08</b> <span class=\"price-unit\">za obraz</span></div><p class=\"note-s\">Pierwszych pięć obrazów referencyjnych jest bezpłatnych; podana stawka za obraz obowiązuje po pierwszych pięciu. Opublikowana referencja cenowa dotyczy pokazanej konfiguracji. Końcowe opłaty odpowiadają faktycznie rozliczonej konfiguracji.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Przykładowe żądania</h3><h4>Ailoot Ultra · Wideo</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Warianty kodu\"><button class=\"cg-tab\" id=\"model-code-1866-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1866-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · utwórz film</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiuj kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1866-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1866-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;minimax/hailuo-3&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;2K&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Odbieranie i zapisywanie wyników</h3><h4>Ailoot Ultra · Wideo</h4><p class=\"note-s\">podpisane adresy URL treści należących do użytkownika</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Sprawdź status zadania</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Warianty kodu\"><button class=\"cg-tab\" id=\"model-code-1867-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1867-panel-0\" aria-selected=\"true\" tabindex=\"0\">Pobierz status pierwotnej operacji przez GET</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiuj kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1867-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1867-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Inne odczyty treści</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Warianty kodu\"><button class=\"cg-tab\" id=\"model-code-1868-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1868-panel-0\" aria-selected=\"true\" tabindex=\"0\">Zapisz każdy ukończony wynik, który należy do Ciebie</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiuj kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1868-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1868-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Zachowaj wszystkie ukończone wyniki</h5><p class=\"note-s\">Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.</p><p class=\"note-s\">Zachowaj wszystkie faktyczne wyniki należące do użytkownika oraz zwrócone metadane pomiarowe.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jeśli trzeba sprawdzić pierwotną odpowiedź</h5><p class=\"note-s\">503 result_pending_check + pierwotne id + X-Should-Retry:false; nigdy nie ponawiaj pierwotnego żądania</p></div><details class=\"card-about\" data-output-fields><summary>Pola odpowiedzi</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Pole</th><th>Typ</th><th>Znaczenie</th></tr></thead><tbody><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Pozycja tego wideo na liście wyników, liczona od zera.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Podpisany URL HTTPS do pobrania tego ukończonego wideo.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Skrót SHA-256 oryginalnych bajtów wideo; null, jeśli jest niedostępny.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Rozmiar oryginalnego pliku wideo w bajtach; null, jeśli jest niedostępny.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Zmierzony czas trwania wideo w milisekundach; null, jeśli jest niedostępny.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Szerokość wideo w pikselach; null, jeśli jest niedostępna.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Wysokość wideo w pikselach; null, jeśli jest niedostępna.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Identyfikator kodeka wideo; null, jeśli go nie zapisano.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>boolean | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Czy wideo zawiera ścieżkę dźwiękową; null, jeśli tego nie zmierzono.</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Znaczenie\"><span class=\"card-cell-label\">Znaczenie</span>Identyfikator kodeka dźwięku; null, gdy nie zapisano identyfikatora.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Błędy i dalsze kroki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odpowiedź</th><th>Warunek</th><th>Następny krok</th></tr></thead><tbody><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Nie można uzyskać dostępu do wideo albo nie znaleziono tego identyfikatora wideo.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Sprawdź dostęp do wideo. W przypadku istniejącego wideo użyj jego pierwotnego publicznego identyfikatora i tego samego klucza API.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Klucz API nie odpowiada uwierzytelnionemu kontu.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Sprawdź swój klucz API i dostęp do konta przed wysłaniem.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Nie można odczytać żądania lub indeks pobierania jest nieprawidłowy.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Popraw treść żądania. Przy pobieraniu wybierz indeks wyniku zwrócony przez pierwotne zadanie.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Nie można wycenić wybranej konfiguracji wideo.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Wybierz obsługiwaną konfigurację wideo i uzupełnij jej wymagane opcje przed wysłaniem poprawionego żądania.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Wejściowe wideo lub pierwotne zadanie kontynuacji są nieprawidłowe.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Używaj prawidłowych danych wejściowych przez HTTPS. Do kontynuacji użyj publicznego identyfikatora ukończonego pierwotnego wideo z tym samym kluczem API.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>402 · <code>billing_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Dostępne saldo lub limity nie pozwalają na rezerwację.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Sprawdź dostępne saldo i limity przed wysłaniem nowego żądania.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>503 · <code>server_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Weryfikacja wideo, magazyn lub dostęp do usługi są chwilowo niedostępne.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Poczekaj na dostępność usługi. Jeśli masz już identyfikator wideo, sprawdź to pierwotne zadanie zamiast tworzyć kolejne generowanie.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Wynik pierwotnego wideo i opłata wymagają sprawdzenia.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj zwrócony identyfikator wideo i sprawdzaj to zadanie. Nie wysyłaj zastępczego żądania generowania podczas jego sprawdzania.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Pobieranie istniejącego wideo jest chwilowo niedostępne.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Sprawdź później to samo zadanie wideo i pobierz jego istniejący wynik. Nowe generowanie tworzy osobną operację.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Treść wideo nie została opublikowana.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Sprawdź status pierwotnego zadania. Pobierz wynik po zgłoszeniu completed; jeśli zgłosi failed, postępuj zgodnie z komunikatem dotyczącym sprawdzenia opłaty.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy modelu</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=minimax%2Fhailuo-3&amp;route=Ultra&amp;caller=minimax%2Fhailuo-3&amp;fmt=videos\"><code>minimax/hailuo-3</code></a></span></p><h4>Aliasy ścieżek metod</h4><p class=\"note-s\">Użyj ścieżek metod podanych powyżej.</p><h4>Powiązane ID modeli</h4><p class=\"note-s\"><a href=\"#m=minimax%2Fhailuo-3&amp;route=Ultra&amp;caller=minimax%2Fhailuo-3&amp;fmt=videos\"><code>minimax/hailuo-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "minimax/hailuo-3",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|minimax%2Fhailuo-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Zachowaj wszystkie faktyczne wyniki należące do użytkownika oraz zwrócone metadane pomiarowe.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Nie można uzyskać dostępu do wideo albo nie znaleziono tego identyfikatora wideo.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź dostęp do wideo. W przypadku istniejącego wideo użyj jego pierwotnego publicznego identyfikatora i tego samego klucza API.",
                "type": "not_found_error"
              },
              {
                "condition": "Klucz API nie odpowiada uwierzytelnionemu kontu.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź swój klucz API i dostęp do konta przed wysłaniem.",
                "type": "authentication_error"
              },
              {
                "condition": "Nie można odczytać żądania lub indeks pobierania jest nieprawidłowy.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Popraw treść żądania. Przy pobieraniu wybierz indeks wyniku zwrócony przez pierwotne zadanie.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Nie można wycenić wybranej konfiguracji wideo.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Wybierz obsługiwaną konfigurację wideo i uzupełnij jej wymagane opcje przed wysłaniem poprawionego żądania.",
                "type": "price_unavailable"
              },
              {
                "condition": "Wejściowe wideo lub pierwotne zadanie kontynuacji są nieprawidłowe.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Używaj prawidłowych danych wejściowych przez HTTPS. Do kontynuacji użyj publicznego identyfikatora ukończonego pierwotnego wideo z tym samym kluczem API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Dostępne saldo lub limity nie pozwalają na rezerwację.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź dostępne saldo i limity przed wysłaniem nowego żądania.",
                "type": "billing_error"
              },
              {
                "condition": "Weryfikacja wideo, magazyn lub dostęp do usługi są chwilowo niedostępne.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Poczekaj na dostępność usługi. Jeśli masz już identyfikator wideo, sprawdź to pierwotne zadanie zamiast tworzyć kolejne generowanie.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Wynik pierwotnego wideo i opłata wymagają sprawdzenia.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Zachowaj zwrócony identyfikator wideo i sprawdzaj to zadanie. Nie wysyłaj zastępczego żądania generowania podczas jego sprawdzania.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Pobieranie istniejącego wideo jest chwilowo niedostępne.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Sprawdź później to samo zadanie wideo i pobierz jego istniejący wynik. Nowe generowanie tworzy osobną operację.",
                "type": "server_error"
              },
              {
                "condition": "Treść wideo nie została opublikowana.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź status pierwotnego zadania. Pobierz wynik po zgłoszeniu completed; jeśli zgłosi failed, postępuj zgodnie z komunikatem dotyczącym sprawdzenia opłaty.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + pierwotne id + X-Should-Retry:false; nigdy nie ponawiaj pierwotnego żądania"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Podaj prompt jako tekst, a czas trwania jako pełne sekundy. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Prompt tekstowy."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images to tablica. Każdy obiekt klatki zawiera type, image_url i frame_type; image_url zawiera url. Ustaw type na image_url. Użyj first_frame z opcjonalnym last_frame. Każda rola klatki może wystąpić najwyżej raz. Dla każdej klatki podaj publiczny URL obrazu przez HTTPS. W jednym żądaniu używaj obrazów klatek albo obrazów referencyjnych; nie łącz obu. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Prompt tekstowy i obraz pierwszej klatki."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references to tablica obiektów. Ustaw type na image_url, video_url lub audio_url i użyj odpowiadającego mu pola zawierającego url. Używaj publicznych adresów URL przez HTTPS. Pomiń frame_images, aby wybrać tryb materiałów referencyjnych. Oszacowanie uwzględnia wyświetlaną składową za obraz wyłącznie dla obrazów referencyjnych po pierwszych pięciu. Końcowa opłata odpowiada faktycznie rozliczonej konfiguracji. Nie łącz obrazów referencyjnych z obrazami klatek. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Prompt tekstowy oraz obsługiwane materiały referencyjne w postaci obrazów, wideo i dźwięku."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Pozycja tego wideo na liście wyników, liczona od zera.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Podpisany URL HTTPS do pobrania tego ukończonego wideo.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Skrót SHA-256 oryginalnych bajtów wideo; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Rozmiar oryginalnego pliku wideo w bajtach; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Zmierzony czas trwania wideo w milisekundach; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Szerokość wideo w pikselach; null, jeśli jest niedostępna.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Wysokość wideo w pikselach; null, jeśli jest niedostępna.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Identyfikator kodeka wideo; null, jeśli go nie zapisano.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Czy wideo zawiera ścieżkę dźwiękową; null, jeśli tego nie zmierzono.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Identyfikator kodeka dźwięku; null, gdy nie zapisano identyfikatora.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "podpisane adresy URL treści należących do użytkownika",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "minimax/hailuo-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "minimax/hailuo-3"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Te klucze opisują każdy obiekt klatki; image_url zawiera wyłącznie url. Pomiń frame_images w żądaniu zawierającym wyłącznie tekst.",
                "content": "Tablica obiektów klatek. Każdy obiekt zawiera type=image_url, image_url z polem url oraz frame_type. Użyj adresu URL obrazu przez HTTPS i ustaw frame_type na first_frame lub last_frame. Każda rola klatki może wystąpić najwyżej raz.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "minimax/hailuo-3"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "2K"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Szacowany koszt generowania",
            "units": [
              {
                "amount": "1.3",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.3",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"minimax/hailuo-3\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"2K\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.3",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.3",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.26",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.26",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_images"
          },
          {
            "amount": "1.3",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.3",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "minimax/hailuo-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2b70d0ec590e32b3300001ba4851f38d3e16b4399b047b6285fe1adf210e55c1",
    "input_html_sha256": "aa174c30f8776abd51eccecd11506857ae3d9ddb5e5868c7033deb7773a0f4e2",
    "private_audit_sha256": "dfa9fc3c55313a12771dd303f9d73aad02986a035233ef3a51cc27efdeb2cd27",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pl/minimax-hailuo-3/",
    "description": "MiniMax H3 generuje krótkie filmy z natywnym dźwiękiem stereo na podstawie tekstu, obrazów klatek lub referencji multimodalnych. Obsługuje tworzenie z pierwszej i ostatniej klatki, edycję z referencjami oraz zależności dotyczące ruchu lub głosu, oferując wynik o długości 4–15 sekund i odrębny proces ponownego generowania w 2K.",
    "locale": "pl",
    "md_url": "https://ailoot.ai/models/pl/minimax-hailuo-3/index.md",
    "title": "MiniMax: H3 — Ailoot",
    "url": "https://ailoot.ai/models/pl/minimax-hailuo-3/"
  },
  "rawModel": {
    "about": "Jeden rezultat audiowizualny z opisu multimodalnego\n\nMiniMax H3 to wszechmodalny system wideo MiniMax. Łącznie interpretuje tekst, obrazy, wideo i dźwięk, a następnie generuje film z natywnym dźwiękiem stereo. Producent przedstawia go jako narzędzie do krótkich form twórczych, takich jak wizualizacje produktów, reklamy, animowane plakaty i koncepcje czołówek filmowych, w których związki między materiałami referencyjnymi mają równie duże znaczenie jak opis sceny.\n\nUdokumentowany system tworzy filmy o długości 4–15 sekund przy 24 klatkach na sekundę, z dźwiękiem stereo 32 kHz. Generowanie H3-Base działa w 768p; pełny proces 2K ponownie generuje ten wynik z wykorzystaniem pierwotnego kontekstu multimodalnego. To więcej niż zwykła zmiana rozmiaru: drugi etap ponownie używa modelu i kontekstu źródłowego do odtworzenia drobnych szczegółów. H3 Max i H3-Context-IR mają odrębne role i limity.\n\nTworzenie z tekstu i na podstawie klatek\n\nDane wejściowe zawierające wyłącznie tekst opisują całą oś czasu audiowizualnej sceny. Pierwszy obraz zakotwicza początek, ostatni — zakończenie, a dwa obrazy mogą określić oba te punkty. W ujęciu z pierwszej klatki zacznij od kompozycji i tożsamości widocznych na obrazie, a następnie opisz rozwijającą się z nich akcję. Przy przejściu od pierwszej do ostatniej klatki opisz obserwowalny ruch łączący dwa stany, zamiast powtarzać dwa niepowiązane opisy obrazów.\n\nPraktyczny opis produktu może określać zamknięte opakowanie w pierwszej klatce, otwierającą je dłoń, delikatny ruch kamery i stan końcowy, który trzeba osiągnąć. Zachowaj w dostarczonych klatkach kształt przedmiotu, położenie etykiety i oświetlenie. Tworzenie na podstawie klatek i tworzenie z referencjami są odrębnymi trybami wejściowymi; interfejs producenta nie łączy ról pierwszej i ostatniej klatki z rolami mediów referencyjnych w jednym żądaniu.\n\nGenerowanie i edycja z referencjami\n\nTryb referencyjny przyjmuje tekst wraz z obrazami, klipami wideo i klipami audio. Określ wkład każdego źródła: wygląd postaci, lokalizację, ruch kamery, strukturę czasową klipu źródłowego lub głos. Film używany wyłącznie jako wzorzec ruchu kamery różni się od filmu, który ma być faktycznie edytowany lub kontynuowany. Jasno określ tę zależność.\n\nPrzewodnik referencyjny producenta rozdziela definicje obiektów i postaci, podsumowanie zadania, analizę elementów do zachowania, szczegółowy opis ujęcia, ogólną warstwę dźwiękową i muzykę w tle słyszalną tylko dla widzów. Odróżnia zachowanie widocznej treści od przenoszenia cech lub ogólnej referencji stylu. W przypadku audio kopiowanie sygnału różni się od odwołania do barwy, rytmu czy sposobu wypowiedzi. Utrzymuj te role spójnie w całym opisie.\n\nDo sceny opartej na referencjach dostarcz obraz postaci, krótką referencję ruchu kamery i dźwiękową referencję głosu, a następnie opisz, gdzie każda z nich ma wpływać na docelowe ujęcie. Określ, które szczegóły ubrania, otoczenia lub przedmiotu muszą pozostać rozpoznawalne. Porównaj gotowy klip z tymi wymaganiami, uwzględniając ciągłość ruchu i związek między widocznym mówcą a słyszanym głosem.\n\nMowa, dźwięk i czas ujęć\n\nH3 wspólnie modeluje dialog, dźwięki fizyczne, odgłosy otoczenia i muzykę. Karta modelu dokumentuje stabilną obsługę dialogu po arabsku, chińsku, angielsku, francusku, niemiecku, włosku, japońsku, koreańsku, portugalsku, rosyjsku i hiszpańsku; wsparcie dla pozostałych języków określono jako zróżnicowane. Podaj dokładne wypowiadane słowa i język, zachowując stałą tożsamość mówcy między ujęciami.\n\nPrzewodniki producenta dotyczące promptów używają angielskiego w częściach opisowych, zachowując dialog i widoczny tekst w ich oryginalnym języku. Treść mówiona korzysta z zapisu `<d>[Language] ...</d>`, a tożsamość mówcy i opis głosu znajdują się poza tym blokiem. Odróżnij mowę postaci od narracji spoza kadru i wskaż, kiedy kwestia trwa przez cięcie lub urywa się wraz z końcem. Dokładnie zachowaj również widoczny tekst. Dopasuj ilość mowy do wybranego czasu trwania i sprawdź łącznie wyświetlone słowa oraz słyszaną kwestię.\n\nOpisuj ruch kamery jako działanie, podając zakres i szybkość, gdy mają znaczenie. Numeruj ujęcia w kolejności odtwarzania i utrzymuj czasy cięć w granicach długości filmu. Oddziel dźwięki sceny, takie jak kroki lub zamykanie drzwi, od podkładu muzycznego słyszalnego tylko dla widzów. Dzięki tym wyborom krótki plan ujęć jest łatwiejszy do zinterpretowania i porównania z wynikiem.\n\nPrzygotowanie danych wejściowych i limity liczbowe\n\nObecny schemat generowania wymaga niepustego tekstu w każdym trybie, z limitem 7000 znaków na element tekstowy. Obrazy mogą mieć format JPG, JPEG, PNG, WebP, HEIC lub HEIF, do 30 MB każdy, każdy bok od 256 do 5760 pikseli i proporcje od 0.4 do 2.5. Wejście klatkowe dopuszcza jeden obraz początkowy i jeden końcowy; tryb referencyjny — maksymalnie dziewięć obrazów referencyjnych.\n\nReferencje wideo mogą obejmować maksymalnie trzy klipy MP4 lub MOV, każdy o długości 2–15 sekund, łącznie nie więcej niż 15 sekund. Klip może mieć do 50 MB; jego kodek wideo to H.264 lub H.265, z dźwiękiem AAC lub MP3, bokami od 256 do 5760 pikseli, proporcjami od 0.4 do 2.5 i liczbą klatek od 23.976 do 60 na sekundę. Referencje audio obsługują maksymalnie trzy klipy WAV lub MP3, do 15 MB każdy, każdy o długości 2–15 sekund i łącznie nie więcej niż 15 sekund. Karta modelu ogranicza mieszane referencje wejściowe do 12 plików. Udokumentowany limit treści żądania wynosi 64 MB i jest odrębny od limitów pojedynczych plików.\n\nWybieraj tylko referencje wnoszące coś do opisu i jasno określ wkład każdej z nich. Czytelny widok obiektu lub postaci jest bardziej przydatny niż kilka sprzecznych widoków bez wyjaśnienia. Zachowaj kolejność referencji, wykadruj nieistotne elementy bez usuwania potrzebnego kontekstu sceny i sprawdź, czy krótkie klipy źródłowe zawierają żądaną akcję lub cechę głosu.\n\nFormat wyniku i kompletny system\n\nInterfejs H3 producenta oferuje 768P i 2K. Generowanie wyłącznie z tekstu wymaga konkretnych proporcji: 21:9, 16:9, 4:3, 1:1, 3:4 lub 9:16. Tworzenie z pierwszej i ostatniej klatki przyjmuje proporcje obrazu wejściowego; tworzenie z referencjami może korzystać z proporcji adaptacyjnych lub wskazanych wprost. Całkowita liczba sekund wyniku mieści się w zakresie 4–15.\n\nKarta modelu wyróżnia H3-Context-IR, który interpretuje i wzbogaca opis, H3-Base, który generuje treść audiowizualną, oraz H3-Regenerate-2K, który tworzy wynik o wyższej rozdzielczości. Udostępnione bazowe punkty kontrolne rozdzielają zadania oparte na klatkach i zadania z wieloma rodzajami referencji. Komponenty kontekstu i ponownego generowania są odrębne od tych bazowych wag, dlatego sama nazwa otwartego punktu kontrolnego nie określa zachowania całego systemu.\n\nProces generowania producenta jest asynchroniczny. Interfejs odpytywania zadań pobiera zadania z poprzednich siedmiu dni. Zachowaj identyfikator zadania do czasu zwrócenia rzeczywistego filmu, a następnie zapisz klip zamiast przechowywać wyłącznie czasowy adres pobierania. Oceń tożsamość wizualną, drobny tekst, interakcje przedmiotów, treść mówioną i synchronizację dźwięku w docelowym rozmiarze wyświetlania. Producent wskazuje rozumienie multimodalne i drobne szczegóły wizualne jako obszary dalszych ulepszeń; szczegółowy opis i porównanie ze źródłami pozostają kluczowe dla użytecznego rezultatu.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "available": null,
    "canonical_model": "minimax/hailuo-3",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.3",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.3",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Pełny cennik konfiguracji w szczegółach."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ffcc346d33bca9e66b22f181",
        "label": "Referencje cenowe konfiguracji wideo",
        "profiles": [
          {
            "basis": "Opublikowana cena referencyjna dla pokazanej konfiguracji. Ostateczne opłaty wynikają z faktycznie rozliczonej konfiguracji.",
            "dimensions": {
              "conditions": "W tym kluczu cenowym nie zadeklarowano dodatkowego warunku."
            },
            "label": "Cena wideo",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Pierwszych pięć obrazów referencyjnych jest bezpłatnych; podana stawka za obraz obowiązuje po pierwszych pięciu. Opublikowana referencja cenowa dotyczy pokazanej konfiguracji. Końcowe opłaty odpowiadają faktycznie rozliczonej konfiguracji.",
            "dimensions": {
              "conditions": "W tym kluczu cenowym nie zadeklarowano dodatkowego warunku."
            },
            "label": "Obrazy referencyjne po pierwszych pięciu",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "key": "input_image",
                "label": "Reference images after the first five",
                "public_unit_label": "per image",
                "quantity": 1,
                "rate_role": "typed_video_image_reference",
                "side": "in",
                "unit": "image"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "minimax/hailuo-3",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Zachowaj wszystkie faktyczne wyniki należące do użytkownika oraz zwrócone metadane pomiarowe.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Nie można uzyskać dostępu do wideo albo nie znaleziono tego identyfikatora wideo.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź dostęp do wideo. W przypadku istniejącego wideo użyj jego pierwotnego publicznego identyfikatora i tego samego klucza API.",
                "type": "not_found_error"
              },
              {
                "condition": "Klucz API nie odpowiada uwierzytelnionemu kontu.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź swój klucz API i dostęp do konta przed wysłaniem.",
                "type": "authentication_error"
              },
              {
                "condition": "Nie można odczytać żądania lub indeks pobierania jest nieprawidłowy.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Popraw treść żądania. Przy pobieraniu wybierz indeks wyniku zwrócony przez pierwotne zadanie.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Nie można wycenić wybranej konfiguracji wideo.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Wybierz obsługiwaną konfigurację wideo i uzupełnij jej wymagane opcje przed wysłaniem poprawionego żądania.",
                "type": "price_unavailable"
              },
              {
                "condition": "Wejściowe wideo lub pierwotne zadanie kontynuacji są nieprawidłowe.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Używaj prawidłowych danych wejściowych przez HTTPS. Do kontynuacji użyj publicznego identyfikatora ukończonego pierwotnego wideo z tym samym kluczem API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Dostępne saldo lub limity nie pozwalają na rezerwację.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź dostępne saldo i limity przed wysłaniem nowego żądania.",
                "type": "billing_error"
              },
              {
                "condition": "Weryfikacja wideo, magazyn lub dostęp do usługi są chwilowo niedostępne.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Poczekaj na dostępność usługi. Jeśli masz już identyfikator wideo, sprawdź to pierwotne zadanie zamiast tworzyć kolejne generowanie.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Wynik pierwotnego wideo i opłata wymagają sprawdzenia.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Zachowaj zwrócony identyfikator wideo i sprawdzaj to zadanie. Nie wysyłaj zastępczego żądania generowania podczas jego sprawdzania.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Pobieranie istniejącego wideo jest chwilowo niedostępne.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Sprawdź później to samo zadanie wideo i pobierz jego istniejący wynik. Nowe generowanie tworzy osobną operację.",
                "type": "server_error"
              },
              {
                "condition": "Treść wideo nie została opublikowana.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Sprawdź status pierwotnego zadania. Pobierz wynik po zgłoszeniu completed; jeśli zgłosi failed, postępuj zgodnie z komunikatem dotyczącym sprawdzenia opłaty.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + pierwotne id + X-Should-Retry:false; nigdy nie ponawiaj pierwotnego żądania"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Podaj prompt jako tekst, a czas trwania jako pełne sekundy. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Prompt tekstowy."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images to tablica. Każdy obiekt klatki zawiera type, image_url i frame_type; image_url zawiera url. Ustaw type na image_url. Użyj first_frame z opcjonalnym last_frame. Każda rola klatki może wystąpić najwyżej raz. Dla każdej klatki podaj publiczny URL obrazu przez HTTPS. W jednym żądaniu używaj obrazów klatek albo obrazów referencyjnych; nie łącz obu. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Prompt tekstowy i obraz pierwszej klatki."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references to tablica obiektów. Ustaw type na image_url, video_url lub audio_url i użyj odpowiadającego mu pola zawierającego url. Używaj publicznych adresów URL przez HTTPS. Pomiń frame_images, aby wybrać tryb materiałów referencyjnych. Oszacowanie uwzględnia wyświetlaną składową za obraz wyłącznie dla obrazów referencyjnych po pierwszych pięciu. Końcowa opłata odpowiada faktycznie rozliczonej konfiguracji. Nie łącz obrazów referencyjnych z obrazami klatek. Wybierz obsługiwaną rozdzielczość i, w razie potrzeby, proporcje obrazu.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Prompt tekstowy oraz obsługiwane materiały referencyjne w postaci obrazów, wideo i dźwięku."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Pozycja tego wideo na liście wyników, liczona od zera.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Podpisany URL HTTPS do pobrania tego ukończonego wideo.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Skrót SHA-256 oryginalnych bajtów wideo; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Rozmiar oryginalnego pliku wideo w bajtach; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Zmierzony czas trwania wideo w milisekundach; null, jeśli jest niedostępny.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Szerokość wideo w pikselach; null, jeśli jest niedostępna.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Wysokość wideo w pikselach; null, jeśli jest niedostępna.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Identyfikator kodeka wideo; null, jeśli go nie zapisano.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Czy wideo zawiera ścieżkę dźwiękową; null, jeśli tego nie zmierzono.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Identyfikator kodeka dźwięku; null, gdy nie zapisano identyfikatora.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "podpisane adresy URL treści należących do użytkownika",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "minimax/hailuo-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "minimax/hailuo-3"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Te klucze opisują każdy obiekt klatki; image_url zawiera wyłącznie url. Pomiń frame_images w żądaniu zawierającym wyłącznie tekst.",
                "content": "Tablica obiektów klatek. Każdy obiekt zawiera type=image_url, image_url z polem url oraz frame_type. Użyj adresu URL obrazu przez HTTPS i ustaw frame_type na first_frame lub last_frame. Każda rola klatki może wystąpić najwyżej raz.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "minimax/hailuo-3"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "2K"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Szacowany koszt generowania",
            "units": [
              {
                "amount": "1.3",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.3",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"minimax/hailuo-3\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"2K\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.3",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.3",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.26",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.26",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_images"
          },
          {
            "amount": "1.3",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.3",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "minimax/hailuo-3",
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra"
      }
    ],
    "name": "MiniMax: H3",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.3,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.3,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "input_materials_additive": true,
          "resolution": "768P"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_materials_additive": true,
              "resolution": "768P"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "input_materials_additive": true,
          "resolution": "2K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_materials_additive": true,
              "resolution": "2K"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "output_resolution": "768P"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "adds_to_output": true,
              "output_resolution": "768P"
            },
            "key": "input_video",
            "label": "input video",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "output_resolution": "2K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "adds_to_output": true,
              "output_resolution": "2K"
            },
            "key": "input_video",
            "label": "input video",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "first_free_reference_images": 5,
          "only_additional_images_charged": true,
          "reference_audio_free": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.08",
            "amount_unit": "usd_per_input_image",
            "conditions": {
              "adds_to_output": true,
              "first_free_reference_images": 5,
              "only_additional_images_charged": true,
              "reference_audio_free": true
            },
            "key": "input_image",
            "label": "input image",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_image"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.26",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.26",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "reference image",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.08",
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "quantity": 1,
            "side": "in",
            "unit": "reference_image"
          }
        ]
      }
    ],
    "public_id": "minimax/hailuo-3",
    "short": "MiniMax H3 generuje krótkie filmy z natywnym dźwiękiem stereo na podstawie tekstu, obrazów klatek lub referencji multimodalnych. Obsługuje tworzenie z pierwszej i ostatniej klatki, edycję z referencjami oraz zależności dotyczące ruchu lub głosu, oferując wynik o długości 4–15 sekund i odrębny proces ponownego generowania w 2K."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "MiniMax H3 generuje krótkie filmy z natywnym dźwiękiem stereo na podstawie tekstu, obrazów klatek lub referencji multimodalnych. Obsługuje tworzenie z pierwszej i ostatniej klatki, edycję z referencjami oraz zależności dotyczące ruchu lub głosu, oferując wynik o długości 4–15 sekund i odrębny proces ponownego generowania w 2K.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "608f58da4558750894cbf018fa22a374242ffcd797acd713afc1666cf7c87b56",
    "renderer_sha256": "1217dcf19a93e99ac1d6fd7bf974dc19adc12fea4bd4470c2601f04e48f688cb"
  },
  "sourceRevision": "d7491acfff21b3f8b33d6b3d70062d1c6b228708b984452dc881c2610d2b80fe"
}
