happyhorse-1.1-t2v
Model za ustvarjanje kratkega videa z zvokom na podlagi besedilnega opisa. Primeren je za scene, pri katerih gibanje, kompozicijo in vizualni slog določajo besede.
- Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-1.1-t2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-t2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-t2v-latest
O modelu
Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.
HappyHorse-1.1-T2V je model družbe Alibaba za ustvarjanje kratkih videoscen na podlagi besedila. Opis določa like, dejanja, okolje in vizualno izvedbo; ta način ne zahteva izvirne slike. Model ustvari video in lahko ustvari tudi spremljajoči zvok.
Proizvajalec izpostavlja razumevanje pomena scene, filmsko postavitev in izraznost gibanja. Besedilo lahko določa vzdušje, dejanja lika, vedenje objektov in fizikalno dinamiko. Tako lahko sceno zasnujete okoli želenega dogajanja, nato pa jo usmerjate z osvetlitvijo, zornim kotom in gibanjem kamere.
Postavitev z besedami
Navodilo je obvezno in je lahko v katerem koli jeziku. Vsebuje lahko do 5000 nekitajskih ali 2500 kitajskih znakov; presežni del se zavrže. Dogajanje, okolje in pomembne vizualne podrobnosti je treba opisati znotraj tega obsega. Takšna postavitev modelu pušča prostor za ustvarjanje nove scene, namesto da bi mu določila že pripravljen prvi kader.
V tem načinu je besedilo glavno sredstvo usmerjanja. Konkreten videz lika ali predmeta lahko opišete z besedami; možnost podajanja njegovega videza z ločenimi slikami spada v drug način te družine. Rezultat je odvisen od celotnega navodila, zato enako začetno naključno seme pomaga ustvariti podobne različice, ne zagotavlja pa natančne ponovitve.
Video in zvočna spremljava
Pri HappyHorse-1.1 trajanje posnetka izberete kot celo število od 3 do 15 sekund. Podprte so ločljivosti 480P, 720P in 1080P. Končna datoteka je v formatu MP4 s hitrostjo 24 sličic na sekundo. Model lahko ustvari zvok skupaj s sliko in zvočno spremljavo poveže z dogajanjem v sceni.
Obliko kadra lahko določite vnaprej. Na voljo so 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 in 21:9 — od širokega filmskega kadra do podolgovatega pokončnega posnetka. Ločljivost, format in trajanje določajo mere rezultata; vsebino in gibanje določa besedilo.
Ta različica je namenjena ustvarjanju nove scene iz zamisli, izražene z besedami. Primerna je za kratek prizor, vizualno idejo ali posnetek z izrazitim vzdušjem, pri katerem je treba postavitev oblikovati z besedilom.
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-1.1-t2v
happyhorse-1.1-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Začetek
Model za ustvarjanje kratkega videa z zvokom na podlagi besedilnega opisa. Primeren je za scene, pri katerih gibanje, kompozicijo in vizualni slog določajo besede.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-1.1-t2v | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
Poljeduration | Vrstainteger | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
Poljeresolution | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
Poljeratio | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Privzeto16:9 |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaIzbirno | Vrednosti in omejitve Najmanjše število elementov: 0 Največ elementov: 0 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
Iz besedila v video · Obvezno: prompt
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, prompt |
Parametermaterial_types | Specifikacijatext |
Parameteroptional | Specifikacijaduration, resolution, ratio |
Parameterduration_integer_range | Specifikacija3, 15 |
Parameterdefault_duration | Specifikacija5 |
Parameterresolution | Specifikacija480P, 720P, 1080P |
Parameterdefault_resolution | Specifikacija720P |
Parameterratio | Specifikacija16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Parameterratio_must_omit | Specifikacijafalse |
Parameterimage_urls | Specifikacija{"max_count":0} |
Življenjski cikel: 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
Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.
Cenik
Cene metod Ailoot
POST /v1/videos/generations- Izhod
- 0,18 $ na sekundo pri 1080p
- Izhod
- 0,07 $ na sekundo pri 480p
- Izhod
- 0,14 $ na sekundo pri 720p
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
Ailoot · Videoposnetki
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Prejmi in shrani rezultate
Ailoot · Videoposnetki
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Preveri stanje opravila
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Shrani vsa dokončana gradiva
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Branje druge vsebine
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Ohrani vse dokončane rezultate
Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.
Ohranite vsak vrnjeni element data/indeks izhoda. content_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.
Če je treba preveriti izvirni odgovor
Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljeid | Vrstastring |
Poljeobject | Vrstastring |
Poljemodel | Vrstastring |
Poljestatus | Vrstastring |
Poljecontent_url | Vrstasigned URL |
Poljedata[] | Vrstasigned URL |
Poljeusage | Vrstaobject |
Poljeresult_pending_check | Vrstaboolean |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Odgovor409 · video_not_ready | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
Odgovorserver_error | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |
Druga imena
Druga imena modelov
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-t2v
happyhorse-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Začetek
Model za ustvarjanje kratkega videa z zvokom na podlagi besedilnega opisa. Primeren je za scene, pri katerih gibanje, kompozicijo in vizualni slog določajo besede.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-t2v | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
Poljeduration | Vrstainteger | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
Poljeresolution | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
Poljeratio | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Privzeto16:9 |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaIzbirno | Vrednosti in omejitve Najmanjše število elementov: 0 Največ elementov: 0 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
Iz besedila v video · Obvezno: prompt
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametermaterial_types | Specifikacijatext |
Parameterrequired | Specifikacijanull |
Parameteroptional_controls | Specifikacijanull |
Življenjski cikel: 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
Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.
Cenik
Cene metod Ailoot
POST /v1/videos/generations- Izhod
- 0,18 $ na sekundo pri 1080p
- Izhod
- 0,07 $ na sekundo pri 480p
- Izhod
- 0,14 $ na sekundo pri 720p
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
Ailoot · Videoposnetki
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Prejmi in shrani rezultate
Ailoot · Videoposnetki
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Preveri stanje opravila
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Shrani vsa dokončana gradiva
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Branje druge vsebine
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Ohrani vse dokončane rezultate
Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.
Ohranite vsak vrnjeni element data/indeks izhoda. content_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.
Če je treba preveriti izvirni odgovor
Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljeid | Vrstastring |
Poljeobject | Vrstastring |
Poljemodel | Vrstastring |
Poljestatus | Vrstastring |
Poljecontent_url | Vrstasigned URL |
Poljedata[] | Vrstasigned URL |
Poljeusage | Vrstaobject |
Poljeresult_pending_check | Vrstaboolean |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Odgovor409 · video_not_ready | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
Odgovorserver_error | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |
Druga imena
Druga imena modelov
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-t2v-latest
happyhorse-t2v-latesthappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Začetek
Model za ustvarjanje kratkega videa z zvokom na podlagi besedilnega opisa. Primeren je za scene, pri katerih gibanje, kompozicijo in vizualni slog določajo besede.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-t2v-latest | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
Poljeduration | Vrstainteger | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
Poljeresolution | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
Poljeratio | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Privzeto16:9 |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaIzbirno | Vrednosti in omejitve Najmanjše število elementov: 0 Največ elementov: 0 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
Iz besedila v video · Obvezno: prompt
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametermaterial_types | Specifikacijatext |
Parameterrequired | Specifikacijanull |
Parameteroptional_controls | Specifikacijanull |
Življenjski cikel: 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
Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.
Cenik
Cene metod Ailoot
POST /v1/videos/generations- Izhod
- 0,18 $ na sekundo pri 1080p
- Izhod
- 0,07 $ na sekundo pri 480p
- Izhod
- 0,14 $ na sekundo pri 720p
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
Ailoot · Videoposnetki
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Prejmi in shrani rezultate
Ailoot · Videoposnetki
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Preveri stanje opravila
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Shrani vsa dokončana gradiva
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Branje druge vsebine
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Ohrani vse dokončane rezultate
Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.
Ohranite vsak vrnjeni element data/indeks izhoda. content_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.
Če je treba preveriti izvirni odgovor
Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljeid | Vrstastring |
Poljeobject | Vrstastring |
Poljemodel | Vrstastring |
Poljestatus | Vrstastring |
Poljecontent_url | Vrstasigned URL |
Poljedata[] | Vrstasigned URL |
Poljeusage | Vrstaobject |
Poljeresult_pending_check | Vrstaboolean |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Odgovor409 · video_not_ready | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
Odgovorserver_error | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |
Druga imena
Druga imena modelov
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
FAQ · happyhorse-1.1-t2v
- Kateri vhodi in rezultati so na voljo?
POST /v1/videos/generations·happyhorse-1.1-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v-latest:text→video- Katera polja uporablja zahteva?
POST /v1/videos/generations·happyhorse-1.1-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v-latest:model,prompt,duration,resolution,ratio,image_urls- Katere omejitve veljajo?
POST /v1/videos/generations·happyhorse-1.1-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v-latest:duration.minimum:3;duration.maximum:15