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

# happyhorse-1.1-r2v

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

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

Vaizdo įrašų generavimo modelis, naudojantis pavyzdinius vaizdus ir tekstinį scenarijų. Padeda naujoje scenoje išlaikyti veikėjų išvaizdą, daiktus ir vizualinį stilių.

- [**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-1.1-r2v`](https://ailoot.ai/models/lt/happyhorse-1-1-r2v/#method-0)
- [**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-r2v`](https://ailoot.ai/models/lt/happyhorse-1-1-r2v/#method-1)
- [**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-r2v-latest`](https://ailoot.ai/models/lt/happyhorse-1-1-r2v/#method-2)

Apie modelį

Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.

HappyHorse-1.1-R2V kuria naują vaizdo sceną pagal pavyzdinius vaizdus ir tekstinę užduotį. Alibaba šį modelį skiria atpažįstamiems veikėjams, objektams ir vizualiniam stiliui išlaikyti generuojant judesį. Pavyzdiniai vaizdai nustato scenos turinį ir išvaizdą, o tekstas aprašo, kaip šie elementai turi sąveikauti.

#### Vaizdinių pavyzdžių vaidmenys

Galima naudoti nuo vieno iki devynių vaizdų. Jie gali apibrėžti veikėją, daiktą, aplinką ar meninę išraišką. Aprašyme galima nurodyti pavyzdinio vaizdo numerį ir konkretų jame esantį objektą, kad vaizdinė medžiaga būtų susieta su reikiama veiksmo dalimi. Tai ypač naudinga, kai kelių vaizdų elementus reikia sujungti į vieną kompoziciją.

Skirtingai nuo režimo su pradiniu kadru, pavyzdiniai vaizdai čia yra naujos scenos turinio atramos. Tekstinė užduotis privaloma: ji susieja objektų išvaizdą su veiksmu, kameros judesiu ir bendru scenos pastatymu. Gamintojas pabrėžia vizualinį nuoseklumą ir kinematografišką judesį; rezultatas yra generuojamas, o ne sumontuojamas iš pradinių vaizdų.

Priimami JPEG, JPG, PNG ir WEBP, kurių kiekvieno dydis — iki 20 MB. Trumpesnioji vaizdo kraštinė turi būti ne trumpesnė kaip 400 pikselių; rekomenduojama 720P ar aukštesnės raiškos medžiaga. Šio režimo įvestį sudaro būtent vaizdai ir tekstas.

#### Trukmė, kadras ir garsas

Rezultatas išsaugomas MP4 formatu, 24 kadrų per sekundę dažniu. Trukmė nurodoma sveikuoju skaičiumi nuo 3 iki 15 sekundžių. Galima rinktis 480P, 720P ir 1080P raišką; palaikomas garso takelio generavimas.

Galimi horizontalūs, vertikalūs ir kvadratiniai kadrai: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 ir 21:9. Formato pasirinkimas padeda iš anksto nustatyti naujos scenos kompozicijos erdvę.

Tekstas gali būti bet kuria kalba. Riba — 5000 ne kinų arba 2500 kinų rašmenų, perteklinė dalis atmetama. Svarbiausi pavyzdinių vaizdų vaidmenys, veiksmas ir judėjimas turi tilpti į šią apimtį. Pradinė atsitiktinumo reikšmė gali padėti gauti panašių variantų, tačiau negarantuoja tikslaus to paties vaizdo įrašo pakartojimo.

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-1.1-r2v`

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

Alibaba /`happyhorse-1.1-r2v`

Modelio ID

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

### Pradžia

Vaizdo įrašų generavimo modelis, naudojantis pavyzdinius vaizdus ir tekstinį scenarijų. Padeda naujoje scenoje išlaikyti veikėjų išvaizdą, daiktus ir vizualinį stilių.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Vaizdo įrašai

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations`

Įvestis

`text`, `image`

Išvestis

`video`

Išvesties formatas

mp4

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos happyhorse-1.1-r2v | Numatyta— |
| Laukas`prompt` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias ilgis: 1 | Numatyta— |
| Laukas`duration` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 3 Didžiausia reikšmė: 15 Vienetas: sekundės | Numatyta5 |
| Laukas`resolution` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 480P, 720P, 1080P | Numatyta720P |
| Laukas`ratio` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Numatyta16:9 |
| Laukas`image_urls` | Tipas`https_url\|data_image_url[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 Didžiausias elementų skaičius: 9 Didžiausias dekoduotų baitų skaičius: 20 971 520 MIME tipai: image/jpeg, image/png, image/webp | Numatyta— |

Įvesties medžiagos deriniai

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`required` | Specifikacijamodel, prompt, image\_urls |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`optional` | Specifikacijaduration, resolution, ratio |
| Parametras`duration_integer_range` | Specifikacija3, 15 |
| Parametras`default_duration` | Specifikacija5 |
| Parametras`resolution` | Specifikacija480P, 720P, 1080P |
| Parametras`default_resolution` | Specifikacija720P |
| Parametras`ratio` | Specifikacija16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| Parametras`ratio_must_omit` | Specifikacijafalse |
| Parametras`image_urls` | Specifikacija{"min\_count":1,"max\_count":9,"schemes":\["https","rastriniai data duomenys base64 formatu"\],"max\_data\_image\_bytes":20971520} |

Gyvavimo ciklas: `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ų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Išvestis

0,18 USD *už sekundę 1080p raiška*

Išvestis

0,07 USD *už sekundę 480p raiška*

Išvestis

0,14 USD *už sekundę 720p raiška*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot · Vaizdo įrašai

Pavyzdinis vaizdas

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

### Gauti ir išsaugoti rezultatus

#### Ailoot · Vaizdo įrašai

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`

##### Tikrinti užduoties būseną

GET būsena

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

##### Išsaugoti visą baigtą medžiagą

GET visa baigta medžiaga

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

Kito turinio skaitymas

GET turinys

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

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdo įrašą arba grąžintą failą; gaukite turinį iš kiekvieno faktiškai grąžinto medžiagos URL.

Išsaugokite kiekvieną grąžintą data elementą ir išvesties indeksą. content\_url nurodo tik pirmąjį; gaukite kiekvieną tikrą turinio kelią ar išteklių. GET content be index negrąžina visų rezultatų.

##### Jei reikia patikrinti pradinį atsakymą

Skaitykite esamos pradinės užduoties duomenis; niekada nekartokite siuntimo, kurio baigtis nežinoma.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`object` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`status` | Tipasstring |
| Laukas`content_url` | Tipassigned URL |
| Laukas`data[]` | Tipassigned URL |
| Laukas`usage` | Tipasobject |
| Laukas`result_pending_check` | Tipasboolean |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
| Atsakymas409 · `video_not_ready` | SąlygaPradinio rezultato turinys dar nepasiekiamas | Kitas žingsnisPeriodiškai tikrinkite pradinį grąžintą ID ir laikykitės Retry-After. |
| Atsakymas`server_error` | SąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrinti | Kitas žingsnisIšsaugokite pradinį grąžintą operacijos ar užduoties ID, užklausos antraštes ir atsakymą; toliau tikrinkite tos pačios pradinės operacijos duomenis palaikomais būdais. Kūrimo užklausos pakartotinai neteikite. |

### Pseudonimai

#### Modelių pseudonimai

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

#### Metodų kelių pseudonimai

Naudokite aukščiau nurodytus metodų kelius.

#### Susiję ID iškvietimui

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

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-r2v`

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

Alibaba /`happyhorse-r2v`

Modelio ID

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

### Pradžia

Vaizdo įrašų generavimo modelis, naudojantis pavyzdinius vaizdus ir tekstinį scenarijų. Padeda naujoje scenoje išlaikyti veikėjų išvaizdą, daiktus ir vizualinį stilių.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Vaizdo įrašai

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations`

Įvestis

`text`, `image`

Išvestis

`video`

Išvesties formatas

mp4

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos happyhorse-r2v | Numatyta— |
| Laukas`prompt` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias ilgis: 1 | Numatyta— |
| Laukas`duration` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 3 Didžiausia reikšmė: 15 Vienetas: sekundės | Numatyta5 |
| Laukas`resolution` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 480P, 720P, 1080P | Numatyta720P |
| Laukas`ratio` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Numatyta16:9 |
| Laukas`image_urls` | Tipas`https_url\|data_image_url[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 Didžiausias elementų skaičius: 9 Didžiausias dekoduotų baitų skaičius: 20 971 520 MIME tipai: image/jpeg, image/png, image/webp | Numatyta— |

Įvesties medžiagos deriniai

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijanull |
| Parametras`optional_controls` | Specifikacijanull |

Gyvavimo ciklas: `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ų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Išvestis

0,18 USD *už sekundę 1080p raiška*

Išvestis

0,07 USD *už sekundę 480p raiška*

Išvestis

0,14 USD *už sekundę 720p raiška*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot · Vaizdo įrašai

Pavyzdinis vaizdas

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

### Gauti ir išsaugoti rezultatus

#### Ailoot · Vaizdo įrašai

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`

##### Tikrinti užduoties būseną

GET būsena

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

##### Išsaugoti visą baigtą medžiagą

GET visa baigta medžiaga

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

Kito turinio skaitymas

GET turinys

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

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdo įrašą arba grąžintą failą; gaukite turinį iš kiekvieno faktiškai grąžinto medžiagos URL.

Išsaugokite kiekvieną grąžintą data elementą ir išvesties indeksą. content\_url nurodo tik pirmąjį; gaukite kiekvieną tikrą turinio kelią ar išteklių. GET content be index negrąžina visų rezultatų.

##### Jei reikia patikrinti pradinį atsakymą

Skaitykite esamos pradinės užduoties duomenis; niekada nekartokite siuntimo, kurio baigtis nežinoma.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`object` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`status` | Tipasstring |
| Laukas`content_url` | Tipassigned URL |
| Laukas`data[]` | Tipassigned URL |
| Laukas`usage` | Tipasobject |
| Laukas`result_pending_check` | Tipasboolean |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
| Atsakymas409 · `video_not_ready` | SąlygaPradinio rezultato turinys dar nepasiekiamas | Kitas žingsnisPeriodiškai tikrinkite pradinį grąžintą ID ir laikykitės Retry-After. |
| Atsakymas`server_error` | SąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrinti | Kitas žingsnisIšsaugokite pradinį grąžintą operacijos ar užduoties ID, užklausos antraštes ir atsakymą; toliau tikrinkite tos pačios pradinės operacijos duomenis palaikomais būdais. Kūrimo užklausos pakartotinai neteikite. |

### Pseudonimai

#### Modelių pseudonimai

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

#### Metodų kelių pseudonimai

Naudokite aukščiau nurodytus metodų kelius.

#### Susiję ID iškvietimui

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

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations` `happyhorse-r2v-latest`

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

Alibaba /`happyhorse-r2v-latest`

Modelio ID

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

### Pradžia

Vaizdo įrašų generavimo modelis, naudojantis pavyzdinius vaizdus ir tekstinį scenarijų. Padeda naujoje scenoje išlaikyti veikėjų išvaizdą, daiktus ir vizualinį stilių.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Vaizdo įrašai

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Vaizdo įrašai** `POST /v1/videos/generations`

Įvestis

`text`, `image`

Išvestis

`video`

Išvesties formatas

mp4

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos happyhorse-r2v-latest | Numatyta— |
| Laukas`prompt` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias ilgis: 1 | Numatyta— |
| Laukas`duration` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 3 Didžiausia reikšmė: 15 Vienetas: sekundės | Numatyta5 |
| Laukas`resolution` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 480P, 720P, 1080P | Numatyta720P |
| Laukas`ratio` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Numatyta16:9 |
| Laukas`image_urls` | Tipas`https_url\|data_image_url[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 Didžiausias elementų skaičius: 9 Didžiausias dekoduotų baitų skaičius: 20 971 520 MIME tipai: image/jpeg, image/png, image/webp | Numatyta— |

Įvesties medžiagos deriniai

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijanull |
| Parametras`optional_controls` | Specifikacijanull |

Gyvavimo ciklas: `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ų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Išvestis

0,18 USD *už sekundę 1080p raiška*

Išvestis

0,07 USD *už sekundę 480p raiška*

Išvestis

0,14 USD *už sekundę 720p raiška*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot · Vaizdo įrašai

Pavyzdinis vaizdas

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

### Gauti ir išsaugoti rezultatus

#### Ailoot · Vaizdo įrašai

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`

##### Tikrinti užduoties būseną

GET būsena

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

##### Išsaugoti visą baigtą medžiagą

GET visa baigta medžiaga

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

Kito turinio skaitymas

GET turinys

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

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdo įrašą arba grąžintą failą; gaukite turinį iš kiekvieno faktiškai grąžinto medžiagos URL.

Išsaugokite kiekvieną grąžintą data elementą ir išvesties indeksą. content\_url nurodo tik pirmąjį; gaukite kiekvieną tikrą turinio kelią ar išteklių. GET content be index negrąžina visų rezultatų.

##### Jei reikia patikrinti pradinį atsakymą

Skaitykite esamos pradinės užduoties duomenis; niekada nekartokite siuntimo, kurio baigtis nežinoma.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`object` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`status` | Tipasstring |
| Laukas`content_url` | Tipassigned URL |
| Laukas`data[]` | Tipassigned URL |
| Laukas`usage` | Tipasobject |
| Laukas`result_pending_check` | Tipasboolean |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
| Atsakymas409 · `video_not_ready` | SąlygaPradinio rezultato turinys dar nepasiekiamas | Kitas žingsnisPeriodiškai tikrinkite pradinį grąžintą ID ir laikykitės Retry-After. |
| Atsakymas`server_error` | SąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrinti | Kitas žingsnisIšsaugokite pradinį grąžintą operacijos ar užduoties ID, užklausos antraštes ir atsakymą; toliau tikrinkite tos pačios pradinės operacijos duomenis palaikomais būdais. Kūrimo užklausos pakartotinai neteikite. |

### Pseudonimai

#### Modelių pseudonimai

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

#### Metodų kelių pseudonimai

Naudokite aukščiau nurodytus metodų kelius.

#### Susiję ID iškvietimui

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

FAQ · happyhorse-1.1-r2v

Kokios įvestys ir rezultatai prieinami?

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

Kokius laukus naudoja užklausa?

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

Kokie apribojimai taikomi?

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

Prijunkite Ailoot prie Claude Code, OpenCode, Hermes arba savo programos.

## Įmonė ir jos projektų portfelis

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

## Pirkite žetonus su nuolaida.

Prenumeratos nuolaida reguliariam darbui. Kodai — iki 50% žetonų pirkimui.

Prenumerata

Pasirinkite planą su nuolaida reguliarioms užklausoms.

Nuolaidos kodas iki 50%

Įveskite kodą perkant. Kaina perskaičiuojama pagal galiojančios akcijos sąlygas.

Išlaidos istorijoje

Kiekvienai užklausai išsaugomi modelis, žetonai ir suma.

[Pasirinkti prenumeratą](https://ailoot.ai/docs/lt/billing/subscriptions/) · [Peržiūrėti modelių kainas](https://ailoot.ai/models/lt/)

## Prijunkite API prie produkto, kurį parduodate.

SaaS, programos ir botai pagal Ailoot ofertą bei licencijos sutartį. Perpardavimui paprašykite perpardavėjo licencijos.

Komercinė programa

Teksto, vaizdų, video ir garso kūrimą integruokite į mokamas paslaugos funkcijas.

Perpardavėjo licencija

Atsiųskite projekto aprašymą ir prieigos schemą. Paprašykite rašytinių naudojimo ir perpardavimo sąlygų.

Dokumentai svetainėje

Oferta, licencijos sutartis ir duomenų tvarkymo politika prieinamos prieš prisijungiant.

[Paprašyti perpardavėjo licencijos](mailto:support@ailoot.ai) · [Oferta ir licencijos sutartis](https://ailoot.ai/legal/offer?lang=lt)

## Ailoot · Įmonė ir jos projektų portfelis





Ailoot remiasi sukaupta veiklos patirtimi, plačia klientų baze, stabiliomis paslaugomis ir nuolatine KPI kontrole.





Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.





Ailoot šią veiklos patirtį pritaiko teikdama API prieigą prie DI funkcijų klientų produktuose, agentuose, programose ir automatizavimo sprendimuose.
