happyhorse-1.1-t2v
Model untuk menghasilkan video pendek berserta audio daripada penerangan teks. Sesuai untuk adegan yang pergerakan, komposisi dan gaya visualnya ditentukan melalui kata-kata.
- Ailoot · Penjanaan video
POST /v1/videos/generationshappyhorse-1.1-t2v - Ailoot · Penjanaan video
POST /v1/videos/generationshappyhorse-t2v - Ailoot · Penjanaan video
POST /v1/videos/generationshappyhorse-t2v-latest
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-T2V ialah model Alibaba untuk menghasilkan adegan video pendek daripada teks. Penerangan menetapkan watak, tindakan, latar dan gaya visual; imej asal tidak diperlukan bagi mod ini. Model membentuk urutan video dan boleh menghasilkan audio yang mengiringinya.
Pengeluar menekankan pemahaman makna adegan, penyusunan sinematik dan pergerakan yang ekspresif. Teks boleh menentukan suasana, tindakan watak, tingkah laku objek dan dinamik fizikal. Ini membolehkan adegan dibina berdasarkan perkara yang perlu berlaku, kemudian diarahkan melalui pencahayaan, sudut pandangan dan pergerakan kamera.
Menyusun adegan melalui kata-kata
Arahan wajib diberikan dan boleh menggunakan apa-apa bahasa. Arahan boleh mengandungi sehingga 5000 aksara bukan Cina atau 2500 aksara Cina; bahagian berlebihan dipotong. Tindakan, persekitaran dan butiran visual penting perlu diterangkan dalam had ini. Penyusunan sebegini memberikan model ruang untuk menghasilkan adegan baharu, bukannya menetapkan bingkai pertama yang sudah siap.
Dalam mod ini, teks menjadi bahan kawalan utama. Rupa khusus watak atau objek boleh diterangkan melalui kata-kata; keupayaan menyampaikan rupanya melalui imej berasingan tergolong dalam mod lain dalam keluarga ini. Hasil bergantung pada keseluruhan arahan, jadi nilai benih rawak awal yang sama membantu mendapatkan variasi yang serupa, tetapi tidak menjamin penghasilan semula secara tepat.
Video dan iringan audio
Bagi HappyHorse-1.1, tempoh klip dipilih sebagai nombor bulat dari 3 hingga 15 saat. Tahap resolusi 480P, 720P dan 1080P disokong. Fail yang dihasilkan berformat MP4 pada kadar 24 bingkai sesaat. Model boleh menjana audio bersama imej, dengan mengaitkan iringan audio kepada perkara yang berlaku dalam adegan.
Bentuk bingkai boleh ditetapkan terlebih dahulu. Pilihan yang tersedia ialah 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 dan 21:9 — daripada bingkai sinematik lebar hingga klip menegak memanjang. Resolusi, format dan tempoh menentukan dimensi hasil; kandungan dan pergerakan ditentukan melalui teks.
Varian ini direka untuk menghasilkan adegan baharu daripada idea yang dinyatakan melalui kata-kata. Ia sesuai untuk episod pendek, idea visual atau klip bersuasana yang penyusunannya perlu dirumuskan dalam teks.
Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-1.1-t2v
happyhorse-1.1-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Pengenalan
Model untuk menghasilkan video pendek berserta audio daripada penerangan teks. Sesuai untuk adegan yang pergerakan, komposisi dan gaya visualnya ditentukan melalui kata-kata.
- Input yang diterima
- Teks
- Hasil
- Video
Tersedia di Ailoot · input & kaedah
Ailoot · Penjanaan video POST /v1/videos/generations
- Input
text- Output
video- Format output
- mp4
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had happyhorse-1.1-t2v | Lalai— |
Medanprompt | Jenisstring | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
Medanduration | Jenisinteger | KeperluanPilihan | Nilai & had Minimum: 3 Maksimum: 15 Unit: saat | Lalai5 |
Medanresolution | Jenisstring | KeperluanPilihan | Nilai & had 480P, 720P, 1080P | Lalai720P |
Medanratio | Jenisstring | KeperluanPilihan | Nilai & had 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Lalai16:9 |
Medanimage_urls | Jenishttps_url|data_image_url[] | KeperluanPilihan | Nilai & had Item minimum: 0 Item maksimum: 0 Bait ternyahkod maksimum: 20,971,520 Jenis MIME: image/jpeg, image/png, image/webp | Lalai— |
Gabungan bahan input
Teks kepada video · Diperlukan: prompt
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, prompt |
Parametermaterial_types | Kontraktext |
Parameteroptional | Kontrakduration, resolution, ratio |
Parameterduration_integer_range | Kontrak3, 15 |
Parameterdefault_duration | Kontrak5 |
Parameterresolution | Kontrak480P, 720P, 1080P |
Parameterdefault_resolution | Kontrak720P |
Parameterratio | Kontrak16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
Parameterratio_must_omit | Kontrakfalse |
Parameterimage_urls | Kontrak{"max_count":0} |
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
POST /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
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
Terima dan simpan hasil
Ailoot · Penjanaan video
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Semak status tugas
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
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
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
| Medan | Jenis |
|---|---|
Medanid | Jenisstring |
Medanobject | Jenisstring |
Medanmodel | Jenisstring |
Medanstatus | Jenisstring |
Medancontent_url | Jenissigned URL |
Medandata[] | Jenissigned URL |
Medanusage | Jenisobject |
Medanresult_pending_check | Jenisboolean |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
Respons409 · video_not_ready | SyaratKandungan hasil asal belum tersedia | Langkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After. |
Responsserver_error | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah 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-t2v, happyhorse-t2v, happyhorse-t2v-latest
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-t2v
happyhorse-t2vhappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Pengenalan
Model untuk menghasilkan video pendek berserta audio daripada penerangan teks. Sesuai untuk adegan yang pergerakan, komposisi dan gaya visualnya ditentukan melalui kata-kata.
- Input yang diterima
- Teks
- Hasil
- Video
Tersedia di Ailoot · input & kaedah
Ailoot · Penjanaan video POST /v1/videos/generations
- Input
text- Output
video- Format output
- mp4
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had happyhorse-t2v | Lalai— |
Medanprompt | Jenisstring | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
Medanduration | Jenisinteger | KeperluanPilihan | Nilai & had Minimum: 3 Maksimum: 15 Unit: saat | Lalai5 |
Medanresolution | Jenisstring | KeperluanPilihan | Nilai & had 480P, 720P, 1080P | Lalai720P |
Medanratio | Jenisstring | KeperluanPilihan | Nilai & had 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Lalai16:9 |
Medanimage_urls | Jenishttps_url|data_image_url[] | KeperluanPilihan | Nilai & had Item minimum: 0 Item maksimum: 0 Bait ternyahkod maksimum: 20,971,520 Jenis MIME: image/jpeg, image/png, image/webp | Lalai— |
Gabungan bahan input
Teks kepada video · Diperlukan: prompt
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametermaterial_types | Kontraktext |
Parameterrequired | Kontraknull |
Parameteroptional_controls | Kontraknull |
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
POST /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
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
Terima dan simpan hasil
Ailoot · Penjanaan video
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Semak status tugas
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
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
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
| Medan | Jenis |
|---|---|
Medanid | Jenisstring |
Medanobject | Jenisstring |
Medanmodel | Jenisstring |
Medanstatus | Jenisstring |
Medancontent_url | Jenissigned URL |
Medandata[] | Jenissigned URL |
Medanusage | Jenisobject |
Medanresult_pending_check | Jenisboolean |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
Respons409 · video_not_ready | SyaratKandungan hasil asal belum tersedia | Langkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After. |
Responsserver_error | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah 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-t2v, happyhorse-t2v, happyhorse-t2v-latest
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
Ailoot · Penjanaan video POST /v1/videos/generations happyhorse-t2v-latest
happyhorse-t2v-latesthappyhorse-1.1-t2vhappyhorse-t2vhappyhorse-t2v-latest
Pengenalan
Model untuk menghasilkan video pendek berserta audio daripada penerangan teks. Sesuai untuk adegan yang pergerakan, komposisi dan gaya visualnya ditentukan melalui kata-kata.
- Input yang diterima
- Teks
- Hasil
- Video
Tersedia di Ailoot · input & kaedah
Ailoot · Penjanaan video POST /v1/videos/generations
- Input
text- Output
video- Format output
- mp4
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had happyhorse-t2v-latest | Lalai— |
Medanprompt | Jenisstring | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
Medanduration | Jenisinteger | KeperluanPilihan | Nilai & had Minimum: 3 Maksimum: 15 Unit: saat | Lalai5 |
Medanresolution | Jenisstring | KeperluanPilihan | Nilai & had 480P, 720P, 1080P | Lalai720P |
Medanratio | Jenisstring | KeperluanPilihan | Nilai & had 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Lalai16:9 |
Medanimage_urls | Jenishttps_url|data_image_url[] | KeperluanPilihan | Nilai & had Item minimum: 0 Item maksimum: 0 Bait ternyahkod maksimum: 20,971,520 Jenis MIME: image/jpeg, image/png, image/webp | Lalai— |
Gabungan bahan input
Teks kepada video · Diperlukan: prompt
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametermaterial_types | Kontraktext |
Parameterrequired | Kontraknull |
Parameteroptional_controls | Kontraknull |
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
POST /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
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
Terima dan simpan hasil
Ailoot · Penjanaan video
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Semak status tugas
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
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
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
| Medan | Jenis |
|---|---|
Medanid | Jenisstring |
Medanobject | Jenisstring |
Medanmodel | Jenisstring |
Medanstatus | Jenisstring |
Medancontent_url | Jenissigned URL |
Medandata[] | Jenissigned URL |
Medanusage | Jenisobject |
Medanresult_pending_check | Jenisboolean |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
Respons409 · video_not_ready | SyaratKandungan hasil asal belum tersedia | Langkah seterusnyaSemak ID asal yang dikembalikan secara berkala dan patuhi Retry-After. |
Responsserver_error | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah 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-t2v, happyhorse-t2v, happyhorse-t2v-latest
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · happyhorse-1.1-t2v
- Apakah input dan hasil yang tersedia?
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- Apakah medan yang digunakan oleh permintaan?
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- Apakah had yang terpakai?
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