happyhorse-1.1-i2v
Model na oživenie obrázka: vstupný obrázok určuje prvý záber a opis usmerňuje ďalší pohyb. Vytvára krátke video s možnosťou zvukového sprievodu.
- Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-i2v-latest
O modeli
Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.
HappyHorse-1.1-I2V je model spoločnosti Alibaba, ktorý začína videoscénu hotovým obrázkom. Obrázok sa stáva prvým záberom a text môže určiť následné dianie: pohyb postavy, zmeny v scéne a smer pohybu kamery. Hodí sa na oživenie ilustrácie, produktovej fotografie alebo vopred pripraveného vizuálneho konceptu.
Textový opis je nepovinný. Ak chýba, model sám odvodí možný pohyb z obsahu úvodného obrázka. Pri výslovnom zadaní vstupný obrázok určuje kompozíciu a vzhľad objektov, kým slová usmerňujú vývoj scény v čase.
Od prvého záberu k pohybu
Alibaba zdôrazňuje zachovanie vzhľadu postavy, vizuálnu súdržnosť, plynulosť pohybu a spojenie obrazu so zvukom. Medzi deklarované zamerania patrí aj stálosť nápisov a textúr. Tieto vlastnosti sa týkajú zámeru modelu a neznamenajú doslovné zachovanie každého pixelu vo všetkých vygenerovaných záberoch.
V tomto režime sa používa jeden úvodný obrázok. Určuje východiskovú scénu a neslúži ako súbor nezávislých vzorov pre novú kompozíciu. Možnosť určiť samostatný záverečný záber pre túto konkrétnu verziu nie je deklarovaná.
Prijímajú sa JPEG, JPG, PNG a WEBP. Každá strana vstupného obrázka musí mať aspoň 300 pixelov; prípustný pomer strán je od 1:2,5 do 2,5:1 a veľkosť súboru do 20 MB. Pomer strán hotového videa sa riadi prvým záberom.
Parametre videa
Dĺžka sa volí ako celé číslo od 3 do 15 sekúnd. Dostupné sú úrovne rozlíšenia 480P, 720P a 1080P; výstupný formát je MP4 a snímková frekvencia 24 snímok za sekundu. Podporované je vytváranie zvukového sprievodu spolu s obrazom.
Opis môže byť v ľubovoľnom jazyku a obsahovať najviac 5000 nečínskych alebo 2500 čínskych znakov. Pri prekročení limitu sa nadbytočná časť odstráni, preto sa dôležité akcie a osobitosti pohybu oplatí sformulovať v rámci zadania. Rovnaká počiatočná hodnota generátora náhodnosti môže priniesť podobné videá, nezaručuje však ich zhodu snímku po snímke.
Ailoot · Generovanie videa POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Úvod
Model na oživenie obrázka: vstupný obrázok určuje prvý záber a opis usmerňuje ďalší pohyb. Vytvára krátke video s možnosťou zvukového sprievodu.
- Povolené vstupy
- Text · Obrázky
- Výsledky
- Video
Dostupné v Ailoot · vstupy a metódy
Ailoot · Generovanie videa POST /v1/videos/generations
- Vstup
text,image- Výstup
video- Výstupný formát
- mp4
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity happyhorse-1.1-i2v | Predvolené— |
Poleprompt | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Minimálna dĺžka: 1 | Predvolené— |
Poleduration | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Predvolené5 |
Poleresolution | Typstring | PožiadavkaVoliteľné | Hodnoty a limity 480P, 720P, 1080P | Predvolené720P |
Poleratio | Typstring | PožiadavkaNepodporované | Hodnoty a limity | Predvolené— |
Poleimage_urls | Typhttps_url|data_image_url[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 Maximálny počet položiek: 1 Maximálny počet dekódovaných bajtov: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Predvolené— |
Kombinácie vstupných podkladov
first_frame_to_video · Povinné: image_urls
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciamodel, image_urls |
Parametermaterial_types | Špecifikáciatext, image |
Parameteroptional | Špecifikáciaduration, resolution, ratio, prompt |
Parameterduration_integer_range | Špecifikácia3, 15 |
Parameterdefault_duration | Špecifikácia5 |
Parameterresolution | Špecifikácia480P, 720P, 1080P |
Parameterdefault_resolution | Špecifikácia720P |
Parameterratio | Špecifikácia |
Parameterratio_must_omit | Špecifikáciatrue |
Parameterimage_urls | Špecifikácia{"min_count":1,"max_count":1,"schemes":["https","rastrové dáta v base64"],"max_data_image_bytes":20971520} |
Životný cyklus: 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
Štruktúry metód a ID sú presné; možnosti dodávateľa sa posudzujú oddelene od prijatia požiadavky.
Cenník
Sadzby metód Ailoot
POST /v1/videos/generations- Výstup
- 0,18 USD za sekundu pri 1080p
- Výstup
- 0,07 USD za sekundu pri 480p
- Výstup
- 0,14 USD za sekundu pri 720p
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot · Generovanie videa
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
Prijať a uložiť výsledky
Ailoot · Generovanie videa
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Skontrolovať stav úlohy
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
Uložiť všetky dokončené podklady
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
Čítanie ďalšieho obsahu
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
Uchovať všetky dokončené výsledky
Uložte každé dokončené video alebo vrátený súbor; načítajte obsah každej skutočne vrátenej URL podkladu.
Zachovajte každú vrátenú dátovú položku a index výstupu. content_url odkazuje iba na prvý výstup; načítajte každú skutočnú cestu obsahu alebo súbor. GET obsahu bez parametra index nevracia všetky výstupy.
Ak treba overiť pôvodnú odpoveď
Načítajte existujúcu pôvodnú úlohu; odoslanie s neznámym výsledkom nikdy neopakujte.
Polia odpovede
| Pole | Typ |
|---|---|
Poleid | Typstring |
Poleobject | Typstring |
Polemodel | Typstring |
Polestatus | Typstring |
Polecontent_url | Typsigned URL |
Poledata[] | Typsigned URL |
Poleusage | Typobject |
Poleresult_pending_check | Typboolean |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Odpoveď409 · video_not_ready | PodmienkaPôvodný obsah výsledku zatiaľ nie je dostupný | Ďalší krokPriebežne zisťujte stav pomocou pôvodne vráteného ID a rešpektujte Retry-After. |
Odpoveďserver_error | PodmienkaVrátená odpoveď uvádza, že operáciu alebo výsledok je potrebné skontrolovať | Ďalší krokUchovajte pôvodné vrátené ID operácie/úlohy, hlavičky požiadavky a odpoveď; naďalej čítajte údaje o tejto pôvodnej operácii podporovaným spôsobom. Požiadavku na vytvorenie znova neodosielajte. |
Aliasy
Aliasy modelov
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
Ailoot · Generovanie videa POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Úvod
Model na oživenie obrázka: vstupný obrázok určuje prvý záber a opis usmerňuje ďalší pohyb. Vytvára krátke video s možnosťou zvukového sprievodu.
- Povolené vstupy
- Text · Obrázky
- Výsledky
- Video
Dostupné v Ailoot · vstupy a metódy
Ailoot · Generovanie videa POST /v1/videos/generations
- Vstup
text,image- Výstup
video- Výstupný formát
- mp4
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity happyhorse-i2v | Predvolené— |
Poleprompt | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Minimálna dĺžka: 1 | Predvolené— |
Poleduration | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Predvolené5 |
Poleresolution | Typstring | PožiadavkaVoliteľné | Hodnoty a limity 480P, 720P, 1080P | Predvolené720P |
Poleratio | Typstring | PožiadavkaNepodporované | Hodnoty a limity | Predvolené— |
Poleimage_urls | Typhttps_url|data_image_url[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 Maximálny počet položiek: 1 Maximálny počet dekódovaných bajtov: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Predvolené— |
Kombinácie vstupných podkladov
first_frame_to_video · Povinné: image_urls
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametermaterial_types | Špecifikáciatext, image |
Parameterrequired | Špecifikácianull |
Parameteroptional_controls | Špecifikácianull |
Životný cyklus: 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
Štruktúry metód a ID sú presné; možnosti dodávateľa sa posudzujú oddelene od prijatia požiadavky.
Cenník
Sadzby metód Ailoot
POST /v1/videos/generations- Výstup
- 0,18 USD za sekundu pri 1080p
- Výstup
- 0,07 USD za sekundu pri 480p
- Výstup
- 0,14 USD za sekundu pri 720p
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot · Generovanie videa
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
Prijať a uložiť výsledky
Ailoot · Generovanie videa
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Skontrolovať stav úlohy
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
Uložiť všetky dokončené podklady
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
Čítanie ďalšieho obsahu
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
Uchovať všetky dokončené výsledky
Uložte každé dokončené video alebo vrátený súbor; načítajte obsah každej skutočne vrátenej URL podkladu.
Zachovajte každú vrátenú dátovú položku a index výstupu. content_url odkazuje iba na prvý výstup; načítajte každú skutočnú cestu obsahu alebo súbor. GET obsahu bez parametra index nevracia všetky výstupy.
Ak treba overiť pôvodnú odpoveď
Načítajte existujúcu pôvodnú úlohu; odoslanie s neznámym výsledkom nikdy neopakujte.
Polia odpovede
| Pole | Typ |
|---|---|
Poleid | Typstring |
Poleobject | Typstring |
Polemodel | Typstring |
Polestatus | Typstring |
Polecontent_url | Typsigned URL |
Poledata[] | Typsigned URL |
Poleusage | Typobject |
Poleresult_pending_check | Typboolean |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Odpoveď409 · video_not_ready | PodmienkaPôvodný obsah výsledku zatiaľ nie je dostupný | Ďalší krokPriebežne zisťujte stav pomocou pôvodne vráteného ID a rešpektujte Retry-After. |
Odpoveďserver_error | PodmienkaVrátená odpoveď uvádza, že operáciu alebo výsledok je potrebné skontrolovať | Ďalší krokUchovajte pôvodné vrátené ID operácie/úlohy, hlavičky požiadavky a odpoveď; naďalej čítajte údaje o tejto pôvodnej operácii podporovaným spôsobom. Požiadavku na vytvorenie znova neodosielajte. |
Aliasy
Aliasy modelov
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
Ailoot · Generovanie videa POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Úvod
Model na oživenie obrázka: vstupný obrázok určuje prvý záber a opis usmerňuje ďalší pohyb. Vytvára krátke video s možnosťou zvukového sprievodu.
- Povolené vstupy
- Text · Obrázky
- Výsledky
- Video
Dostupné v Ailoot · vstupy a metódy
Ailoot · Generovanie videa POST /v1/videos/generations
- Vstup
text,image- Výstup
video- Výstupný formát
- mp4
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity happyhorse-i2v-latest | Predvolené— |
Poleprompt | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Minimálna dĺžka: 1 | Predvolené— |
Poleduration | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Predvolené5 |
Poleresolution | Typstring | PožiadavkaVoliteľné | Hodnoty a limity 480P, 720P, 1080P | Predvolené720P |
Poleratio | Typstring | PožiadavkaNepodporované | Hodnoty a limity | Predvolené— |
Poleimage_urls | Typhttps_url|data_image_url[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 Maximálny počet položiek: 1 Maximálny počet dekódovaných bajtov: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Predvolené— |
Kombinácie vstupných podkladov
first_frame_to_video · Povinné: image_urls
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametermaterial_types | Špecifikáciatext, image |
Parameterrequired | Špecifikácianull |
Parameteroptional_controls | Špecifikácianull |
Životný cyklus: 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
Štruktúry metód a ID sú presné; možnosti dodávateľa sa posudzujú oddelene od prijatia požiadavky.
Cenník
Sadzby metód Ailoot
POST /v1/videos/generations- Výstup
- 0,18 USD za sekundu pri 1080p
- Výstup
- 0,07 USD za sekundu pri 480p
- Výstup
- 0,14 USD za sekundu pri 720p
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot · Generovanie videa
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
Prijať a uložiť výsledky
Ailoot · Generovanie videa
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Skontrolovať stav úlohy
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
Uložiť všetky dokončené podklady
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
Čítanie ďalšieho obsahu
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
Uchovať všetky dokončené výsledky
Uložte každé dokončené video alebo vrátený súbor; načítajte obsah každej skutočne vrátenej URL podkladu.
Zachovajte každú vrátenú dátovú položku a index výstupu. content_url odkazuje iba na prvý výstup; načítajte každú skutočnú cestu obsahu alebo súbor. GET obsahu bez parametra index nevracia všetky výstupy.
Ak treba overiť pôvodnú odpoveď
Načítajte existujúcu pôvodnú úlohu; odoslanie s neznámym výsledkom nikdy neopakujte.
Polia odpovede
| Pole | Typ |
|---|---|
Poleid | Typstring |
Poleobject | Typstring |
Polemodel | Typstring |
Polestatus | Typstring |
Polecontent_url | Typsigned URL |
Poledata[] | Typsigned URL |
Poleusage | Typobject |
Poleresult_pending_check | Typboolean |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Odpoveď409 · video_not_ready | PodmienkaPôvodný obsah výsledku zatiaľ nie je dostupný | Ďalší krokPriebežne zisťujte stav pomocou pôvodne vráteného ID a rešpektujte Retry-After. |
Odpoveďserver_error | PodmienkaVrátená odpoveď uvádza, že operáciu alebo výsledok je potrebné skontrolovať | Ďalší krokUchovajte pôvodné vrátené ID operácie/úlohy, hlavičky požiadavky a odpoveď; naďalej čítajte údaje o tejto pôvodnej operácii podporovaným spôsobom. Požiadavku na vytvorenie znova neodosielajte. |
Aliasy
Aliasy modelov
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · happyhorse-1.1-i2v
- Aké vstupy a výsledky sú dostupné?
POST /v1/videos/generations·happyhorse-1.1-i2v:text,image→videoPOST /v1/videos/generations·happyhorse-i2v:text,image→videoPOST /v1/videos/generations·happyhorse-i2v-latest:text,image→video- Aké polia používa požiadavka?
POST /v1/videos/generations·happyhorse-1.1-i2v:model,prompt,duration,resolution,image_urlsPOST /v1/videos/generations·happyhorse-i2v:model,prompt,duration,resolution,image_urlsPOST /v1/videos/generations·happyhorse-i2v-latest:model,prompt,duration,resolution,image_urls- Aké limity platia?
POST /v1/videos/generations·happyhorse-1.1-i2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-i2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-i2v-latest:duration.minimum:3;duration.maximum:15