happyhorse-1.1-i2v
Model, der gør et billede levende: udgangsbilledet angiver første frame, mens beskrivelsen styrer den efterfølgende bevægelse. Skaber en kort video med mulighed for lyd.
- Ailoot · Videoer
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Videoer
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Videoer
POST /v1/videos/generationshappyhorse-i2v-latest
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
HappyHorse-1.1-I2V er en model fra Alibaba, der begynder en videoscene med et færdigt billede. Billedet bliver første frame, og teksten kan fastlægge den efterfølgende handling: figurens bevægelse, ændringer i scenen og kameraets retning. Det egner sig til at gøre en illustration, et produktfoto eller et forberedt visuelt koncept levende.
Tekstbeskrivelsen er valgfri. Uden den udleder modellen selv mulig bevægelse fra indholdet i startbilledet. Med en udtrykkelig instruktion fastlægger udgangsbilledet kompositionen og objekternes udseende, mens ordene styrer scenens udvikling over tid.
Fra første frame til bevægelse
Alibaba fremhæver bevarelse af figurens udseende, visuel sammenhæng, jævn bevægelse og kombinationen af billede og lyd. Blandt de beskrevne fokusområder er også stabile tekster og overfladestrukturer. Disse egenskaber vedrører modellens udformning og betyder ikke, at hver pixel bevares bogstaveligt i alle genererede frames.
Denne tilstand bruger ét startbillede. Det angiver udgangsscenen og er ikke et sæt uafhængige eksempler til en ny komposition. Muligheden for at angive en særskilt slutframe er ikke beskrevet for denne version.
JPEG, JPG, PNG og WEBP accepteres. Hver side af inputbilledet skal være mindst 300 pixels; det tilladte billedformat er fra 1:2,5 til 2,5:1, og filstørrelsen højst 20 MB. Den færdige videos billedformat følger første frame.
Videoens parametre
Varigheden vælges som et heltal fra 3 til 15 sekunder. Opløsningerne 480P, 720P og 1080P er tilgængelige; outputformatet er MP4 med 24 frames i sekundet. Lyd kan genereres sammen med videoen.
Beskrivelsen kan være på ethvert sprog og indeholde op til 5000 ikke-kinesiske eller 2500 kinesiske tegn. Overskrides grænsen, kasseres den overskydende del, så vigtige handlinger og bevægelsesegenskaber bør beskrives inden for opgavens rammer. Samme tilfældighedsseed kan give lignende videoer, men garanterer ikke, at de er ens frame for frame.
Ailoot · Videoer POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Model, der gør et billede levende: udgangsbilledet angiver første frame, mens beskrivelsen styrer den efterfølgende bevægelse. Skaber en kort video med mulighed for lyd.
- Accepterede input
- Tekst · Billeder
- Resultater
- Video
Tilgængelig i Ailoot · input og metoder
Ailoot · Videoer POST /v1/videos/generations
- Inputtyper
text,image- Outputtyper
video- Outputformat
- mp4
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser happyhorse-1.1-i2v | Standard— |
Feltprompt | Typestring | KravValgfrit | Værdier og grænser Minimumslængde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravIkke understøttet | Værdier og grænser | Standard— |
Feltimage_urls | Typehttps_url|data_image_url[] | KravPåkrævet | Værdier og grænser Minimumsantal elementer: 1 Maksimalt antal elementer: 1 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer af inputmaterialer
first_frame_to_video · Påkrævet: image_urls
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, image_urls |
Parametermaterial_types | Kontrakttext, image |
Parameteroptional | Kontraktduration, resolution, ratio, prompt |
Parameterduration_integer_range | Kontrakt3, 15 |
Parameterdefault_duration | Kontrakt5 |
Parameterresolution | Kontrakt480P, 720P, 1080P |
Parameterdefault_resolution | Kontrakt720P |
Parameterratio | Kontrakt |
Parameterratio_must_omit | Kontrakttrue |
Parameterimage_urls | Kontrakt{"min_count":1,"max_count":1,"schemes":["https","base64-kodede rasterdata"],"max_data_image_bytes":20971520} |
Livscyklus: 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
Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.
Priser
Ailoot-metodetakster
POST /v1/videos/generations- Output
- 0,18 US$ pr. sekund ved 1080p
- Output
- 0,07 US$ pr. sekund ved 480p
- Output
- 0,14 US$ pr. sekund ved 720p
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot · Videoer
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
Hent og gem resultater
Ailoot · Videoer
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollér opgavestatus
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
Gem alle færdige filer
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
Læsning af andet indhold
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 færdige resultater
Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.
Bevar hvert returneret dataelement og outputindeks. content_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.
Hvis det oprindelige svar skal kontrolleres
Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Svar409 · video_not_ready | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
Svarserver_error | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |
Aliaser
Modelaliaser
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
Ailoot · Videoer POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Model, der gør et billede levende: udgangsbilledet angiver første frame, mens beskrivelsen styrer den efterfølgende bevægelse. Skaber en kort video med mulighed for lyd.
- Accepterede input
- Tekst · Billeder
- Resultater
- Video
Tilgængelig i Ailoot · input og metoder
Ailoot · Videoer POST /v1/videos/generations
- Inputtyper
text,image- Outputtyper
video- Outputformat
- mp4
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser happyhorse-i2v | Standard— |
Feltprompt | Typestring | KravValgfrit | Værdier og grænser Minimumslængde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravIkke understøttet | Værdier og grænser | Standard— |
Feltimage_urls | Typehttps_url|data_image_url[] | KravPåkrævet | Værdier og grænser Minimumsantal elementer: 1 Maksimalt antal elementer: 1 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer af inputmaterialer
first_frame_to_video · Påkrævet: image_urls
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametermaterial_types | Kontrakttext, image |
Parameterrequired | Kontraktnull |
Parameteroptional_controls | Kontraktnull |
Livscyklus: 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
Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.
Priser
Ailoot-metodetakster
POST /v1/videos/generations- Output
- 0,18 US$ pr. sekund ved 1080p
- Output
- 0,07 US$ pr. sekund ved 480p
- Output
- 0,14 US$ pr. sekund ved 720p
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot · Videoer
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
Hent og gem resultater
Ailoot · Videoer
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollér opgavestatus
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
Gem alle færdige filer
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
Læsning af andet indhold
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 færdige resultater
Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.
Bevar hvert returneret dataelement og outputindeks. content_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.
Hvis det oprindelige svar skal kontrolleres
Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Svar409 · video_not_ready | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
Svarserver_error | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |
Aliaser
Modelaliaser
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
Ailoot · Videoer POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Model, der gør et billede levende: udgangsbilledet angiver første frame, mens beskrivelsen styrer den efterfølgende bevægelse. Skaber en kort video med mulighed for lyd.
- Accepterede input
- Tekst · Billeder
- Resultater
- Video
Tilgængelig i Ailoot · input og metoder
Ailoot · Videoer POST /v1/videos/generations
- Inputtyper
text,image- Outputtyper
video- Outputformat
- mp4
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser happyhorse-i2v-latest | Standard— |
Feltprompt | Typestring | KravValgfrit | Værdier og grænser Minimumslængde: 1 | Standard— |
Feltduration | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
Feltresolution | Typestring | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
Feltratio | Typestring | KravIkke understøttet | Værdier og grænser | Standard— |
Feltimage_urls | Typehttps_url|data_image_url[] | KravPåkrævet | Værdier og grænser Minimumsantal elementer: 1 Maksimalt antal elementer: 1 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer af inputmaterialer
first_frame_to_video · Påkrævet: image_urls
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametermaterial_types | Kontrakttext, image |
Parameterrequired | Kontraktnull |
Parameteroptional_controls | Kontraktnull |
Livscyklus: 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
Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.
Priser
Ailoot-metodetakster
POST /v1/videos/generations- Output
- 0,18 US$ pr. sekund ved 1080p
- Output
- 0,07 US$ pr. sekund ved 480p
- Output
- 0,14 US$ pr. sekund ved 720p
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot · Videoer
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
Hent og gem resultater
Ailoot · Videoer
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollér opgavestatus
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
Gem alle færdige filer
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
Læsning af andet indhold
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 færdige resultater
Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.
Bevar hvert returneret dataelement og outputindeks. content_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.
Hvis det oprindelige svar skal kontrolleres
Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltobject | Typestring |
Feltmodel | Typestring |
Feltstatus | Typestring |
Feltcontent_url | Typesigned URL |
Feltdata[] | Typesigned URL |
Feltusage | Typeobject |
Feltresult_pending_check | Typeboolean |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Svar409 · video_not_ready | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
Svarserver_error | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |
Aliaser
Modelaliaser
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
FAQ · happyhorse-1.1-i2v
- Hvilke input og resultater er tilgængelige?
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- Hvilke felter bruger anmodningen?
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- Hvilke grænser gælder?
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