Alibaba: HappyHorse 1.1
Alibaba HappyHorse 1.1 generuje krótkie filmy z dźwiękiem na podstawie opisu tekstowego, jednego obrazu pierwszej klatki lub maksymalnie dziewięciu obrazów referencyjnych. Profile producenta podkreślają ulepszony ruch, szczegóły skóry i spójność postaci między klipami. Wynik to MP4 o długości 3–15 sekund przy 24 kl./s, z opcjami 480p, 720p lub 1080p.
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.
Alibaba HappyHorse 1.1 to wersja generowania wideo z osobno nazwanymi profilami tworzenia z tekstu, z obrazu pierwszej klatki i z referencji. Producent podkreśla ulepszone szczegóły wizualne, ruch, tożsamość postaci między klipami, stabilność tekstu i synchronizację obrazu z dźwiękiem. Rezultatem jest krótki film z dźwiękiem, przydatny jako ujęcie produktu, animacja portretu lub mała scena z postacią. Wybierz tryb wejściowy zgodnie z tym, co ma określać scenę: opisana koncepcja, dokładny obraz początkowy lub kilka referencji wizualnych.
Przy generowaniu z tekstu opisz temat, lokalizację, akcję, kadr, ruch kamery i zamierzony dźwięk. W krótkiej scenie akcji pokaż rowerzystę zatrzymującego się obok nadrzecznej kawiarni, gdy kamera delikatnie zbliża się do zaparkowanego roweru. Dopasuj akcję do krótkiego klipu i opisz ostatni moment. Obecny przewodnik tekstowy producenta dopuszcza do 5000 znaków innych niż chińskie lub 2500 znaków chińskich i obcina nadmiar tekstu. Uporządkuj opis tak, aby jego najważniejszy temat i akcja były wyraźne, zamiast ginąć w powtarzających się przymiotnikach.
Generowanie z obrazu pierwszej klatki używa dokładnie jednego obrazu jako początku. Przygotuj na nim temat, kompozycję i zamierzony kadr, a następnie opisz, co ma się poruszać lub jak ma zmienić się kamera. Udokumentowane formaty obrazu to JPEG/JPG, PNG i WEBP, do 20 MB, z oboma wymiarami co najmniej 300 pikseli i proporcjami od 1:2.5 do 2.5:1. Wynik przybliża wybrany poziom rozdzielczości, zachowując proporcje obrazu źródłowego. Wynik pionowy zaczyna się więc od odpowiedniej pionowej kompozycji, a nie niepowiązanej instrukcji proporcji.
Generowanie z referencji przyjmuje od jednego do dziewięciu obrazów. Prompt używa [Image 1], [Image 2] i kolejnych pozycji do wskazania ich w kolejności wejściowej. Określ rolę każdej referencji i nazwij odpowiedni przedmiot lub osobę, aby obraz sceny nie został pomylony ze źródłem wyglądu postaci. Przewodnik referencyjny przyjmuje JPEG/JPG, PNG lub WEBP do 20 MB, wymaga najkrótszego boku co najmniej 400 pikseli i zaleca czytelne referencje w 720p lub wyższej rozdzielczości. Unikaj mocno skompresowanej referencji, w której brakuje już szczegółów pozwalających rozpoznać temat.
W scenie z kilkoma referencjami umieść osobę z jednego obrazu w pokoju z drugiego, zachowując płaszcz lub produkt dostarczony przez trzeci. Opisz interakcję i kamerę w tym samym tekście. Profil referencyjny 1.1 podkreśla stabilność obiektów i postaci, stylu sceny i filmowego ruchu; sprawdź rzeczywisty wynik pod kątem zamierzonej tożsamości, oznaczeń produktu i położenia w przestrzeni. Kilka obrazów daje opisowi więcej informacji, ale ocena nadal musi ustalić, które cechy przeniosły się do filmu.
Producent podaje dla trybów generowania 1.1 rozdzielczości 480p, 720p i 1080p, czas trwania w pełnych sekundach od trzech do piętnastu oraz MP4 przy 24 kl./s. Odpowiedź API opisuje kodowanie H.264. Generowanie tekstowe i referencyjne oferuje między innymi proporcje 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 i 21:9; generowanie z pierwszej klatki podąża za obrazem wejściowym. Wybierz format odpowiedni do miejsca użycia i pozostaw przestrzeń na późniejsze napisy lub elementy układu. Sprawdź rzeczywisty kadr zwróconego filmu w docelowym rozmiarze wyświetlania.
Wyniki rodziny modeli zawierają dźwięk. Nadaj wykonaniu lub atmosferze jasną rolę w opisie i oceń dialog, efekty lub podkład wraz z obrazem. Utrzymuj treść mówioną na tyle krótką, aby pozostawało miejsce na akcję i pauzy, zamiast wciskać długi scenariusz w jedno krótkie ujęcie. Gdy występuje mowa, sprawdź ruch ust, przypisanie mówcy i rzeczywiste słowa. Akceptacja języka promptu sama w sobie nie określa gwarantowanej wymowy ani osobnego wejścia referencji głosu.
Udokumentowany proces producenta jest asynchroniczny: identyfikator zadania śledzi przetwarzanie, a pomyślny wynik zawiera adres filmu. Odnośnik do wyniku i zapytania o zadanie mają według dokumentacji dwudziestoczterogodzinny okres ważności. Zachowaj gotowy klip, referencje i prompt jako dokumentację poprawek. Przewodniki dokumentują także sterowanie ziarnem losowości i znakiem wodnym. Stałe ziarno może pomagać w porównaniu, ale producent wyraźnie podaje, że nie gwarantuje identycznych wyników, dlatego oceniaj zwrócony materiał, zamiast zakładać, że jedno ustawienie ustala każdą klatkę.
HappyHorse 1.0 i 1.1 są odrębnymi wersjami. Tabela wyników 1.1 dodaje 480p do opcji 720p i 1080p z 1.0, a strony modelu 1.1 opisują ulepszenia szczegółów, ruchu i spójności. Osobno nazwany profil edycji wideo HappyHorse 1.0 ma własne dane wejściowe i limity; nie jest trybem edycji, który można po cichu przypisać do 1.1. Oceń cały klip 1.1 pod kątem tożsamości, ruchu, kadru, tekstu i dźwięku, a następnie wprowadź konkretną poprawkę, zachowując udane części opisu.
Ailoot Ultra · Wideo POST /v1/videos alibaba/happyhorse-1.1
alibaba/happyhorse-1.1Start
Alibaba HappyHorse 1.1 generuje krótkie filmy z dźwiękiem na podstawie opisu tekstowego, jednego obrazu pierwszej klatki lub maksymalnie dziewięciu obrazów referencyjnych. Profile producenta podkreślają ulepszony ruch, szczegóły skóry i spójność postaci między klipami. Wynik to MP4 o długości 3–15 sekund przy 24 kl./s, z opcjami 480p, 720p lub 1080p.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Wideo POST /v1/videos
- Wejście
text- Wyjście
video- Format wyjściowy
- mp4
- Liczba wyników
- Do 4 wyniks
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity alibaba/happyhorse-1.1 | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Minimalna długość: 1 Maksymalna liczba bajtów: 10 000 Jednostka: bajty UTF8 | Domyślnie— |
Poleduration | Typinteger | WymaganieWymagane | Wartości i limity Minimum: 3 Maksimum: 15 Jednostka: sekundy | Domyślnie— |
Poleresolution | Typstring | WymaganieWymagane | Wartości i limity 720p | Domyślnie— |
Poleaspect_ratio | Typstring | WymaganieWymagane | Wartości i limity 16:9 | Domyślnie— |
Kombinacje materiałów wejściowych
Tekst na wideo · Wymagane: prompt
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt, duration, resolution, aspect_ratio |
Parametrother_options | Kontraktfalse |
Parametrresolution | Kontrakt720p |
Parametrprompt_max_bytes | Kontrakt10000 |
Parametrduration_integer_range | Kontrakt3, 15 |
Parametraspect_ratio | Kontrakt16:9 |
Parametrgenerate_audio | Kontraktnależy pominąć (nie ustawiać false); AAC jest dołączone |
Parametrmaterial_types | Kontrakttext |
Parametradditional_properties | Kontraktfalse |
Aliasy metody: /v1/videos/generations, /videos, /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/videos/generations/{request_id}/content
Utwórz raz i zapisz zwrócony identyfikator.
Odpytuj pierwotny status; zachowaj każdy ukończony zasób i jego czas trwania.
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ść | Jednostka rozliczeniowa | Warunki rozliczania | Opłata |
|---|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Jednostka rozliczeniowa— | Warunki rozliczania— | 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 |
| KonfiguracjaCena wideo | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza sekundę wideo | Warunki rozliczaniaresolution: 1080p | Opłata Wyjście · Cena wideo · Szacunek tylko do porównania $0.2556 za sekundę wideo |
| KonfiguracjaCena wideo | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza sekundę wideo | Warunki rozliczaniaresolution: 720p | Opłata Wyjście · Cena wideo · Szacunek tylko do porównania $0.1976 za sekundę wideo |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Jednostka rozliczeniowa— | Warunki rozliczania— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.5928 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 →
Szczegóły taryfy referencyjnej
Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.
Referencje cenowe konfiguracji wideo
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Warunki rozliczania | Opłata |
|---|---|---|
| KonfiguracjaCena wideo | Warunki rozliczaniaresolution: 720p | Opłata Wyjście · Cena wideo $0.1976 za sekundę wideo Opublikowana cena referencyjna dla pokazanej konfiguracji. Ostateczne opłaty wynikają z faktycznie rozliczonej konfiguracji. |
| KonfiguracjaCena wideo | Warunki rozliczaniaresolution: 1080p | Opłata Wyjście · Cena wideo $0.2556 za sekundę wideo Opublikowana cena referencyjna dla pokazanej konfiguracji. Ostateczne opłaty wynikają z faktycznie rozliczonej konfiguracji. |
Przykładowe żądania
Ailoot Ultra · Wideo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/happyhorse-1.1", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
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
Odbieranie i zapisywanie wyników
Ailoot Ultra · Wideo
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Sprawdź status zadania
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Inne odczyty treści
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())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
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')
target=Path('owned-'+label+'.bin')
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)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Zachowaj wszystkie ukończone wyniki
Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.
Ukończone data[] zawiera wszystkie podpisane adresy URL treści należących do użytkownika. Pobierz każdy zwrócony URL lub użyj endpointu treści z index ustawionym na rzeczywisty indeks wyniku. Nieudane pierwotne zadanie może zwrócić charge_pending_check; sprawdź to pierwotne zadanie zamiast tworzyć je ponownie.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Odczytuj istniejące pierwotne zadanie; nigdy nie ponawiaj wysłania o nieznanym wyniku.
Maksymalna liczba wyników: 4.
Pola odpowiedzi
| Pole | Typ | Znaczenie |
|---|---|---|
Poleid | Typstring | Znaczenie— |
Poleobject | Typstring | Znaczenie— |
Polemodel | Typstring | Znaczenie— |
Polestatus | Typstring | Znaczenie— |
Poledata[] | Typsigned content URL | Znaczenie— |
Polecharge_pending_check | Typboolean | Znaczenie— |
Poleerror.code | Typstring | Znaczenie— |
Poleerror.message | Typstring | Znaczenie— |
Poleoperation_id | Typstring | ZnaczenieOdpowiedź HTTP503 result_pending_check pierwotnego statusu lub treści: ten sam pierwotny publiczny identyfikator operacji wideo w polu id. |
Poleerror.type | Typstring | Znaczenieserver_error przy HTTP503 result_pending_check. |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekOdczyt surowej treści żądania kończy się błędem przed parsowaniem profilu wideo | Następny krokZachowaj zwróconą odpowiedź i popraw nieczytelną treść żądania. |
Odpowiedź422 · price_unavailable | WarunekNie można sparsować dokładnego profilu wideo albo kompletny sparsowany profil nie ma gotowej, dokładnie dopasowanej karty cenowej | Następny krokZachowaj odpowiedź; użyj kompletnego, dokładnie dopuszczonego profilu i jego opublikowanej karty. Ta gałąź wykonuje się przed wysłaniem do dostawcy. |
Odpowiedź409 · video_not_ready | WarunekTreść pierwotnego wyniku nie jest jeszcze dostępna | Następny krokOdpytuj pierwotny zwrócony identyfikator i przestrzegaj Retry-After. |
Odpowiedźserver_error | WarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzenia | Następny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia. |
Odpowiedź503 · result_pending_check | WarunekGET pierwotnego statusu lub treści: zadanie nie jest opublikowane, pierwotne zadanie nie ma stanu failed/cancelled/expired, a stan lokalny to unknown lub status pierwotnego zadania to completed. | Następny krokZachowaj pierwotne id i operation_id (ten sam publiczny identyfikator wideo), odpowiedź i nagłówki; odczytuj wyłącznie pierwotny status lub treść. Nigdy nie wysyłaj nowego żądania generowania. |
Aliasy
Aliasy modelu
Ailoot Ultra alibaba/happyhorse-1.1
Aliasy ścieżek metod
/v1/videos/generations, /videos, /videos/generations
Powiązane ID modeli
FAQ · Alibaba: HappyHorse 1.1
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·alibaba/happyhorse-1.1:text→video- Jakich pól używa żądanie?
POST /v1/videos·alibaba/happyhorse-1.1:model,prompt,duration,resolution,aspect_ratio- Jakie limity obowiązują?
POST /v1/videos·alibaba/happyhorse-1.1:duration.minimum:3;duration.maximum:15