happyhorse-1.1-i2v
Modell som ger liv åt en bild: den ursprungliga bilden anger den första bildrutan, medan beskrivningen styr den fortsatta rörelsen. Skapar en kort video med möjlighet till ljud.
- Ailoot · Videor
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Videor
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Videor
POST /v1/videos/generationshappyhorse-i2v-latest
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
HappyHorse-1.1-I2V är en modell från Alibaba som inleder en videoscen med en färdig bild. Bilden blir den första bildrutan, och texten kan ange vad som sedan händer: karaktärens rörelser, förändringar i scenen och kamerans riktning. Det passar för att ge liv åt en illustration, ett produktfoto eller ett visuellt koncept som har förberetts i förväg.
Textbeskrivningen är valfri. Om den saknas härleder modellen själv möjliga rörelser ur innehållet i den första bilden. Med en uttrycklig instruktion anger ursprungsbilden kompositionen och objektens utseende, medan orden styr hur scenen utvecklas över tid.
Från första bildrutan till rörelse
Alibaba framhåller bevarandet av karaktärens utseende, visuell sammanhållning, jämna rörelser och kombinationen av bild och ljud. Även stabila texter och texturer ingår bland de angivna egenskaperna. Egenskaperna beskriver modellens avsikt och innebär inte att varje pixel bevaras exakt i alla genererade bildrutor.
Det här läget använder en enda startbild. Den anger den ursprungliga scenen och utgör inte en uppsättning fristående referenser för en ny komposition. Möjligheten att ange en separat slutbildruta har inte uppgetts för just den här versionen.
JPEG, JPG, PNG och WEBP accepteras. Varje sida av indatabilden måste vara minst 300 pixlar. Tillåtet bildförhållande är från 1:2,5 till 2,5:1 och filstorleken högst 20 MB. Den färdiga videons bildförhållande följer den första bildrutan.
Videons parametrar
Längden väljs som ett heltal från 3 till 15 sekunder. Upplösningarna 480P, 720P och 1080P finns tillgängliga. Utdataformatet är MP4 med 24 bildrutor per sekund. Ljud kan skapas tillsammans med videon.
Beskrivningen kan vara på vilket språk som helst och innehålla upp till 5000 icke-kinesiska eller 2500 kinesiska tecken. Överskrids gränsen tas den överskjutande delen bort. Viktiga handlingar och rörelser bör därför beskrivas inom instruktionens gräns. Samma inledande slumpfrö kan ge liknande videor men garanterar inte att de blir identiska bildruta för bildruta.
Ailoot · Videor POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Modell som ger liv åt en bild: den ursprungliga bilden anger den första bildrutan, medan beskrivningen styr den fortsatta rörelsen. Skapar en kort video med möjlighet till ljud.
- Godkända indata
- Text · Bilder
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot · Videor POST /v1/videos/generations
- Indatatyper
text,image- Utdatatyper
video- Utdataformat
- mp4
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser happyhorse-1.1-i2v | Standard— |
Fältprompt | Typstring | KravValfritt | Värden & gränser Minsta längd: 1 | Standard— |
Fältduration | Typinteger | KravValfritt | Värden & gränser Minimum: 3 Maximum: 15 Enhet: sekunder | Standard5 |
Fältresolution | Typstring | KravValfritt | Värden & gränser 480P, 720P, 1080P | Standard720P |
Fältratio | Typstring | KravStöds inte | Värden & gränser | Standard— |
Fältimage_urls | Typhttps_url|data_image_url[] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 Maximalt antal objekt: 1 Maximalt antal avkodade byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer av indatamaterial
first_frame_to_video · Krävs: image_urls
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, image_urls |
Parametermaterial_types | Avtaltext, image |
Parameteroptional | Avtalduration, resolution, ratio, prompt |
Parameterduration_integer_range | Avtal3, 15 |
Parameterdefault_duration | Avtal5 |
Parameterresolution | Avtal480P, 720P, 1080P |
Parameterdefault_resolution | Avtal720P |
Parameterratio | Avtal |
Parameterratio_must_omit | Avtaltrue |
Parameterimage_urls | Avtal{"min_count":1,"max_count":1,"schemes":["https","data för rasterbild i base64"],"max_data_image_bytes":20971520} |
Livscykel: 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
Metodernas strukturer och ID:n är exakta; leverantörens funktioner är åtskilda från att begäran tillåts.
Priser
Priser för Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 US$ per sekund vid 1080p
- Utdata
- 0,07 US$ per sekund vid 480p
- Utdata
- 0,14 US$ per sekund vid 720p
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot · Videor
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
Ta emot och spara resultat
Ailoot · Videor
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollera 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
Spara alla färdiga resurser
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
Andra innehållsläsningar
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
Behåll alla färdiga resultat
Spara varje färdig video eller returnerad fil; hämta varje faktiskt returnerad resurs-URL.
Bevara varje returnerad datapost och utdataindex. content_url avser endast det första; hämta varje faktisk innehållssökväg och tillgång. GET av innehåll utan index omfattar inte alla resultat.
Om det ursprungliga svaret behöver kontrolleras
Läs det befintliga ursprungliga jobbet; skicka aldrig en oklar sändning igen.
Svarsfält
| Fält | Typ |
|---|---|
Fältid | Typstring |
Fältobject | Typstring |
Fältmodel | Typstring |
Fältstatus | Typstring |
Fältcontent_url | Typsigned URL |
Fältdata[] | Typsigned URL |
Fältusage | Typobject |
Fältresult_pending_check | Typboolean |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |
Svar409 · video_not_ready | VillkorDet ursprungliga resultatinnehållet är ännu inte tillgängligt | Nästa stegKontrollera det ursprungliga returnerade ID:t och följ Retry-After. |
Svarserver_error | VillkorDet returnerade svaret anger att operationen eller resultatet behöver kontrolleras | Nästa stegSpara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen. |
Alias
Modellalias
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
Ailoot · Videor POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Modell som ger liv åt en bild: den ursprungliga bilden anger den första bildrutan, medan beskrivningen styr den fortsatta rörelsen. Skapar en kort video med möjlighet till ljud.
- Godkända indata
- Text · Bilder
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot · Videor POST /v1/videos/generations
- Indatatyper
text,image- Utdatatyper
video- Utdataformat
- mp4
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser happyhorse-i2v | Standard— |
Fältprompt | Typstring | KravValfritt | Värden & gränser Minsta längd: 1 | Standard— |
Fältduration | Typinteger | KravValfritt | Värden & gränser Minimum: 3 Maximum: 15 Enhet: sekunder | Standard5 |
Fältresolution | Typstring | KravValfritt | Värden & gränser 480P, 720P, 1080P | Standard720P |
Fältratio | Typstring | KravStöds inte | Värden & gränser | Standard— |
Fältimage_urls | Typhttps_url|data_image_url[] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 Maximalt antal objekt: 1 Maximalt antal avkodade byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer av indatamaterial
first_frame_to_video · Krävs: image_urls
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametermaterial_types | Avtaltext, image |
Parameterrequired | Avtalnull |
Parameteroptional_controls | Avtalnull |
Livscykel: 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
Metodernas strukturer och ID:n är exakta; leverantörens funktioner är åtskilda från att begäran tillåts.
Priser
Priser för Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 US$ per sekund vid 1080p
- Utdata
- 0,07 US$ per sekund vid 480p
- Utdata
- 0,14 US$ per sekund vid 720p
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot · Videor
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
Ta emot och spara resultat
Ailoot · Videor
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollera 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
Spara alla färdiga resurser
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
Andra innehållsläsningar
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
Behåll alla färdiga resultat
Spara varje färdig video eller returnerad fil; hämta varje faktiskt returnerad resurs-URL.
Bevara varje returnerad datapost och utdataindex. content_url avser endast det första; hämta varje faktisk innehållssökväg och tillgång. GET av innehåll utan index omfattar inte alla resultat.
Om det ursprungliga svaret behöver kontrolleras
Läs det befintliga ursprungliga jobbet; skicka aldrig en oklar sändning igen.
Svarsfält
| Fält | Typ |
|---|---|
Fältid | Typstring |
Fältobject | Typstring |
Fältmodel | Typstring |
Fältstatus | Typstring |
Fältcontent_url | Typsigned URL |
Fältdata[] | Typsigned URL |
Fältusage | Typobject |
Fältresult_pending_check | Typboolean |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |
Svar409 · video_not_ready | VillkorDet ursprungliga resultatinnehållet är ännu inte tillgängligt | Nästa stegKontrollera det ursprungliga returnerade ID:t och följ Retry-After. |
Svarserver_error | VillkorDet returnerade svaret anger att operationen eller resultatet behöver kontrolleras | Nästa stegSpara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen. |
Alias
Modellalias
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
Ailoot · Videor POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Start
Modell som ger liv åt en bild: den ursprungliga bilden anger den första bildrutan, medan beskrivningen styr den fortsatta rörelsen. Skapar en kort video med möjlighet till ljud.
- Godkända indata
- Text · Bilder
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot · Videor POST /v1/videos/generations
- Indatatyper
text,image- Utdatatyper
video- Utdataformat
- mp4
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser happyhorse-i2v-latest | Standard— |
Fältprompt | Typstring | KravValfritt | Värden & gränser Minsta längd: 1 | Standard— |
Fältduration | Typinteger | KravValfritt | Värden & gränser Minimum: 3 Maximum: 15 Enhet: sekunder | Standard5 |
Fältresolution | Typstring | KravValfritt | Värden & gränser 480P, 720P, 1080P | Standard720P |
Fältratio | Typstring | KravStöds inte | Värden & gränser | Standard— |
Fältimage_urls | Typhttps_url|data_image_url[] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 Maximalt antal objekt: 1 Maximalt antal avkodade byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |
Kombinationer av indatamaterial
first_frame_to_video · Krävs: image_urls
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametermaterial_types | Avtaltext, image |
Parameterrequired | Avtalnull |
Parameteroptional_controls | Avtalnull |
Livscykel: 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
Metodernas strukturer och ID:n är exakta; leverantörens funktioner är åtskilda från att begäran tillåts.
Priser
Priser för Ailoot-metoder
POST /v1/videos/generations- Utdata
- 0,18 US$ per sekund vid 1080p
- Utdata
- 0,07 US$ per sekund vid 480p
- Utdata
- 0,14 US$ per sekund vid 720p
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot · Videor
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
Ta emot och spara resultat
Ailoot · Videor
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Kontrollera 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
Spara alla färdiga resurser
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
Andra innehållsläsningar
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
Behåll alla färdiga resultat
Spara varje färdig video eller returnerad fil; hämta varje faktiskt returnerad resurs-URL.
Bevara varje returnerad datapost och utdataindex. content_url avser endast det första; hämta varje faktisk innehållssökväg och tillgång. GET av innehåll utan index omfattar inte alla resultat.
Om det ursprungliga svaret behöver kontrolleras
Läs det befintliga ursprungliga jobbet; skicka aldrig en oklar sändning igen.
Svarsfält
| Fält | Typ |
|---|---|
Fältid | Typstring |
Fältobject | Typstring |
Fältmodel | Typstring |
Fältstatus | Typstring |
Fältcontent_url | Typsigned URL |
Fältdata[] | Typsigned URL |
Fältusage | Typobject |
Fältresult_pending_check | Typboolean |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |
Svar409 · video_not_ready | VillkorDet ursprungliga resultatinnehållet är ännu inte tillgängligt | Nästa stegKontrollera det ursprungliga returnerade ID:t och följ Retry-After. |
Svarserver_error | VillkorDet returnerade svaret anger att operationen eller resultatet behöver kontrolleras | Nästa stegSpara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen. |
Alias
Modellalias
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
FAQ · happyhorse-1.1-i2v
- Vilka indata och resultat finns?
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- Vilka fält använder begäran?
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- Vilka gränser gäller?
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