model

happyhorse-1.1-r2v

Markdown · JSON

happyhorse-1.1-r2v

Model penjanaan video daripada imej rujukan dan skrip teks. Membantu mengekalkan rupa watak, objek dan gaya visual dalam adegan baharu.

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

HappyHorse-1.1-R2V menghasilkan adegan video baharu daripada imej rujukan dan arahan teks. Alibaba menumpukan model ini pada pengekalan watak yang dapat dikenali, objek dan gaya visual ketika menjana pergerakan. Rujukan menentukan kandungan dan rupa adegan, manakala teks menerangkan cara unsur-unsur ini perlu berinteraksi.

Peranan contoh visual

Satu hingga sembilan imej boleh digunakan. Imej-imej itu boleh menentukan watak, objek, persekitaran atau gaya artistik. Dalam penerangan, nombor rujukan dan objek tertentu di dalamnya boleh disebut untuk mengaitkan bahan visual dengan bahagian tindakan yang dikehendaki. Ini amat berguna apabila unsur daripada beberapa imej perlu digabungkan dalam satu komposisi.

Berbeza daripada mod bingkai awal, rujukan di sini menjadi panduan kandungan adegan baharu. Arahan teks wajib diberikan: arahan itu menghubungkan rupa objek dengan tindakan, pergerakan kamera dan penyusunan keseluruhan adegan. Pengeluar menekankan keselarasan visual dan pergerakan sinematik; hasilnya tetap berupa penjanaan, bukannya penyuntingan imej asal menjadi montaj.

JPEG, JPG, PNG dan WEBP dengan saiz sehingga 20 MB setiap satu diterima. Sisi pendek imej mesti sekurang-kurangnya 400 piksel; bahan pada tahap 720P atau lebih tinggi disyorkan. Input mod ini terdiri khusus daripada imej dan teks.

Tempoh, bingkai dan audio

Hasil disimpan dalam MP4 pada kadar 24 bingkai sesaat. Tempoh ditetapkan sebagai nombor bulat dari 3 hingga 15 saat. Resolusi boleh dipilih antara 480P, 720P dan 1080P; penjanaan iringan audio disokong.

Bingkai mendatar, menegak dan segi empat sama tersedia: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 dan 21:9. Pemilihan format membantu menentukan ruang komposisi adegan baharu terlebih dahulu.

Teks boleh menggunakan apa-apa bahasa. Hadnya ialah 5000 aksara bukan Cina atau 2500 aksara Cina; bahagian berlebihan dipotong. Peranan rujukan, tindakan dan pergerakan yang paling penting mesti dimuatkan dalam had ini. Nilai benih rawak awal boleh membantu menghasilkan variasi yang serupa, tetapi tidak menjamin penghasilan semula klip yang sama secara tepat.

Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-1.1-r2v

happyhorse-1.1-r2v

Alibaba /happyhorse-1.1-r2v
ID model
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Pengenalan

Model penjanaan video daripada imej rujukan dan skrip teks. Membantu mengekalkan rupa watak, objek dan gaya visual dalam adegan baharu.

Input yang diterima
Teks · Imej
Hasil
Video

Tersedia di Ailoot · input & kaedah

Ailoot · Penjanaan video POST /v1/videos/generations
Input
text, image
Output
video
Format output
mp4
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
happyhorse-1.1-r2v
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & had
Panjang minimum: 1
Lalai—
MedandurationJenisintegerKeperluanPilihanNilai & had
Minimum: 3
Maksimum: 15
Unit: saat
Lalai5
MedanresolutionJenisstringKeperluanPilihanNilai & had
480P, 720P, 1080P
Lalai720P
MedanratioJenisstringKeperluanPilihanNilai & had
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Lalai16:9
Medanimage_urlsJenishttps_url|data_image_url[]KeperluanDiperlukanNilai & had
Item minimum: 1
Item maksimum: 9
Bait ternyahkod maksimum: 20,971,520
Jenis MIME: image/jpeg, image/png, image/webp
Lalai—
Gabungan bahan input

reference_images_to_video · Diperlukan: prompt, image_urls

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, prompt, image_urls
Parametermaterial_typesKontraktext, image
ParameteroptionalKontrakduration, resolution, ratio
Parameterduration_integer_rangeKontrak3, 15
Parameterdefault_durationKontrak5
ParameterresolutionKontrak480P, 720P, 1080P
Parameterdefault_resolutionKontrak720P
ParameterratioKontrak16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parameterratio_must_omitKontrakfalse
Parameterimage_urlsKontrak{"min_count":1,"max_count":9,"schemes":["https","data raster dalam base64"],"max_data_image_bytes":20971520}

Kitar hayat: 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

Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.

Pelan harga

Kadar kaedah Ailoot

Ailoot Penjanaan videoPOST /v1/videos/generations
Output
USD 0.18 bagi setiap saat pada 1080p
Output
USD 0.07 bagi setiap saat pada 480p
Output
USD 0.14 bagi setiap saat pada 720p

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot · Penjanaan video

Rujukan imej
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Terima dan simpan hasil

Ailoot · Penjanaan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Semak status tugas
GET status
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
Simpan semua aset yang selesai
GET semua aset yang selesai
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
Pembacaan kandungan lain
GET kandungan
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
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau fail yang dikembalikan; dapatkan setiap URL aset yang benar-benar dikembalikan.

Kekalkan setiap item data/indeks output yang dikembalikan. content_url hanya merujuk yang pertama; dapatkan setiap laluan kandungan/aset sebenar. GET kandungan tanpa index tidak merangkumi semua output.

Jika respons asal perlu disemak

Baca tugas asal yang sedia ada; jangan sekali-kali hantar semula penghantaran yang tidak diketahui hasilnya.

Medan respons
MedanJenis
MedanidJenisstring
MedanobjectJenisstring
MedanmodelJenisstring
MedanstatusJenisstring
Medancontent_urlJenissigned URL
Medandata[]Jenissigned URL
MedanusageJenisobject
Medanresult_pending_checkJenisboolean
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.
Respons409 · video_not_readySyaratKandungan hasil asal belum tersediaLangkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorSyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakanLangkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.

Alias

Alias model

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-r2v

happyhorse-r2v

Alibaba /happyhorse-r2v
ID model
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Pengenalan

Model penjanaan video daripada imej rujukan dan skrip teks. Membantu mengekalkan rupa watak, objek dan gaya visual dalam adegan baharu.

Input yang diterima
Teks · Imej
Hasil
Video

Tersedia di Ailoot · input & kaedah

Ailoot · Penjanaan video POST /v1/videos/generations
Input
text, image
Output
video
Format output
mp4
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
happyhorse-r2v
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & had
Panjang minimum: 1
Lalai—
MedandurationJenisintegerKeperluanPilihanNilai & had
Minimum: 3
Maksimum: 15
Unit: saat
Lalai5
MedanresolutionJenisstringKeperluanPilihanNilai & had
480P, 720P, 1080P
Lalai720P
MedanratioJenisstringKeperluanPilihanNilai & had
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Lalai16:9
Medanimage_urlsJenishttps_url|data_image_url[]KeperluanDiperlukanNilai & had
Item minimum: 1
Item maksimum: 9
Bait ternyahkod maksimum: 20,971,520
Jenis MIME: image/jpeg, image/png, image/webp
Lalai—
Gabungan bahan input

reference_images_to_video · Diperlukan: prompt, image_urls

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametermaterial_typesKontraktext, image
ParameterrequiredKontraknull
Parameteroptional_controlsKontraknull

Kitar hayat: 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

Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.

Pelan harga

Kadar kaedah Ailoot

Ailoot Penjanaan videoPOST /v1/videos/generations
Output
USD 0.18 bagi setiap saat pada 1080p
Output
USD 0.07 bagi setiap saat pada 480p
Output
USD 0.14 bagi setiap saat pada 720p

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot · Penjanaan video

Rujukan imej
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Terima dan simpan hasil

Ailoot · Penjanaan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Semak status tugas
GET status
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
Simpan semua aset yang selesai
GET semua aset yang selesai
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
Pembacaan kandungan lain
GET kandungan
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
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau fail yang dikembalikan; dapatkan setiap URL aset yang benar-benar dikembalikan.

Kekalkan setiap item data/indeks output yang dikembalikan. content_url hanya merujuk yang pertama; dapatkan setiap laluan kandungan/aset sebenar. GET kandungan tanpa index tidak merangkumi semua output.

Jika respons asal perlu disemak

Baca tugas asal yang sedia ada; jangan sekali-kali hantar semula penghantaran yang tidak diketahui hasilnya.

Medan respons
MedanJenis
MedanidJenisstring
MedanobjectJenisstring
MedanmodelJenisstring
MedanstatusJenisstring
Medancontent_urlJenissigned URL
Medandata[]Jenissigned URL
MedanusageJenisobject
Medanresult_pending_checkJenisboolean
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.
Respons409 · video_not_readySyaratKandungan hasil asal belum tersediaLangkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorSyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakanLangkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.

Alias

Alias model

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-r2v-latest

happyhorse-r2v-latest

Alibaba /happyhorse-r2v-latest
ID model
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Pengenalan

Model penjanaan video daripada imej rujukan dan skrip teks. Membantu mengekalkan rupa watak, objek dan gaya visual dalam adegan baharu.

Input yang diterima
Teks · Imej
Hasil
Video

Tersedia di Ailoot · input & kaedah

Ailoot · Penjanaan video POST /v1/videos/generations
Input
text, image
Output
video
Format output
mp4
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
happyhorse-r2v-latest
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & had
Panjang minimum: 1
Lalai—
MedandurationJenisintegerKeperluanPilihanNilai & had
Minimum: 3
Maksimum: 15
Unit: saat
Lalai5
MedanresolutionJenisstringKeperluanPilihanNilai & had
480P, 720P, 1080P
Lalai720P
MedanratioJenisstringKeperluanPilihanNilai & had
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Lalai16:9
Medanimage_urlsJenishttps_url|data_image_url[]KeperluanDiperlukanNilai & had
Item minimum: 1
Item maksimum: 9
Bait ternyahkod maksimum: 20,971,520
Jenis MIME: image/jpeg, image/png, image/webp
Lalai—
Gabungan bahan input

reference_images_to_video · Diperlukan: prompt, image_urls

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametermaterial_typesKontraktext, image
ParameterrequiredKontraknull
Parameteroptional_controlsKontraknull

Kitar hayat: 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

Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.

Pelan harga

Kadar kaedah Ailoot

Ailoot Penjanaan videoPOST /v1/videos/generations
Output
USD 0.18 bagi setiap saat pada 1080p
Output
USD 0.07 bagi setiap saat pada 480p
Output
USD 0.14 bagi setiap saat pada 720p

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot · Penjanaan video

Rujukan imej
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Terima dan simpan hasil

Ailoot · Penjanaan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Semak status tugas
GET status
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
Simpan semua aset yang selesai
GET semua aset yang selesai
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
Pembacaan kandungan lain
GET kandungan
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
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau fail yang dikembalikan; dapatkan setiap URL aset yang benar-benar dikembalikan.

Kekalkan setiap item data/indeks output yang dikembalikan. content_url hanya merujuk yang pertama; dapatkan setiap laluan kandungan/aset sebenar. GET kandungan tanpa index tidak merangkumi semua output.

Jika respons asal perlu disemak

Baca tugas asal yang sedia ada; jangan sekali-kali hantar semula penghantaran yang tidak diketahui hasilnya.

Medan respons
MedanJenis
MedanidJenisstring
MedanobjectJenisstring
MedanmodelJenisstring
MedanstatusJenisstring
Medancontent_urlJenissigned URL
Medandata[]Jenissigned URL
MedanusageJenisobject
Medanresult_pending_checkJenisboolean
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.
Respons409 · video_not_readySyaratKandungan hasil asal belum tersediaLangkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorSyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakanLangkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.

Alias

Alias model

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

FAQ · happyhorse-1.1-r2v
Apakah input dan hasil yang tersedia?

POST /v1/videos/generations · happyhorse-1.1-r2v: text, image → video

POST /v1/videos/generations · happyhorse-r2v: text, image → video

POST /v1/videos/generations · happyhorse-r2v-latest: text, image → video

Apakah medan yang digunakan oleh permintaan?

POST /v1/videos/generations · happyhorse-1.1-r2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-r2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-r2v-latest: model, prompt, duration, resolution, ratio, image_urls

Apakah had yang terpakai?

POST /v1/videos/generations · happyhorse-1.1-r2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-r2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-r2v-latest: duration.minimum: 3; duration.maximum: 15

Butiran lanjut

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan
Pilih pelan berdiskaun untuk permintaan berkala anda.
Kod promosi sehingga 50%
Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.
Perbelanjaan dalam sejarah
Model, token dan jumlah disimpan bagi setiap permintaan.

Pilih langganan · Lihat harga model

Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial
Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.
Lesen penjual semula
Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.
Dokumen pada laman
Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

Mohon lesen penjual semula · Tawaran dan perjanjian lesen