happyhorse-1.1-t2v
En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.
- Ailoot · Videogenerering
POST /v1/videos/generationshappyhorse-1.1-t2v - Ailoot · Videogenerering
POST /v1/videos/generationshappyhorse-t2v - Ailoot · Videogenerering
POST /v1/videos/generationshappyhorse-t2v-latest
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
HappyHorse-1.1-T2V er en modell fra Alibaba som lager korte videoscener fra tekst. Beskrivelsen angir figurer, handlinger, omgivelser og visuell utforming; denne modusen trenger ikke et kildebilde. Modellen lager videoen og kan generere tilhørende lyd.
Produsenten fremhever forståelse av scenens innhold, filmatisk iscenesettelse og uttrykksfulle bevegelser. Teksten kan bestemme stemning, figurens handlinger, objektenes oppførsel og fysisk dynamikk. Dermed kan scenen bygges rundt det som skal skje, og deretter styres med lys, synsvinkel og kamerabevegelse.
Iscenesettelse med ord
En beskrivelse er påkrevd og kan være på hvilket som helst språk. Den kan inneholde opptil 5000 ikke-kinesiske eller 2500 kinesiske tegn; overskytende tekst fjernes. Handlingen, omgivelsene og viktige visuelle detaljer må beskrives innenfor denne grensen. Denne formen for iscenesettelse gir modellen rom til å lage en ny scene i stedet for å fastsette et ferdig første bilde.
I denne modusen er tekst det viktigste styringsmaterialet. En bestemt figur eller gjenstand kan beskrives med ord; muligheten til å gi utseendet gjennom egne bilder hører til en annen modus i familien. Resultatet avhenger av hele beskrivelsen, så samme tilfeldige startverdi bidrar til lignende varianter, men garanterer ikke en nøyaktig gjentakelse.
Video og tilhørende lyd
For HappyHorse-1.1 velges videovarigheten som et heltall fra 3 til 15 sekunder. Oppløsningene 480P, 720P og 1080P støttes. Den ferdige filen er MP4 med 24 bilder per sekund. Modellen kan generere lyd sammen med bildet og knytte lyden til det som skjer i scenen.
Bildeformen kan angis på forhånd. Tilgjengelige formater er 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 og 21:9, fra brede filmatiske bilder til avlange vertikale videoer. Oppløsning, format og varighet bestemmer resultatets dimensjoner; innhold og bevegelse angis i teksten.
Denne varianten er ment å lage en ny scene fra en idé uttrykt med ord. Den passer til en kort episode, en visuell idé eller en stemningsvideo der iscenesettelsen må beskrives i tekst.
Ailoot · Videogenerering POST /v1/videos/generations happyhorse-1.1-t2v
happyhorse-1.1-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Start
En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.
- Godkjente inndata
- Tekst
- Resultater
- Video
Tilgjengelig i Ailoot · inndata & metoder
Ailoot · Videogenerering POST /v1/videos/generations
- Inndatatyper
text- Utdatatyper
video- Utdataformat
- mp4
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser happyhorse-1.1-t2v | Standard— |
Feltprompt | Typestring | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feltimage_urls | Typehttps_url|data_image_url[] | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinasjoner av inngående materialer
Tekst til video · Påkrevd: prompt
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, prompt |
Parametermaterial_types | Avtaletext |
Parameteroptional | Avtaleduration, resolution, ratio |
Parameterduration_integer_range | Avtale3, 15 |
Parameterdefault_duration | Avtale5 |
Parameterresolution | Avtale480P, 720P, 1080P |
Parameterdefault_resolution | Avtale720P |
Parameterratio | Avtale16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Parameterratio_must_omit | Avtalefalse |
Parameterimage_urls | Avtale{"max_count":0} |
Livssyklus: 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
Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.
Priser
Satser for Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 USD per sekund ved 1080p
- Utdata
- 0,07 USD per sekund ved 480p
- Utdata
- 0,14 USD per sekund ved 720p
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot · Videogenerering
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Motta og lagre resultater
Ailoot · Videogenerering
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontroller jobbstatus
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
Lagre alle ferdige ressurser
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
Andre innholdslesinger
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
Behold alle ferdige resultater
Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.
Bevar hvert returnert dataelement og hver utdataindeks. content_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.
Hvis det opprinnelige svaret må kontrolleres
Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Svar409 · video_not_ready | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
Svarserver_error | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |
Aliaser
Modellaliaser
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot · Videogenerering POST /v1/videos/generations happyhorse-t2v
happyhorse-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Start
En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.
- Godkjente inndata
- Tekst
- Resultater
- Video
Tilgjengelig i Ailoot · inndata & metoder
Ailoot · Videogenerering POST /v1/videos/generations
- Inndatatyper
text- Utdatatyper
video- Utdataformat
- mp4
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser happyhorse-t2v | Standard— |
Feltprompt | Typestring | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feltimage_urls | Typehttps_url|data_image_url[] | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinasjoner av inngående materialer
Tekst til video · Påkrevd: prompt
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametermaterial_types | Avtaletext |
Parameterrequired | Avtalenull |
Parameteroptional_controls | Avtalenull |
Livssyklus: 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
Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.
Priser
Satser for Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 USD per sekund ved 1080p
- Utdata
- 0,07 USD per sekund ved 480p
- Utdata
- 0,14 USD per sekund ved 720p
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot · Videogenerering
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Motta og lagre resultater
Ailoot · Videogenerering
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontroller jobbstatus
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
Lagre alle ferdige ressurser
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
Andre innholdslesinger
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
Behold alle ferdige resultater
Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.
Bevar hvert returnert dataelement og hver utdataindeks. content_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.
Hvis det opprinnelige svaret må kontrolleres
Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Svar409 · video_not_ready | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
Svarserver_error | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |
Aliaser
Modellaliaser
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot · Videogenerering POST /v1/videos/generations happyhorse-t2v-latest
happyhorse-t2v-latesthappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Start
En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.
- Godkjente inndata
- Tekst
- Resultater
- Video
Tilgjengelig i Ailoot · inndata & metoder
Ailoot · Videogenerering POST /v1/videos/generations
- Inndatatyper
text- Utdatatyper
video- Utdataformat
- mp4
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser happyhorse-t2v-latest | Standard— |
Feltprompt | Typestring | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
Feltimage_urls | Typehttps_url|data_image_url[] | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinasjoner av inngående materialer
Tekst til video · Påkrevd: prompt
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametermaterial_types | Avtaletext |
Parameterrequired | Avtalenull |
Parameteroptional_controls | Avtalenull |
Livssyklus: 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
Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.
Priser
Satser for Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 USD per sekund ved 1080p
- Utdata
- 0,07 USD per sekund ved 480p
- Utdata
- 0,14 USD per sekund ved 720p
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot · Videogenerering
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Motta og lagre resultater
Ailoot · Videogenerering
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontroller jobbstatus
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
Lagre alle ferdige ressurser
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
Andre innholdslesinger
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
Behold alle ferdige resultater
Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.
Bevar hvert returnert dataelement og hver utdataindeks. content_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.
Hvis det opprinnelige svaret må kontrolleres
Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Svar409 · video_not_ready | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
Svarserver_error | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |
Aliaser
Modellaliaser
Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · happyhorse-1.1-t2v
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/videos/generations·happyhorse-1.1-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v:text→videoPOST /v1/videos/generations·happyhorse-t2v-latest:text→video- Hvilke felt bruker forespørselen?
POST /v1/videos/generations·happyhorse-1.1-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v:model,prompt,duration,resolution,ratio,image_urlsPOST /v1/videos/generations·happyhorse-t2v-latest:model,prompt,duration,resolution,ratio,image_urls- Hvilke grenser gjelder?
POST /v1/videos/generations·happyhorse-1.1-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v:duration.minimum:3;duration.maximum:15POST /v1/videos/generations·happyhorse-t2v-latest:duration.minimum:3;duration.maximum:15