MiniMax: Hailuo 02
Hailuo 02 tworzy wideo z tekstu lub obrazu pierwszej klatki i obsługuje udokumentowany proces z pierwszą i ostatnią klatką. Polecenia kamery, optymalizacja promptu i właściwe danemu trybowi opcje czasu oraz rozdzielczości pomagają kształtować zamierzone ujęcie.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Hailuo 02 to model wideo MiniMax do scen opartych na tekście, animowania obrazów i procesu z pierwszą oraz ostatnią klatką. Pisemny opis przedstawia główny obiekt, akcję i kamerę, a dostarczone obrazy klatek mogą określać wizualny punkt startowy lub cel przejścia. Wybierz tryb generowania zgodnie z już posiadanym materiałem i częścią ujęcia wymagającą kontroli.
Przy tworzeniu tekst–wideo opisz spójną akcję z czytelnym otoczeniem i punktem widzenia. Scena może pokazywać małą żaglówkę przepływającą obok pomostu, gdy kamera śledzi ją z brzegu. Określ, co się porusza, które szczegóły mają pozostać widoczne i jak ujęcie się kończy. Skup opis na obserwowalnych zdarzeniach, a nie liście niepowiązanych cech wizualnych.
Przy tworzeniu obraz–wideo przygotuj pierwszą klatkę z już ustalonym głównym obiektem i kadrem. Producent przyjmuje obrazy JPG, JPEG, PNG i WebP mniejsze niż 20 MB, z krótszym bokiem większym niż 300 pikseli i proporcjami od 2:5 do 5:2. Użyj obrazu z widocznymi ważnymi konturami i cechami, a następnie opisz ruch, który ma się z niego rozwinąć.
Hailuo 02 ma również udokumentowany tryb pierwszej i ostatniej klatki. Przygotuj dwa obrazy jako zamierzone stany otwierający i zamykający jedną sekwencję i opisz ruch sceny między nimi. Pierwsza klatka określa kadrowanie; producent podaje, że ostatnia klatka o innych wymiarach jest przycinana, aby do niej pasowała. Wyrównaj kompozycję obrazów zawczasu, gdy główny obiekt musi pozostać widoczny podczas przejścia.
Prompt może zawierać do 2 000 znaków. Hailuo 02 obsługuje polecenia kamery w nawiasach kwadratowych, w tym push, pull, truck, pan, pedestal, tilt, zoom, tracking i ujęcie statyczne. Polecenia umieszczone razem w nawiasie żądają równoczesnego ruchu; polecenia w różnych miejscach opisu żądają sekwencji. Producent zaleca łączenie nie więcej niż trzech ruchów, dlatego wybierz akcję kamery ułatwiającą odczytanie głównego obiektu.
Czas i rozdzielczość są powiązane z trybem. Tryb tekst–wideo dokumentuje sześć lub dziesięć sekund przy 768P i sześć sekund przy 1080P. Tryb obraz–wideo dokumentuje również 512P dla sześciu lub dziesięciu sekund. Proces pierwszej i ostatniej klatki dokumentuje 768P dla sześciu lub dziesięciu sekund i 1080P dla sześciu sekund. Wybierz obsługiwaną kombinację dla ujęcia, zamiast przenosić opcje rozdzielczości jednego trybu na wszystkie pozostałe.
Automatyczna optymalizacja promptu jest udokumentowanym ustawieniem, domyślnie włączonym w procesie producenta. Zachowaj je przy porównywaniu wersji, ponieważ przepisany opis zmienia to, co model otrzymuje. Zachowaj dokładny tekst, klatki referencyjne i wybrane ustawienia wyjścia przy wygenerowanym klipie, aby poprawka mogła dotyczyć akcji lub kadrowania wymagających ulepszenia.
Sprawdź całą ukończoną sekwencję: kompozycję otwierającą, ciągłość głównego obiektu, czas akcji i ostatnią klatkę. Przy przejściu sprawdź oba końce i ruch pomiędzy nimi. Zapisz rzeczywiste wideo do montażu wraz z promptem i referencjami; kolejną poprawką rozwiąż konkretny problem wizualny, taki jak zasłonięty szczegół, gwałtowny ruch kamery lub zakończenie pojawiające się zbyt wcześnie.
Ailoot Ultra · Wideo POST /v1/videos minimaxi-hailuo-02
minimaxi-hailuo-02Start
Hailuo 02 tworzy wideo z tekstu lub obrazu pierwszej klatki i obsługuje udokumentowany proces z pierwszą i ostatnią klatką. Polecenia kamery, optymalizacja promptu i właściwe danemu trybowi opcje czasu oraz rozdzielczości pomagają kształtować zamierzone ujęcie.
- Akceptowane dane wejściowe
- Tekst · Obrazy
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Wideo POST /v1/videos
- Wejście
text,image- Wyjście
video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity minimaxi-hailuo-02 Warunki: Użyj dokładnego selektora modelu Ailoot. | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Warunki: Opisz scenę i ruch. | Domyślnie— |
Poleduration | Typinteger | WymaganieOpcjonalne | Wartości i limity 6, 10 Warunki: Wyślij jedną z wymienionych wartości czasu trwania; nie określa się wartości domyślnej. | Domyślnie— |
Poleend_image | Typstring | WymaganieOpcjonalne | Wartości i limity Warunki: Klatka końcowa ma zastosowanie wyłącznie w obsługiwanym trybie wejścia obrazowego. | Domyślnie— |
Poleimage | Typstring or array<string> | WymaganieOpcjonalne | Wartości i limity Warunki: Użyj rzeczywistego, publicznie dostępnego adresu URL obrazu lub obrazu zakodowanego jako ciąg znaków base64; nie określa się tutaj maksymalnej liczby obrazów. | Domyślnie— |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity 512P, 768P, 1080P Warunki: Wyślij jedną z wymienionych wartości rozdzielczości; nie określa się wartości domyślnej. | Domyślnie— |
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt |
Parametroptional | Kontraktduration, end_image, image, resolution |
Parametrmaterial_types | Kontrakttext, image |
Parametrconditions | KontraktUżyj dokładnego selektora modelu Ailoot., Opisz scenę i ruch., Wyślij jedną z wymienionych wartości czasu trwania; nie określa się wartości domyślnej., Klatka końcowa ma zastosowanie wyłącznie w obsługiwanym trybie wejścia obrazowego., Użyj rzeczywistego, publicznie dostępnego adresu URL obrazu lub obrazu zakodowanego jako ciąg znaków base64; nie określa się tutaj maksymalnej liczby obrazów., Wyślij jedną z wymienionych wartości rozdzielczości; nie określa się wartości domyślnej. |
Aliasy metody: /v1/videos/generations
Cykl życia: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Cennik
Jak obliczana jest ostateczna opłata
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.
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Szacunkowe stawki do porównania
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Przewidywana ilość | Opłata |
|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.2 szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |
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. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Wideo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "minimaxi-hailuo-02",
"prompt": "A cat is walking on grass."
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Odbieranie i zapisywanie wyników
Ailoot Ultra · Wideo
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Zachowaj wszystkie ukończone wyniki
Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.
Zachowaj kompletną odpowiedź i nagłówki, pierwotne identyfikatory, wszystkie rzeczywiste wyniki oraz wszystkie pola użycia i rozliczeń. Zapisz każdy unikalny zasób należący do użytkownika i zachowaj wszystkie role, które na niego wskazują.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj zwrócone publiczne id zadania lub operacji oraz wszystkie nagłówki. Odczytuj wyłącznie pierwotne zadanie; unknown ani result_pending_check nie uprawniają do ponownego utworzenia.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polepolling_url | Typstring |
Poleprovider_task_id | Typstring |
Poletask_id | Typstring |
Polestatus | Typstring |
Polevideo_url | Typstring |
Aliasy
Aliasy modelu
Ailoot Ultra minimaxi-hailuo-02
Aliasy ścieżek metod
/v1/videos/generations
Powiązane ID modeli
FAQ · MiniMax: Hailuo 02
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·minimaxi-hailuo-02:text,image→video- Jakich pól używa żądanie?
POST /v1/videos·minimaxi-hailuo-02:model,prompt,duration,end_image,image,resolution