happyhorse-1.1-r2v
Model za ustvarjanje videa na podlagi referenčnih slik in besedilnega scenarija. Pomaga ohranjati videz likov, predmete in vizualni slog v novi sceni.
- Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-1.1-r2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-r2v - Ailoot · Videoposnetki
POST /v1/videos/generationshappyhorse-r2v-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-R2V ustvarja novo videosceno na podlagi referenčnih slik in besedilnega navodila. Alibaba model usmerja v ohranjanje prepoznavnih likov, objektov in vizualnega sloga pri ustvarjanju gibanja. Reference določajo vsebino in videz scene, besedilo pa opisuje, kako naj ti elementi medsebojno delujejo.
Vloge vizualnih vzorcev
Uporabite lahko od ene do devet slik. Te lahko določajo lik, predmet, okolje ali umetniško izvedbo. V opisu lahko navedete številko reference in konkreten objekt na njej, da vizualno gradivo povežete z ustreznim delom dogajanja. To je zlasti koristno, kadar je treba elemente več slik združiti v eno kompozicijo.
V nasprotju z načinom z začetnim kadrom reference tu služijo kot opora za vsebino nove scene. Besedilno navodilo je obvezno: videz objektov povezuje z dogajanjem, gibanjem kamere in celotno postavitvijo. Proizvajalec izpostavlja vizualno skladnost in filmsko gibanje; rezultat ostaja generirana vsebina in ne montaža izvirnih slik.
Sprejeti so formati JPEG, JPG, PNG in WEBP, vsak z velikostjo do 20 MB. Krajša stranica slike mora imeti najmanj 400 slikovnih pik; priporočeno je gradivo z ločljivostjo 720P ali višjo. Vhod v ta način sestavljajo prav slike in besedilo.
Trajanje, kader in zvok
Rezultat se shrani v MP4 s hitrostjo 24 sličic na sekundo. Trajanje določite kot celo število od 3 do 15 sekund. Izbirate lahko med ločljivostmi 480P, 720P in 1080P; podprto je ustvarjanje zvočne spremljave.
Na voljo so ležeči, pokončni in kvadratni kadri: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 in 21:9. Izbira formata pomaga vnaprej določiti kompozicijski prostor nove scene.
Besedilo je lahko v katerem koli jeziku. Omejitev znaša 5000 nekitajskih ali 2500 kitajskih znakov, presežni del pa se zavrže. Najpomembnejše vloge referenc, dogajanje in gibanje morajo biti opisani znotraj tega obsega. Začetno naključno seme lahko usmerja podobnost različic, ne zagotavlja pa natančne ponovitve posameznega posnetka.
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-1.1-r2v
happyhorse-1.1-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Začetek
Model za ustvarjanje videa na podlagi referenčnih slik in besedilnega scenarija. Pomaga ohranjati videz likov, predmete in vizualni slog v novi sceni.
- 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-r2v | 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[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 9 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
reference_images_to_video · Obvezno: prompt, image_urls
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, prompt, image_urls |
Parametermaterial_types | Specifikacijatext, image |
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{"min_count":1,"max_count":9,"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_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
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-r2v, happyhorse-r2v, happyhorse-r2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-r2v
happyhorse-r2vhappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Začetek
Model za ustvarjanje videa na podlagi referenčnih slik in besedilnega scenarija. Pomaga ohranjati videz likov, predmete in vizualni slog v novi sceni.
- 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-r2v | 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[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 9 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
reference_images_to_video · Obvezno: prompt, 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_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
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-r2v, happyhorse-r2v, happyhorse-r2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot · Videoposnetki POST /v1/videos/generations happyhorse-r2v-latest
happyhorse-r2v-latesthappyhorse-1.1-r2vhappyhorse-r2vhappyhorse-r2v-latest
Začetek
Model za ustvarjanje videa na podlagi referenčnih slik in besedilnega scenarija. Pomaga ohranjati videz likov, predmete in vizualni slog v novi sceni.
- 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-r2v-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[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 9 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |
Kombinacije vhodnih gradiv
reference_images_to_video · Obvezno: prompt, 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_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
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-r2v, happyhorse-r2v, happyhorse-r2v-latest
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
FAQ · happyhorse-1.1-r2v
- Kateri vhodi in rezultati so na voljo?
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- Katera polja uporablja zahteva?
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- Katere omejitve veljajo?
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