happyhorse-1.1-i2v
Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.
- Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-i2v-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-I2V je model družbe Alibaba, ki videosceno začne z že pripravljeno sliko. Ta postane prvi kader, besedilo pa lahko določi nadaljnje dogajanje: gibanje lika, spremembe v sceni in smer kamere. Primeren je za oživljanje ilustracije, fotografije izdelka ali vnaprej pripravljenega vizualnega koncepta.
Besedilni opis ni obvezen. Če ga ni, model sam iz vsebine začetne slike izpelje možno gibanje. Če opis podate, izvirna slika določa kompozicijo in videz objektov, besede pa usmerjajo razvoj scene skozi čas.
Od prvega kadra do gibanja
Alibaba izpostavlja ohranjanje videza lika, vizualno skladnost, tekoče gibanje ter povezovanje slike in zvoka. Med navedenimi razvojnimi cilji je tudi obstojnost napisov in tekstur. Te lastnosti opisujejo zasnovo modela in ne pomenijo dobesednega ohranjanja vsake slikovne pike v vseh ustvarjenih kadrih.
Ta način uporablja eno začetno sliko. Ta določa izhodiščno sceno in ne predstavlja nabora neodvisnih vzorcev za novo kompozicijo. Za to konkretno različico možnost določitve ločenega zaključnega kadra ni navedena.
Sprejeti so formati JPEG, JPG, PNG in WEBP. Vsaka stranica vhodne slike mora imeti najmanj 300 slikovnih pik; dovoljeno razmerje stranic je od 1:2,5 do 2,5:1, velikost datoteke pa do 20 MB. Razmerje stranic končnega videa sledi prvemu kadru.
Parametri posnetka
Trajanje izberete kot celo število od 3 do 15 sekund. Na voljo so ločljivosti 480P, 720P in 1080P; izhodni format je MP4, hitrost pa 24 sličic na sekundo. Podprto je ustvarjanje zvočne spremljave skupaj z videom.
Opis je lahko v katerem koli jeziku in vsebuje do 5000 nekitajskih ali 2500 kitajskih znakov. Če to mejo preseže, se presežni del zavrže, zato naj bodo pomembna dejanja in značilnosti gibanja opisana znotraj omejitve. Enako začetno naključno seme lahko da podobne posnetke, ne zagotavlja pa njihovega ujemanja sličico za sličico.
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Začetek
Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.
- Dovoljeni vhodi
- Besedilo · Slike
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text,image- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-1.1-i2v | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaIzbirno | 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 | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
first_frame_to_video · Obvezno: image_urls
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, image_urls |
Parametermaterial_types | Specifikacijatext, image |
Parameteroptional | Specifikacijaduration, resolution, ratio, prompt |
Parameterduration_integer_range | Specifikacija3, 15 |
Parameterdefault_duration | Specifikacija5 |
Parameterresolution | Specifikacija480P, 720P, 1080P |
Parameterdefault_resolution | Specifikacija720P |
Parameterratio | Specifikacija |
Parameterratio_must_omit | Specifikacijatrue |
Parameterimage_urls | Specifikacija{"min_count":1,"max_count":1,"schemes":["https","data za rastrsko sliko v base64"],"max_data_image_bytes":20971520} |
Ž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_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
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-i2v, happyhorse-i2v, happyhorse-i2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Začetek
Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.
- Dovoljeni vhodi
- Besedilo · Slike
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text,image- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-i2v | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaIzbirno | 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 | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
first_frame_to_video · Obvezno: image_urls
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametermaterial_types | Specifikacijatext, image |
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_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
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-i2v, happyhorse-i2v, happyhorse-i2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Začetek
Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.
- Dovoljeni vhodi
- Besedilo · Slike
- Rezultati
- Video
Na voljo v Ailoot · vhodi in metode
Ailoot · Videoposnetki POST /v1/videos/generations
- Vhod
text,image- Izhod
video- Izhodni format
- mp4
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve happyhorse-i2v-latest | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaIzbirno | 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 | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
Poljeimage_urls | Vrstahttps_url|data_image_url[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
first_frame_to_video · Obvezno: image_urls
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametermaterial_types | Specifikacijatext, image |
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_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
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-i2v, happyhorse-i2v, happyhorse-i2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
FAQ · happyhorse-1.1-i2v
- Kateri vhodi in rezultati so na voljo?
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- Katera polja uporablja zahteva?
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- Katere omejitve veljajo?
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