happyhorse-1.1-i2v
Kuvan animointimalli: lähtökuva määrittää ensimmäisen ruudun ja kuvaus ohjaa myöhempää liikettä. Luo lyhyen videon, johon voidaan tuottaa myös ääni.
- Ailoot · Videot
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Videot
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Videot
POST /v1/videos/generationshappyhorse-i2v-latest
Tietoa mallista
Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.
HappyHorse-1.1-I2V on Alibaban malli, joka aloittaa videokohtauksen valmiista kuvasta. Kuvasta tulee ensimmäinen ruutu, ja teksti voi määrittää jatkotoiminnan: hahmon liikkeen, kohtauksen muutokset ja kameran suunnan. Se sopii kuvituksen, tuotekuvan tai ennalta valmistellun visuaalisen konseptin animointiin.
Tekstikuvaus on valinnainen. Ilman sitä malli päättelee mahdollisen liikkeen aloituskuvan sisällöstä. Kun ohje annetaan, lähtökuva määrittää sommittelun ja kohteiden ulkonäön, ja sanat ohjaavat kohtauksen ajallista kehitystä.
Ensimmäisestä ruudusta liikkeeseen
Alibaba korostaa hahmon ulkonäön säilymistä, visuaalista yhtenäisyyttä, sujuvaa liikettä ja kuvan yhdistämistä ääneen. Kuvattuihin painopisteisiin kuuluu myös tekstien ja pintarakenteiden vakaus. Ominaisuudet koskevat mallin suunnittelua eivätkä tarkoita jokaisen pikselin kirjaimellista säilymistä kaikissa tuotetuissa ruuduissa.
Tässä tilassa käytetään yhtä aloituskuvaa. Se määrittää lähtökohtauksen eikä muodosta erillisten esimerkkien joukkoa uutta sommittelua varten. Erillisen loppuruudun määrittämistä ei ole kuvattu tälle versiolle.
JPEG, JPG, PNG ja WEBP hyväksytään. Syötekuvan jokaisen sivun on oltava vähintään 300 pikseliä; sallittu kuvasuhde on 1:2,5–2,5:1 ja tiedostokoko enintään 20 Mt. Valmiin videon kuvasuhde seuraa ensimmäistä ruutua.
Videon asetukset
Kesto valitaan kokonaislukuna 3–15 sekuntia. Tarkkuudet 480P, 720P ja 1080P ovat käytettävissä; tiedostomuoto on MP4 ja kuvataajuus 24 ruutua sekunnissa. Ääni voidaan luoda videon yhteydessä.
Kuvaus voi olla millä tahansa kielellä ja sisältää enintään 5000 muuta kuin kiinalaista tai 2500 kiinalaista merkkiä. Ylittävä osa poistetaan, joten tärkeät tapahtumat ja liikkeen ominaisuudet on kuvattava annetun tehtävän rajoissa. Sama satunnaissiementä määrittävä arvo voi tuottaa samankaltaisia videoita, mutta ei takaa ruutukohtaista vastaavuutta.
Ailoot · Videot POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Aloitus
Kuvan animointimalli: lähtökuva määrittää ensimmäisen ruudun ja kuvaus ohjaa myöhempää liikettä. Luo lyhyen videon, johon voidaan tuottaa myös ääni.
- Hyväksytyt syötteet
- Teksti · Kuvat
- Tulokset
- Video
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Videot POST /v1/videos/generations
- Syötetyypit
text,image- Tulostyypit
video- Tulosteen muoto
- mp4
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat happyhorse-1.1-i2v | Oletus— |
Kenttäprompt | Tyyppistring | VaatimusValinnainen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
Kenttäduration | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
Kenttäresolution | Tyyppistring | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
Kenttäratio | Tyyppistring | VaatimusEi tuettu | Arvot & rajat | Oletus— |
Kenttäimage_urls | Tyyppihttps_url|data_image_url[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 Kohteiden enimmäismäärä: 1 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |
Syöteaineistojen yhdistelmät
first_frame_to_video · Pakollinen: image_urls
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusmodel, image_urls |
Parametrimaterial_types | Sopimustext, image |
Parametrioptional | Sopimusduration, resolution, ratio, prompt |
Parametriduration_integer_range | Sopimus3, 15 |
Parametridefault_duration | Sopimus5 |
Parametriresolution | Sopimus480P, 720P, 1080P |
Parametridefault_resolution | Sopimus720P |
Parametriratio | Sopimus |
Parametriratio_must_omit | Sopimustrue |
Parametriimage_urls | Sopimus{"min_count":1,"max_count":1,"schemes":["https","rasterikuvan data base64-muodossa"],"max_data_image_bytes":20971520} |
Elinkaari: 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
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1/videos/generations- Tuloste
- 0,18 $ sekuntia kohden 1080p-tarkkuudella
- Tuloste
- 0,07 $ sekuntia kohden 480p-tarkkuudella
- Tuloste
- 0,14 $ sekuntia kohden 720p-tarkkuudella
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot · Videot
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
Vastaanota ja tallenna tulokset
Ailoot · Videot
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Tarkista työn tila
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
Tallenna kaikki valmistuneet aineistot
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
Muut sisällön lukukerrat
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
Säilytä kaikki valmistuneet tulokset
Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.
Säilytä jokainen palautettu data-alkio ja tulosindeksi. content_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.
Jos alkuperäinen vastaus on tarkistettava
Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttäobject | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttästatus | Tyyppistring |
Kenttäcontent_url | Tyyppisigned URL |
Kenttädata[] | Tyyppisigned URL |
Kenttäusage | Tyyppiobject |
Kenttäresult_pending_check | Tyyppiboolean |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Vastaus409 · video_not_ready | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
Vastausserver_error | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |
Aliakset
Mallin aliakset
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
Ailoot · Videot POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Aloitus
Kuvan animointimalli: lähtökuva määrittää ensimmäisen ruudun ja kuvaus ohjaa myöhempää liikettä. Luo lyhyen videon, johon voidaan tuottaa myös ääni.
- Hyväksytyt syötteet
- Teksti · Kuvat
- Tulokset
- Video
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Videot POST /v1/videos/generations
- Syötetyypit
text,image- Tulostyypit
video- Tulosteen muoto
- mp4
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat happyhorse-i2v | Oletus— |
Kenttäprompt | Tyyppistring | VaatimusValinnainen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
Kenttäduration | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
Kenttäresolution | Tyyppistring | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
Kenttäratio | Tyyppistring | VaatimusEi tuettu | Arvot & rajat | Oletus— |
Kenttäimage_urls | Tyyppihttps_url|data_image_url[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 Kohteiden enimmäismäärä: 1 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |
Syöteaineistojen yhdistelmät
first_frame_to_video · Pakollinen: image_urls
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametrimaterial_types | Sopimustext, image |
Parametrirequired | Sopimusnull |
Parametrioptional_controls | Sopimusnull |
Elinkaari: 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
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1/videos/generations- Tuloste
- 0,18 $ sekuntia kohden 1080p-tarkkuudella
- Tuloste
- 0,07 $ sekuntia kohden 480p-tarkkuudella
- Tuloste
- 0,14 $ sekuntia kohden 720p-tarkkuudella
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot · Videot
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
Vastaanota ja tallenna tulokset
Ailoot · Videot
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Tarkista työn tila
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
Tallenna kaikki valmistuneet aineistot
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
Muut sisällön lukukerrat
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
Säilytä kaikki valmistuneet tulokset
Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.
Säilytä jokainen palautettu data-alkio ja tulosindeksi. content_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.
Jos alkuperäinen vastaus on tarkistettava
Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttäobject | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttästatus | Tyyppistring |
Kenttäcontent_url | Tyyppisigned URL |
Kenttädata[] | Tyyppisigned URL |
Kenttäusage | Tyyppiobject |
Kenttäresult_pending_check | Tyyppiboolean |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Vastaus409 · video_not_ready | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
Vastausserver_error | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |
Aliakset
Mallin aliakset
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
Ailoot · Videot POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Aloitus
Kuvan animointimalli: lähtökuva määrittää ensimmäisen ruudun ja kuvaus ohjaa myöhempää liikettä. Luo lyhyen videon, johon voidaan tuottaa myös ääni.
- Hyväksytyt syötteet
- Teksti · Kuvat
- Tulokset
- Video
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Videot POST /v1/videos/generations
- Syötetyypit
text,image- Tulostyypit
video- Tulosteen muoto
- mp4
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat happyhorse-i2v-latest | Oletus— |
Kenttäprompt | Tyyppistring | VaatimusValinnainen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
Kenttäduration | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
Kenttäresolution | Tyyppistring | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
Kenttäratio | Tyyppistring | VaatimusEi tuettu | Arvot & rajat | Oletus— |
Kenttäimage_urls | Tyyppihttps_url|data_image_url[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 Kohteiden enimmäismäärä: 1 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |
Syöteaineistojen yhdistelmät
first_frame_to_video · Pakollinen: image_urls
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametrimaterial_types | Sopimustext, image |
Parametrirequired | Sopimusnull |
Parametrioptional_controls | Sopimusnull |
Elinkaari: 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
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1/videos/generations- Tuloste
- 0,18 $ sekuntia kohden 1080p-tarkkuudella
- Tuloste
- 0,07 $ sekuntia kohden 480p-tarkkuudella
- Tuloste
- 0,14 $ sekuntia kohden 720p-tarkkuudella
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot · Videot
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
Vastaanota ja tallenna tulokset
Ailoot · Videot
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Tarkista työn tila
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
Tallenna kaikki valmistuneet aineistot
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
Muut sisällön lukukerrat
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
Säilytä kaikki valmistuneet tulokset
Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.
Säilytä jokainen palautettu data-alkio ja tulosindeksi. content_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.
Jos alkuperäinen vastaus on tarkistettava
Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttäobject | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttästatus | Tyyppistring |
Kenttäcontent_url | Tyyppisigned URL |
Kenttädata[] | Tyyppisigned URL |
Kenttäusage | Tyyppiobject |
Kenttäresult_pending_check | Tyyppiboolean |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Vastaus409 · video_not_ready | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
Vastausserver_error | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |
Aliakset
Mallin aliakset
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
FAQ · happyhorse-1.1-i2v
- Mitä syötteitä ja tuloksia on saatavilla?
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- Mitä kenttiä pyyntö käyttää?
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- Mitä rajoja sovelletaan?
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