Source: https://ailoot.ai/models/uz/happyhorse-1-1-r2v/
Canonical: https://ailoot.ai/models/uz/happyhorse-1-1-r2v/
Language: uz

# happyhorse-1.1-r2v

[Markdown](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/index.md) · [JSON](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/facts.json)

## [happyhorse-1.1-r2v](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/)

Namuna tasvirlar va matnli ssenariy asosida video yaratish modeli. Yangi sahnada personajlar ko‘rinishi, buyumlar va vizual uslubni saqlashga yordam beradi.

- [**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-1.1-r2v`](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/#method-0)
- [**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-r2v`](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/#method-1)
- [**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-r2v-latest`](https://ailoot.ai/models/uz/happyhorse-1-1-r2v/#method-2)

Model haqida

Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.

HappyHorse-1.1-R2V namuna tasvirlar va matnli topshiriq asosida yangi videosahna yaratadi. Alibaba modelni harakat yaratishda personajlar, obyektlar va vizual uslubning tanib bo‘ladigan xususiyatlarini saqlashga yo‘naltirgan. Namunalar sahna mazmuni va tashqi ko‘rinishini belgilaydi, matn esa bu elementlar qanday o‘zaro ta’sirlashishi kerakligini tavsiflaydi.

#### Vizual namunalarning vazifalari

Birdan to‘qqiztagacha tasvir ishlatish mumkin. Ular qahramon, buyum, muhit yoki badiiy ifodani belgilashi mumkin. Vizual materialni harakatning kerakli qismiga bog‘lash uchun tavsifda namuna raqami va undagi aniq obyektni ko‘rsatish mumkin. Bu, ayniqsa, bir nechta tasvirdagi elementlarni bitta kompozitsiyada birlashtirishda foydali.

Boshlang‘ich kadr rejimidan farqli ravishda, bu yerda namunalar yangi sahna mazmuni uchun tayanch bo‘lib xizmat qiladi. Matnli topshiriq majburiy: u obyektlar ko‘rinishini harakat, kamera harakati va umumiy sahnalashtirish bilan bog‘laydi. Ishlab chiqaruvchi vizual uyg‘unlik va kinematografik harakatni ta’kidlaydi; natija boshlang‘ich tasvirlar montaji emas, yaratilgan video bo‘lib qoladi.

Har biri 20 MB gacha bo‘lgan JPEG, JPG, PNG va WEBP fayllari qabul qilinadi. Tasvirning qisqa tomoni kamida 400 piksel bo‘lishi kerak; 720P yoki undan yuqori darajadagi materiallar tavsiya etiladi. Bu rejim kirishi aynan tasvirlar va matndan iborat.

#### Davomiylik, kadr va ovoz

Natija MP4 formatida, soniyasiga 24 kadr tezlikda saqlanadi. Davomiylik 3 dan 15 soniyagacha bo‘lgan butun son bilan belgilanadi. Aniqlikni 480P, 720P va 1080P orasidan tanlash mumkin; ovozli yo‘lak yaratish qo‘llab-quvvatlanadi.

Gorizontal, vertikal va kvadrat kadrlar mavjud: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 va 21:9. Formatni tanlash yangi sahna kompozitsiyasi uchun maydonni oldindan belgilashga yordam beradi.

Matn istalgan tilda bo‘lishi mumkin. Chegara xitoycha bo‘lmagan 5000 ta yoki xitoycha 2500 ta belgini tashkil etadi, ortiqcha qism tashlab yuboriladi. Namunalarning eng muhim vazifalari, voqea va harakat shu hajmga sig‘ishi kerak. Boshlang‘ich tasodifiylik urug‘i variantlarni o‘xshashtirishga yordam berishi mumkin, ammo bitta rolikning aynan takrorlanishini kafolatlamaydi.

**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-1.1-r2v`

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos)

Alibaba /`happyhorse-1.1-r2v`

Model ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### Boshlash

Namuna tasvirlar va matnli ssenariy asosida video yaratish modeli. Yangi sahnada personajlar ko‘rinishi, buyumlar va vizual uslubni saqlashga yordam beradi.

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 |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-1.1-r2v | Standart— |
| Maydon`prompt` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
| Maydon`duration` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
| Maydon`resolution` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
| Maydon`ratio` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standart16:9 |
| Maydon`image_urls` | Tur`https_url\|data_image_url[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 9 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |

Kirish materiallari birikmalari

**reference\_images\_to\_video** · Majburiy: prompt, image\_urls

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, prompt, image\_urls |
| Parametr`material_types` | Parametr talablaritext, image |
| Parametr`optional` | Parametr talablariduration, resolution, ratio |
| Parametr`duration_integer_range` | Parametr talablari3, 15 |
| Parametr`default_duration` | Parametr talablari5 |
| Parametr`resolution` | Parametr talablari480P, 720P, 1080P |
| Parametr`default_resolution` | Parametr talablari720P |
| Parametr`ratio` | Parametr talablari16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| Parametr`ratio_must_omit` | Parametr talablarifalse |
| Parametr`image_urls` | Parametr talablari{"min\_count":1,"max\_count":9,"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

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 →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot · Video yaratish

Namuna rasm

```bash
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
```

### Natijalarni olish va saqlash

#### Ailoot · Video yaratish

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`

##### Vazifa holatini tekshirish

GET holat

```bash
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

GET barcha tayyor materiallar

```bash
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

GET kontent

```bash
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 |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`object` | Turstring |
| Maydon`model` | Turstring |
| Maydon`status` | Turstring |
| Maydon`content_url` | Tursigned URL |
| Maydon`data[]` | Tursigned URL |
| Maydon`usage` | Turobject |
| Maydon`result_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. |
| Javob`server_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-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

#### Chaqirish uchun tegishli ID lar

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-r2v`

[`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos)

Alibaba /`happyhorse-r2v`

Model ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### Boshlash

Namuna tasvirlar va matnli ssenariy asosida video yaratish modeli. Yangi sahnada personajlar ko‘rinishi, buyumlar va vizual uslubni saqlashga yordam beradi.

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 |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-r2v | Standart— |
| Maydon`prompt` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
| Maydon`duration` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
| Maydon`resolution` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
| Maydon`ratio` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standart16:9 |
| Maydon`image_urls` | Tur`https_url\|data_image_url[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 9 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |

Kirish materiallari birikmalari

**reference\_images\_to\_video** · Majburiy: prompt, image\_urls

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`material_types` | Parametr talablaritext, image |
| Parametr`required` | Parametr talablarinull |
| Parametr`optional_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

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 →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot · Video yaratish

Namuna rasm

```bash
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
```

### Natijalarni olish va saqlash

#### Ailoot · Video yaratish

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`

##### Vazifa holatini tekshirish

GET holat

```bash
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

GET barcha tayyor materiallar

```bash
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

GET kontent

```bash
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 |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`object` | Turstring |
| Maydon`model` | Turstring |
| Maydon`status` | Turstring |
| Maydon`content_url` | Tursigned URL |
| Maydon`data[]` | Tursigned URL |
| Maydon`usage` | Turobject |
| Maydon`result_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. |
| Javob`server_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-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

#### Chaqirish uchun tegishli ID lar

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

**Ailoot · Video yaratish** `POST /v1/videos/generations` `happyhorse-r2v-latest`

[`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

Alibaba /`happyhorse-r2v-latest`

Model ID

- `happyhorse-1.1-r2v`
- `happyhorse-r2v`
- `happyhorse-r2v-latest`

### Boshlash

Namuna tasvirlar va matnli ssenariy asosida video yaratish modeli. Yangi sahnada personajlar ko‘rinishi, buyumlar va vizual uslubni saqlashga yordam beradi.

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 |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar happyhorse-r2v-latest | Standart— |
| Maydon`prompt` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
| Maydon`duration` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 3 Eng ko‘p: 15 Birlik: soniya | Standart5 |
| Maydon`resolution` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 480P, 720P, 1080P | Standart720P |
| Maydon`ratio` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standart16:9 |
| Maydon`image_urls` | Tur`https_url\|data_image_url[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 Elementlarning eng ko‘p soni: 9 Dekodlangan baytlarning eng ko‘p soni: 20 971 520 MIME turlari: image/jpeg, image/png, image/webp | Standart— |

Kirish materiallari birikmalari

**reference\_images\_to\_video** · Majburiy: prompt, image\_urls

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`material_types` | Parametr talablaritext, image |
| Parametr`required` | Parametr talablarinull |
| Parametr`optional_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

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 →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot · Video yaratish

Namuna rasm

```bash
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
```

### Natijalarni olish va saqlash

#### Ailoot · Video yaratish

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`

##### Vazifa holatini tekshirish

GET holat

```bash
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

GET barcha tayyor materiallar

```bash
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

GET kontent

```bash
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 |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`object` | Turstring |
| Maydon`model` | Turstring |
| Maydon`status` | Turstring |
| Maydon`content_url` | Tursigned URL |
| Maydon`data[]` | Tursigned URL |
| Maydon`usage` | Turobject |
| Maydon`result_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. |
| Javob`server_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-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

#### Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

#### Chaqirish uchun tegishli ID lar

[`happyhorse-1.1-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-1.1-r2v&fmt=videos), [`happyhorse-r2v`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v&fmt=videos), [`happyhorse-r2v-latest`](https://ailoot.ai/models/uz/#m=happyhorse-1.1-r2v&route=Core&caller=happyhorse-r2v-latest&fmt=videos)

FAQ · happyhorse-1.1-r2v

Qanday kirish ma’lumotlari va natijalar mavjud?

`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`

So‘rov qaysi maydonlardan foydalanadi?

`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`

Qanday cheklovlar amal qiladi?

`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`

Ailoot’ni Claude Code, OpenCode, Hermes yoki ilovangizga ulang.

## Kompaniya va uning loyihalar portfeli

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

## Tokenlarni chegirma bilan xarid qiling.

Muntazam ish uchun obuna chegirmasi. Token xaridiga promokodlar — 50% gacha.

Obuna

Muntazam so‘rovlaringiz uchun chegirmali tarif tanlang.

50% gacha promokod

Xaridda kod kiriting. Narx amaldagi aksiya bilan qayta hisoblanadi.

Tarixdagi xarajatlar

Har so‘rov uchun model, token va summa saqlanadi.

[Obuna tanlash](https://ailoot.ai/docs/uz/billing/subscriptions/) · [Model narxlarini ko‘rish](https://ailoot.ai/models/uz/)

## API’ni sotadigan mahsulotingizga ulang.

SaaS, ilova va botlar Ailoot ofertasi hamda litsenziya shartnomasiga muvofiq. Qayta sotishga reseller litsenziyasi so‘rang.

Tijorat ilovasi

Xizmatingizning pullik funksiyalariga matn, rasm, video va ovoz yaratishni qo‘shing.

Reseller litsenziyasi

Loyiha tavsifi va kirish sxemasini yuboring. Foydalanish va qayta sotishga yozma shartlarni so‘rang.

Saytdagi hujjatlar

Oferta, litsenziya shartnomasi va ma’lumotlar siyosati ulashdan oldin ochiq.

[Reseller litsenziyasini so‘rash](mailto:support@ailoot.ai) · [Oferta va litsenziya shartnomasi](https://ailoot.ai/legal/offer?lang=uz)

## Ailoot · Kompaniya va uning loyihalar portfeli





Ailoot to‘plangan faoliyat tajribasi, keng mijozlar bazasi, barqaror xizmat va doimiy KPI nazoratiga tayanadi.





Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.





Ailoot bu faoliyat tajribasini mijozlar mahsulotlari, agentlar, ilovalar va avtomatlashtirishlarda AI imkoniyatlariga API orqali kirishni ta’minlashda qo‘llaydi.
