Source: https://ailoot.ai/models/sl/happyhorse-1-1-i2v/
Canonical: https://ailoot.ai/models/sl/happyhorse-1-1-i2v/
Language: sl

# happyhorse-1.1-i2v

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

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

Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.

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

O modelu

Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.

HappyHorse-1.1-I2V je model družbe Alibaba, ki videosceno začne z že pripravljeno sliko. Ta postane prvi kader, besedilo pa lahko določi nadaljnje dogajanje: gibanje lika, spremembe v sceni in smer kamere. Primeren je za oživljanje ilustracije, fotografije izdelka ali vnaprej pripravljenega vizualnega koncepta.

Besedilni opis ni obvezen. Če ga ni, model sam iz vsebine začetne slike izpelje možno gibanje. Če opis podate, izvirna slika določa kompozicijo in videz objektov, besede pa usmerjajo razvoj scene skozi čas.

#### Od prvega kadra do gibanja

Alibaba izpostavlja ohranjanje videza lika, vizualno skladnost, tekoče gibanje ter povezovanje slike in zvoka. Med navedenimi razvojnimi cilji je tudi obstojnost napisov in tekstur. Te lastnosti opisujejo zasnovo modela in ne pomenijo dobesednega ohranjanja vsake slikovne pike v vseh ustvarjenih kadrih.

Ta način uporablja eno začetno sliko. Ta določa izhodiščno sceno in ne predstavlja nabora neodvisnih vzorcev za novo kompozicijo. Za to konkretno različico možnost določitve ločenega zaključnega kadra ni navedena.

Sprejeti so formati JPEG, JPG, PNG in WEBP. Vsaka stranica vhodne slike mora imeti najmanj 300 slikovnih pik; dovoljeno razmerje stranic je od 1:2,5 do 2,5:1, velikost datoteke pa do 20 MB. Razmerje stranic končnega videa sledi prvemu kadru.

#### Parametri posnetka

Trajanje izberete kot celo število od 3 do 15 sekund. Na voljo so ločljivosti 480P, 720P in 1080P; izhodni format je MP4, hitrost pa 24 sličic na sekundo. Podprto je ustvarjanje zvočne spremljave skupaj z videom.

Opis je lahko v katerem koli jeziku in vsebuje do 5000 nekitajskih ali 2500 kitajskih znakov. Če to mejo preseže, se presežni del zavrže, zato naj bodo pomembna dejanja in značilnosti gibanja opisana znotraj omejitve. Enako začetno naključno seme lahko da podobne posnetke, ne zagotavlja pa njihovega ujemanja sličico za sličico.

**Ailoot · Videoposnetki** `POST /v1/videos/generations` `happyhorse-1.1-i2v`

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

Alibaba /`happyhorse-1.1-i2v`

ID modela

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Začetek

Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.

Dovoljeni vhodi

Besedilo · Slike

Rezultati

Video

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Videoposnetki** `POST /v1/videos/generations`

Vhod

`text`, `image`

Izhod

`video`

Izhodni format

mp4

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve happyhorse-1.1-i2v | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`duration` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
| Polje`resolution` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
| Polje`ratio` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
| Polje`image_urls` | Vrsta`https_url\|data_image_url[]` | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |

Kombinacije vhodnih gradiv

**first\_frame\_to\_video** · Obvezno: image\_urls

Parametri in življenjski cikel metode

| Parameter | Specifikacija |
| --- | --- |
| Parameter`content_type` | Specifikacijaapplication/json |
| Parameter`required` | Specifikacijamodel, image\_urls |
| Parameter`material_types` | Specifikacijatext, image |
| Parameter`optional` | Specifikacijaduration, resolution, ratio, prompt |
| Parameter`duration_integer_range` | Specifikacija3, 15 |
| Parameter`default_duration` | Specifikacija5 |
| Parameter`resolution` | Specifikacija480P, 720P, 1080P |
| Parameter`default_resolution` | Specifikacija720P |
| Parameter`ratio` | Specifikacija |
| Parameter`ratio_must_omit` | Specifikacijatrue |
| Parameter`image_urls` | Specifikacija{"min\_count":1,"max\_count":1,"schemes":\["https","data za rastrsko sliko v base64"\],"max\_data\_image\_bytes":20971520} |

Življenjski cikel: `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`

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Izhod

0,18 $ *na sekundo pri 1080p*

Izhod

0,07 $ *na sekundo pri 480p*

Izhod

0,14 $ *na sekundo pri 720p*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Videoposnetki

Referenčna slika

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

### Prejmi in shrani rezultate

#### Ailoot · Videoposnetki

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`

##### Preveri stanje opravila

GET stanje

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

##### Shrani vsa dokončana gradiva

GET vsa dokončana gradiva

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

Branje druge vsebine

GET vsebina

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

##### Ohrani vse dokončane rezultate

Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.

Ohranite vsak vrnjeni element data/indeks izhoda. content\_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.

##### Če je treba preveriti izvirni odgovor

Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`id` | Vrstastring |
| Polje`object` | Vrstastring |
| Polje`model` | Vrstastring |
| Polje`status` | Vrstastring |
| Polje`content_url` | Vrstasigned URL |
| Polje`data[]` | Vrstasigned URL |
| Polje`usage` | Vrstaobject |
| Polje`result_pending_check` | Vrstaboolean |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor409 · `video_not_ready` | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

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

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

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

**Ailoot · Videoposnetki** `POST /v1/videos/generations` `happyhorse-i2v`

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

Alibaba /`happyhorse-i2v`

ID modela

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Začetek

Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.

Dovoljeni vhodi

Besedilo · Slike

Rezultati

Video

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Videoposnetki** `POST /v1/videos/generations`

Vhod

`text`, `image`

Izhod

`video`

Izhodni format

mp4

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve happyhorse-i2v | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`duration` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
| Polje`resolution` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
| Polje`ratio` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
| Polje`image_urls` | Vrsta`https_url\|data_image_url[]` | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |

Kombinacije vhodnih gradiv

**first\_frame\_to\_video** · Obvezno: image\_urls

Parametri in življenjski cikel metode

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

Življenjski cikel: `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`

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Izhod

0,18 $ *na sekundo pri 1080p*

Izhod

0,07 $ *na sekundo pri 480p*

Izhod

0,14 $ *na sekundo pri 720p*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Videoposnetki

Referenčna slika

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

### Prejmi in shrani rezultate

#### Ailoot · Videoposnetki

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`

##### Preveri stanje opravila

GET stanje

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

##### Shrani vsa dokončana gradiva

GET vsa dokončana gradiva

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

Branje druge vsebine

GET vsebina

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

##### Ohrani vse dokončane rezultate

Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.

Ohranite vsak vrnjeni element data/indeks izhoda. content\_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.

##### Če je treba preveriti izvirni odgovor

Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`id` | Vrstastring |
| Polje`object` | Vrstastring |
| Polje`model` | Vrstastring |
| Polje`status` | Vrstastring |
| Polje`content_url` | Vrstasigned URL |
| Polje`data[]` | Vrstasigned URL |
| Polje`usage` | Vrstaobject |
| Polje`result_pending_check` | Vrstaboolean |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor409 · `video_not_ready` | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

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

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

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

**Ailoot · Videoposnetki** `POST /v1/videos/generations` `happyhorse-i2v-latest`

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

Alibaba /`happyhorse-i2v-latest`

ID modela

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Začetek

Model za oživljanje slike: izvirna slika določa prvi kader, opis pa usmerja nadaljnje gibanje. Ustvari kratek videoposnetek z možnostjo zvočne spremljave.

Dovoljeni vhodi

Besedilo · Slike

Rezultati

Video

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Videoposnetki** `POST /v1/videos/generations`

Vhod

`text`, `image`

Izhod

`video`

Izhodni format

mp4

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve happyhorse-i2v-latest | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`duration` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 3 Največ: 15 Enota: sekunde | Privzeto5 |
| Polje`resolution` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve 480P, 720P, 1080P | Privzeto720P |
| Polje`ratio` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve | Privzeto— |
| Polje`image_urls` | Vrsta`https_url\|data_image_url[]` | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 Največ elementov: 1 Največ dekodiranih bajtov: 20.971.520 Vrste MIME: image/jpeg, image/png, image/webp | Privzeto— |

Kombinacije vhodnih gradiv

**first\_frame\_to\_video** · Obvezno: image\_urls

Parametri in življenjski cikel metode

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

Življenjski cikel: `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`

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Izhod

0,18 $ *na sekundo pri 1080p*

Izhod

0,07 $ *na sekundo pri 480p*

Izhod

0,14 $ *na sekundo pri 720p*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Videoposnetki

Referenčna slika

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

### Prejmi in shrani rezultate

#### Ailoot · Videoposnetki

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`

##### Preveri stanje opravila

GET stanje

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

##### Shrani vsa dokončana gradiva

GET vsa dokončana gradiva

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

Branje druge vsebine

GET vsebina

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

##### Ohrani vse dokončane rezultate

Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.

Ohranite vsak vrnjeni element data/indeks izhoda. content\_url je samo prvi; pridobite vsako dejansko pot vsebine/sredstvo. GET vsebine brez index ne pomeni vseh izhodov.

##### Če je treba preveriti izvirni odgovor

Berite obstoječe prvotno opravilo; neznane oddaje nikoli ne ponovite.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`id` | Vrstastring |
| Polje`object` | Vrstastring |
| Polje`model` | Vrstastring |
| Polje`status` | Vrstastring |
| Polje`content_url` | Vrstasigned URL |
| Polje`data[]` | Vrstasigned URL |
| Polje`usage` | Vrstaobject |
| Polje`result_pending_check` | Vrstaboolean |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor409 · `video_not_ready` | PogojPrvotna vsebina rezultata še ni na voljo | Naslednji korakPreverjajte prvotni vrnjeni ID in upoštevajte Retry-After. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

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

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

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

FAQ · happyhorse-1.1-i2v

Kateri vhodi in rezultati so na voljo?

`POST /v1/videos/generations` · `happyhorse-1.1-i2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-i2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-i2v-latest`: `text`, `image` → `video`

Katera polja uporablja zahteva?

`POST /v1/videos/generations` · `happyhorse-1.1-i2v`: `model`, `prompt`, `duration`, `resolution`, `image_urls` `POST /v1/videos/generations` · `happyhorse-i2v`: `model`, `prompt`, `duration`, `resolution`, `image_urls` `POST /v1/videos/generations` · `happyhorse-i2v-latest`: `model`, `prompt`, `duration`, `resolution`, `image_urls`

Katere omejitve veljajo?

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

Ailoot povežite s Claude Code, OpenCode, Hermes ali svojo aplikacijo.

## Podjetje in njegov portfelj projektov

Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.

## Žetone kupujte s popustom.

Naročniški popust za redno delo. Promocijske kode prinesejo do 50% popusta na nakup žetonov.

Naročnina

Za redne zahteve izberite paket s popustom.

Promocijska koda do 50%

Kodo vnesite ob nakupu. Cena se preračuna po veljavni akciji.

Poraba v zgodovini

Za vsako zahtevo se shranijo model, žetoni in znesek.

[Izberite naročnino](https://ailoot.ai/docs/sl/billing/subscriptions/) · [Oglejte si cene modelov](https://ailoot.ai/models/sl/)

## API povežite z izdelkom, ki ga prodajate.

SaaS, aplikacije in boti po ponudbi in licenčni pogodbi Ailoot. Za nadaljnjo prodajo zaprosite za preprodajno licenco.

Komercialna aplikacija

Ustvarjanje besedila, slik, videa in zvoka vključite v plačljive funkcije svoje storitve.

Licenca za preprodajalca

Pošljite opis projekta in shemo dostopa. Zahtevajte pisne pogoje uporabe in nadaljnje prodaje.

Dokumenti na strani

Ponudba, licenčna pogodba in politika obdelave podatkov so dostopne pred povezavo.

[Zaprosite za preprodajno licenco](mailto:support@ailoot.ai) · [Ponudba in licenčna pogodba](https://ailoot.ai/legal/offer?lang=sl)

## Ailoot · Podjetje in njegov portfelj projektov





Ailoot temelji na pridobljenih operativnih izkušnjah, široki bazi strank, stabilni storitvi in stalnem spremljanju KPI.





Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.





Ailoot te operativne izkušnje uporablja za dostop prek API do funkcij umetne inteligence v izdelkih strank, agentih, aplikacijah in avtomatizacijah.
