happyhorse-1.1-r2v
Model na generovanie videa z referenčných obrázkov a textového scenára. Pomáha zachovať vzhľad postáv, predmety a vizuálny štýl v novej scéne.
- Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-1.1-r2v - Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-r2v - Ailoot · Generovanie videa
POST /v1/videos/generationshappyhorse-r2v-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-R2V vytvára novú videoscénu z referenčných obrázkov a textového zadania. Alibaba zameriava model na zachovanie rozpoznateľných postáv, objektov a vizuálneho štýlu pri generovaní pohybu. Referencie určujú obsah a vzhľad scény, kým text opisuje, ako majú tieto prvky navzájom pôsobiť.
Úlohy vizuálnych vzorov
Možno použiť jeden až deväť obrázkov. Môžu určovať postavu, predmet, prostredie alebo výtvarné spracovanie. V opise možno uviesť číslo referencie a konkrétny objekt na nej, aby sa vizuálny materiál spojil s požadovanou časťou diania. To je zvlášť užitočné, keď treba prvky viacerých obrázkov spojiť do jednej kompozície.
Na rozdiel od režimu s úvodným záberom tu referencie slúžia ako oporné body pre obsah novej scény. Textové zadanie je povinné: prepája vzhľad objektov s dianím, pohybom kamery a celkovou réžiou. Výrobca zdôrazňuje vizuálnu súdržnosť a filmový pohyb; výsledok zostáva generovaným obsahom, nie montážou vstupných obrázkov.
Prijímajú sa JPEG, JPG, PNG a WEBP s veľkosťou do 20 MB každý. Kratšia strana obrázka musí mať aspoň 400 pixelov; odporúčajú sa materiály na úrovni 720P alebo vyššej. Vstup tohto režimu tvoria práve obrázky a text.
Dĺžka, formát záberu a zvuk
Výsledok sa ukladá do MP4 so snímkovou frekvenciou 24 snímok za sekundu. Dĺžka sa zadáva ako celé číslo od 3 do 15 sekúnd. Rozlíšenie možno vybrať z 480P, 720P a 1080P; podporované je generovanie zvukového sprievodu.
Dostupné sú horizontálne, vertikálne a štvorcové zábery: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 a 21:9. Výber formátu pomáha vopred určiť kompozičný priestor novej scény.
Text môže byť v ľubovoľnom jazyku. Limit je 5000 nečínskych alebo 2500 čínskych znakov; nadbytočná časť sa odstráni. Najdôležitejšie úlohy referencií, dianie a pohyb sa musia zmestiť do tohto rozsahu. Počiatočná hodnota generátora náhodnosti môže usmerňovať podobnosť variantov, nezaručuje však presné zopakovanie jedného videa.
Ailoot · Generovanie videa POST /v1/videos/generations happyhorse-1.1-r2v
happyhorse-1.1-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Úvod
Model na generovanie videa z referenčných obrázkov a textového scenára. Pomáha zachovať vzhľad postáv, predmety a vizuálny štýl v novej scéne.
- 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-r2v | Predvolené— |
Poleprompt | Typstring | PožiadavkaPovinné | 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žiadavkaVoliteľné | Hodnoty a limity 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Predvolené16:9 |
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: 9 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
reference_images_to_video · Povinné: prompt, image_urls
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciamodel, prompt, image_urls |
Parametermaterial_types | Špecifikáciatext, image |
Parameteroptional | Špecifikáciaduration, resolution, ratio |
Parameterduration_integer_range | Špecifikácia3, 15 |
Parameterdefault_duration | Špecifikácia5 |
Parameterresolution | Špecifikácia480P, 720P, 1080P |
Parameterdefault_resolution | Špecifikácia720P |
Parameterratio | Špecifikácia16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Parameterratio_must_omit | Špecifikáciafalse |
Parameterimage_urls | Špecifikácia{"min_count":1,"max_count":9,"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_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
z=urlsplit(u) if isinstance(u,str) else None
if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["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/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-r2v, happyhorse-r2v, happyhorse-r2v-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-r2v
happyhorse-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Úvod
Model na generovanie videa z referenčných obrázkov a textového scenára. Pomáha zachovať vzhľad postáv, predmety a vizuálny štýl v novej scéne.
- 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-r2v | Predvolené— |
Poleprompt | Typstring | PožiadavkaPovinné | 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žiadavkaVoliteľné | Hodnoty a limity 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Predvolené16:9 |
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: 9 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
reference_images_to_video · Povinné: prompt, 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_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
z=urlsplit(u) if isinstance(u,str) else None
if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["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/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-r2v, happyhorse-r2v, happyhorse-r2v-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-r2v-latest
happyhorse-r2v-latesthappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Úvod
Model na generovanie videa z referenčných obrázkov a textového scenára. Pomáha zachovať vzhľad postáv, predmety a vizuálny štýl v novej scéne.
- 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-r2v-latest | Predvolené— |
Poleprompt | Typstring | PožiadavkaPovinné | 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žiadavkaVoliteľné | Hodnoty a limity 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Predvolené16:9 |
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: 9 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
reference_images_to_video · Povinné: prompt, 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_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
z=urlsplit(u) if isinstance(u,str) else None
if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["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/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-r2v, happyhorse-r2v, happyhorse-r2v-latest
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · happyhorse-1.1-r2v
- Aké vstupy a výsledky sú dostupné?
POST /v1/videos/generations·happyhorse-1.1-r2v:text,image→videoPOST /v1/videos/generations·happyhorse-r2v:text,image→videoPOST /v1/videos/generations·happyhorse-r2v-latest:text,image→video- Aké polia používa požiadavka?
POST /v1/videos/generations·happyhorse-1.1-r2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-r2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-r2v-latest:model,prompt,duration,resolution,ratio,image_urls- Aké limity platia?
POST /v1/videos/generations·happyhorse-1.1-r2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-r2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-r2v-latest:duration.minimum:3;duration.maximum:15