happyhorse-1.1-i2v
Tasvirni jonlantirish modeli: boshlang‘ich rasm birinchi kadrni belgilaydi, tavsif esa keyingi harakatni yo‘naltiradi. Ovoz qo‘shish imkoniyati bilan qisqa videorolik yaratadi.
- Ailoot · Video yaratish
POST /v1/videos/generationshappyhorse-1.1-i2v - Ailoot · Video yaratish
POST /v1/videos/generationshappyhorse-i2v - Ailoot · Video yaratish
POST /v1/videos/generationshappyhorse-i2v-latest
Model haqida
Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.
HappyHorse-1.1-I2V — Alibaba modeli bo‘lib, videosahnani tayyor tasvirdan boshlaydi. Rasm birinchi kadrga aylanadi, matn esa keyingi voqealarni: qahramon harakati, sahnadagi o‘zgarishlar va kamera yo‘nalishini belgilashi mumkin. Bu illyustratsiya, buyum fotosurati yoki oldindan tayyorlangan vizual g‘oyani jonlantirish uchun mos keladi.
Matnli tavsif majburiy emas. U berilmasa, model boshlang‘ich rasm mazmunidan kelib chiqib, mumkin bo‘lgan harakatni o‘zi tanlaydi. Topshiriq aniq berilganda, boshlang‘ich tasvir kompozitsiya va obyektlar ko‘rinishini belgilaydi, so‘zlar esa sahnaning vaqt davomida rivojlanishini yo‘naltiradi.
Birinchi kadrdan harakatga
Alibaba personaj ko‘rinishini saqlash, vizual uyg‘unlik, ravon harakat va tasvir bilan ovozning birga yaratilishini alohida ta’kidlaydi. E’lon qilingan yo‘nalishlar orasida yozuvlar va sirt fakturalarining barqarorligi ham bor. Bu xususiyatlar modelning ko‘zlangan imkoniyatlarini ifodalaydi va yaratilgan barcha kadrlarda har bir piksel aynan saqlanishini anglatmaydi.
Bu rejimda bitta boshlang‘ich tasvir ishlatiladi. U yangi kompozitsiya uchun bir nechta mustaqil namuna emas, boshlang‘ich sahnani belgilaydi. Aynan shu versiyada alohida yakuniy kadrni belgilash imkoniyati e’lon qilinmagan.
JPEG, JPG, PNG va WEBP qabul qilinadi. Kiruvchi tasvirning har bir tomoni kamida 300 piksel bo‘lishi kerak; ruxsat etilgan tomonlar nisbati — 1:2,5 dan 2,5:1 gacha, fayl hajmi — 20 MB gacha. Tayyor videoning tomonlar nisbati birinchi kadrga mos bo‘ladi.
Rolik parametrlari
Davomiylik 3 dan 15 soniyagacha bo‘lgan butun son bilan tanlanadi. 480P, 720P va 1080P aniqlik darajalari mavjud; chiqish formati — MP4, kadrlar tezligi — soniyasiga 24 kadr. Video bilan birga ovozli yo‘lak yaratish qo‘llab-quvvatlanadi.
Tavsif istalgan tilda bo‘lishi mumkin va xitoycha bo‘lmagan 5000 tagacha yoki xitoycha 2500 tagacha belgini sig‘diradi. Chegara oshirilsa, ortiqcha qism tashlab yuboriladi, shuning uchun muhim harakatlar va ularning xususiyatlarini topshiriq chegarasi ichida ifodalash kerak. Bir xil boshlang‘ich tasodifiylik urug‘i o‘xshash roliklar berishi mumkin, lekin ularning kadrma-kadr aynan mos tushishini kafolatlamaydi.
Ailoot · Video yaratish POST /v1/videos/generations happyhorse-1.1-i2v
happyhorse-1.1-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Boshlash
Tasvirni jonlantirish modeli: boshlang‘ich rasm birinchi kadrni belgilaydi, tavsif esa keyingi harakatni yo‘naltiradi. Ovoz qo‘shish imkoniyati bilan qisqa videorolik yaratadi.
- Qabul qilinadigan kirish ma’lumotlari
- Matn · Rasmlar
- Natijalar
- Video
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot · Video yaratish POST /v1/videos/generations
- Kirish
text,image- Chiqish
video- Chiqish formati
- mp4
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-1.1-i2v | Standart— |
Maydonprompt | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
Maydonduration | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
Maydonresolution | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
Maydonratio | Turstring | TalabQo‘llab-quvvatlanmaydi | Qiymatlar va cheklovlar | Standart— |
Maydonimage_urls | Turhttps_url|data_image_url[] | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 1 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |
Kirish materiallari birikmalari
first_frame_to_video · Majburiy: image_urls
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrcontent_type | Parametr talablariapplication/json |
Parametrrequired | Parametr talablarimodel, image_urls |
Parametrmaterial_types | Parametr talablaritext, image |
Parametroptional | Parametr talablariduration, resolution, ratio, prompt |
Parametrduration_integer_range | Parametr talablari3, 15 |
Parametrdefault_duration | Parametr talablari5 |
Parametrresolution | Parametr talablari480P, 720P, 1080P |
Parametrdefault_resolution | Parametr talablari720P |
Parametrratio | Parametr talablari |
Parametrratio_must_omit | Parametr talablaritrue |
Parametrimage_urls | Parametr talablari{"min_count":1,"max_count":1,"schemes":["https","data rastri base64 ko‘rinishida"],"max_data_image_bytes":20971520} |
Hayot sikli: 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
Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.
Tariflar
Ailoot usullari tariflari
POST /v1/videos/generations- Chiqish
- 0,18 US$ 1080p aniqlikdagi soniya uchun
- Chiqish
- 0,07 US$ 480p aniqlikdagi soniya uchun
- Chiqish
- 0,14 US$ 720p aniqlikdagi soniya uchun
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
So‘rov namunalari
Ailoot · Video yaratish
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
Natijalarni olish va saqlash
Ailoot · Video yaratish
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Vazifa holatini tekshirish
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
Barcha tayyor materiallarni saqlash
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
Boshqa kontentni o‘qish
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
Barcha tayyor natijalarni saqlash
Har bir tayyor video yoki qaytarilgan faylni saqlang; har bir haqiqatan qaytarilgan material URL dan kontentni oling.
Qaytarilgan har bir data elementi/chiqish indeksini saqlang. content_url faqat birinchisiga tegishli; har bir haqiqiy mazmun yo‘lini/aktivni oling. index siz GET content barcha chiqishlarni bermaydi.
Asl javobni tekshirish kerak bo‘lsa
Mavjud dastlabki vazifani o‘qing; natijasi noma’lum yuborishni hech qachon takrorlamang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydonid | Turstring |
Maydonobject | Turstring |
Maydonmodel | Turstring |
Maydonstatus | Turstring |
Maydoncontent_url | Tursigned URL |
Maydondata[] | Tursigned URL |
Maydonusage | Turobject |
Maydonresult_pending_check | Turboolean |
Xatolar va keyingi qadamlar
| Javob | Shart | Keyingi qadam |
|---|---|---|
Javob400 · invalid_request_error | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
Javob409 · video_not_ready | ShartDastlabki natija mazmuni hali mavjud emas | Keyingi qadamDastlab qaytarilgan ID holatini so‘rab tekshiring va Retry-After ga rioya qiling. |
Javobserver_error | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |
Taxalluslar
Model taxalluslari
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
Ailoot · Video yaratish POST /v1/videos/generations happyhorse-i2v
happyhorse-i2vhappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Boshlash
Tasvirni jonlantirish modeli: boshlang‘ich rasm birinchi kadrni belgilaydi, tavsif esa keyingi harakatni yo‘naltiradi. Ovoz qo‘shish imkoniyati bilan qisqa videorolik yaratadi.
- Qabul qilinadigan kirish ma’lumotlari
- Matn · Rasmlar
- Natijalar
- Video
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot · Video yaratish POST /v1/videos/generations
- Kirish
text,image- Chiqish
video- Chiqish formati
- mp4
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-i2v | Standart— |
Maydonprompt | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
Maydonduration | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
Maydonresolution | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
Maydonratio | Turstring | TalabQo‘llab-quvvatlanmaydi | Qiymatlar va cheklovlar | Standart— |
Maydonimage_urls | Turhttps_url|data_image_url[] | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 1 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |
Kirish materiallari birikmalari
first_frame_to_video · Majburiy: image_urls
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrmaterial_types | Parametr talablaritext, image |
Parametrrequired | Parametr talablarinull |
Parametroptional_controls | Parametr talablarinull |
Hayot sikli: 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
Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.
Tariflar
Ailoot usullari tariflari
POST /v1/videos/generations- Chiqish
- 0,18 US$ 1080p aniqlikdagi soniya uchun
- Chiqish
- 0,07 US$ 480p aniqlikdagi soniya uchun
- Chiqish
- 0,14 US$ 720p aniqlikdagi soniya uchun
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
So‘rov namunalari
Ailoot · Video yaratish
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
Natijalarni olish va saqlash
Ailoot · Video yaratish
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Vazifa holatini tekshirish
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
Barcha tayyor materiallarni saqlash
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
Boshqa kontentni o‘qish
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
Barcha tayyor natijalarni saqlash
Har bir tayyor video yoki qaytarilgan faylni saqlang; har bir haqiqatan qaytarilgan material URL dan kontentni oling.
Qaytarilgan har bir data elementi/chiqish indeksini saqlang. content_url faqat birinchisiga tegishli; har bir haqiqiy mazmun yo‘lini/aktivni oling. index siz GET content barcha chiqishlarni bermaydi.
Asl javobni tekshirish kerak bo‘lsa
Mavjud dastlabki vazifani o‘qing; natijasi noma’lum yuborishni hech qachon takrorlamang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydonid | Turstring |
Maydonobject | Turstring |
Maydonmodel | Turstring |
Maydonstatus | Turstring |
Maydoncontent_url | Tursigned URL |
Maydondata[] | Tursigned URL |
Maydonusage | Turobject |
Maydonresult_pending_check | Turboolean |
Xatolar va keyingi qadamlar
| Javob | Shart | Keyingi qadam |
|---|---|---|
Javob400 · invalid_request_error | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
Javob409 · video_not_ready | ShartDastlabki natija mazmuni hali mavjud emas | Keyingi qadamDastlab qaytarilgan ID holatini so‘rab tekshiring va Retry-After ga rioya qiling. |
Javobserver_error | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |
Taxalluslar
Model taxalluslari
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
Ailoot · Video yaratish POST /v1/videos/generations happyhorse-i2v-latest
happyhorse-i2v-latesthappyhorse-1.1-i2vhappyhorse-i2vhappyhorse-i2v-latest
Boshlash
Tasvirni jonlantirish modeli: boshlang‘ich rasm birinchi kadrni belgilaydi, tavsif esa keyingi harakatni yo‘naltiradi. Ovoz qo‘shish imkoniyati bilan qisqa videorolik yaratadi.
- Qabul qilinadigan kirish ma’lumotlari
- Matn · Rasmlar
- Natijalar
- Video
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot · Video yaratish POST /v1/videos/generations
- Kirish
text,image- Chiqish
video- Chiqish formati
- mp4
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-i2v-latest | Standart— |
Maydonprompt | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
Maydonduration | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
Maydonresolution | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
Maydonratio | Turstring | TalabQo‘llab-quvvatlanmaydi | Qiymatlar va cheklovlar | Standart— |
Maydonimage_urls | Turhttps_url|data_image_url[] | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 1 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |
Kirish materiallari birikmalari
first_frame_to_video · Majburiy: image_urls
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrmaterial_types | Parametr talablaritext, image |
Parametrrequired | Parametr talablarinull |
Parametroptional_controls | Parametr talablarinull |
Hayot sikli: 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
Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.
Tariflar
Ailoot usullari tariflari
POST /v1/videos/generations- Chiqish
- 0,18 US$ 1080p aniqlikdagi soniya uchun
- Chiqish
- 0,07 US$ 480p aniqlikdagi soniya uchun
- Chiqish
- 0,14 US$ 720p aniqlikdagi soniya uchun
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
So‘rov namunalari
Ailoot · Video yaratish
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
Natijalarni olish va saqlash
Ailoot · Video yaratish
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Vazifa holatini tekshirish
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
Barcha tayyor materiallarni saqlash
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
Boshqa kontentni o‘qish
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
Barcha tayyor natijalarni saqlash
Har bir tayyor video yoki qaytarilgan faylni saqlang; har bir haqiqatan qaytarilgan material URL dan kontentni oling.
Qaytarilgan har bir data elementi/chiqish indeksini saqlang. content_url faqat birinchisiga tegishli; har bir haqiqiy mazmun yo‘lini/aktivni oling. index siz GET content barcha chiqishlarni bermaydi.
Asl javobni tekshirish kerak bo‘lsa
Mavjud dastlabki vazifani o‘qing; natijasi noma’lum yuborishni hech qachon takrorlamang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydonid | Turstring |
Maydonobject | Turstring |
Maydonmodel | Turstring |
Maydonstatus | Turstring |
Maydoncontent_url | Tursigned URL |
Maydondata[] | Tursigned URL |
Maydonusage | Turobject |
Maydonresult_pending_check | Turboolean |
Xatolar va keyingi qadamlar
| Javob | Shart | Keyingi qadam |
|---|---|---|
Javob400 · invalid_request_error | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
Javob409 · video_not_ready | ShartDastlabki natija mazmuni hali mavjud emas | Keyingi qadamDastlab qaytarilgan ID holatini so‘rab tekshiring va Retry-After ga rioya qiling. |
Javobserver_error | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |
Taxalluslar
Model taxalluslari
Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
FAQ · happyhorse-1.1-i2v
- Qanday kirish ma’lumotlari va natijalar mavjud?
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- So‘rov qaysi maydonlardan foydalanadi?
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- Qanday cheklovlar amal qiladi?
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