happyhorse-1.0-t2v
HappyHorse 1.0 T2V przekształca tekstowy opis sceny w film. Wybierz czas trwania, rozdzielczość i proporcje w Ailoot, a następnie śledź pierwotną operację do zakończenia.
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.
Użyj happyhorse-1.0-t2v z model i prompt w /v1/videos. Opisz scenę bezpośrednio tekstem, a następnie wybierz 720P lub 1080P i czas trwania od 3 do 15 sekund. Dostępne proporcje obejmują format poziomy, pionowy, kwadratowy oraz 4:3 lub 3:4.
Zbuduj prompt wokół tematu, widocznej akcji, otoczenia i ruchu kamery. Użyteczny opis może zaczynać się od bliskiego widoku ceramicznego kubka, a następnie przedstawiać unoszącą się parę, gdy kamera stopniowo odsłania stół. Określ zamierzone końcowe kadrowanie i oświetlenie, aby ujęcie miało wyraźny cel wizualny.
Wyślij ujęcie raz przez /v1/videos, zachowaj zwrócony identyfikator żądania i odpytuj tę pierwotną operację przez /v1/videos/{request_id}. Zapisz każdy gotowy materiał wideo i pełną odpowiedź przed oceną akcji, kadrowania i stanu końcowego względem opisu.
Ailoot Ultra · Video POST /v1/videos happyhorse-1.0-t2v
happyhorse-1.0-t2vStart
HappyHorse 1.0 T2V przekształca tekstowy opis sceny w film. Wybierz czas trwania, rozdzielczość i proporcje w Ailoot, a następnie śledź pierwotną operację do zakończenia.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Video POST /v1/videos
- Wejście
text- Wyjście
video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity happyhorse-1.0-t2v Warunki: Użyj dokładnie tego selektora trasowania Ailoot. | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Warunki: Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną. | Domyślnie— |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity 720P, 1080P Warunki: Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną. | Domyślnie720P |
Poleaspect_ratio | Typstring | WymaganieOpcjonalne | Wartości i limity 16:9, 9:16, 1:1, 4:3, 3:4 Warunki: Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną. | Domyślnie— |
Poleduration | Typinteger | WymaganieOpcjonalne | Wartości i limity 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Warunki: Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną. | Domyślnie5 |
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt |
Parametroptional | Kontraktresolution, aspect_ratio, duration |
Parametrmaterial_types | Kontrakttext |
Parametrconditions | KontraktUżyj dokładnie tego selektora trasowania Ailoot., Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną., Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną., Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną., Użyj udokumentowanego pola dla wybranego modelu i podanych opcji; pomiń nieokreśloną wartość opcjonalną. |
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ść | Rozdzielczość wyjściowa | Jednostka rozliczeniowa | Warunki rozliczania | Opłata |
|---|---|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Rozdzielczość wyjściowa— | 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 |
| KonfiguracjaWyjściowy film | Tabela stawek— | Przewidywana ilość— | Rozdzielczość wyjściowa1080P | Jednostka rozliczeniowaza sekundę wideo | Warunki rozliczaniaOrientacyjny szacunek dla wyjściowego filmu w rozdzielczości 1080P. Ostateczna opłata wynika z zapisanej oryginalnej faktury. | Opłata Wyjście · Wyjściowy film · Szacunek tylko do porównania $0.552 za sekundę wideo Wyłącznie orientacyjny szacunek; ostateczna opłata wynika z zapisanej oryginalnej faktury. |
| KonfiguracjaWyjściowy film | Tabela stawek— | Przewidywana ilość— | Rozdzielczość wyjściowa720P | Jednostka rozliczeniowaza sekundę wideo | Warunki rozliczaniaOrientacyjny szacunek dla wyjściowego filmu w rozdzielczości 720P. Ostateczna opłata wynika z zapisanej oryginalnej faktury. | Opłata Wyjście · Wyjściowy film · Szacunek tylko do porównania $0.312 za sekundę wideo Wyłącznie orientacyjny szacunek; ostateczna opłata wynika z zapisanej oryginalnej faktury. |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Rozdzielczość wyjściowa— | Jednostka rozliczeniowa— | Warunki rozliczania— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.312 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 · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.0-t2v", "prompt": "A cat is walking on grass."}')
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
# Submit once. Retain the complete result, original identifiers and every response 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 · Video
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 |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekWymagane pole, selektor modelu, typ lub postać danych wejściowych są nieprawidłowe. | Następny krokPrzed przygotowaniem osobnego żądania sprawdź zwrócone szczegóły walidacji. |
Odpowiedź | WarunekOryginalne żądanie lub wynik są nieznane albo wymagają sprawdzenia. | Następny krokZachowaj oryginalne identyfikatory i nagłówki; odczytuj tylko obsługiwane rekordy statusu lub biblioteki. Nie wysyłaj ponownie żądania utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra happyhorse-1.0-t2v
Aliasy ścieżek metod
/v1/videos/generations
Powiązane ID modeli
FAQ · happyhorse-1.0-t2v
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·happyhorse-1.0-t2v:text→video- Jakich pól używa żądanie?
POST /v1/videos·happyhorse-1.0-t2v:model,prompt,resolution,aspect_ratio,duration