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

# happyhorse-1.1-i2v

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

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

Model pro oživení obrázku: výchozí obrázek určuje první snímek a popis usměrňuje další pohyb. Vytváří krátké video s možností zvukového doprovodu.

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

O modelu

Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.

HappyHorse-1.1-I2V je model Alibaba, který začíná videoscénu hotovým obrázkem. Obrázek se stane prvním snímkem a text může určit následný děj: pohyb postavy, změny ve scéně a směr pohybu kamery. Hodí se k oživení ilustrace, produktové fotografie nebo předem připraveného vizuálního konceptu.

Textový popis je nepovinný. Pokud chybí, model sám odvodí možný pohyb z obsahu počátečního obrázku. Při výslovném zadání určuje vstupní obrázek kompozici a vzhled objektů, zatímco slova řídí vývoj scény v čase.

#### Od prvního snímku k pohybu

Alibaba zdůrazňuje zachování vzhledu postavy, vizuální konzistenci, plynulost pohybu a spojení obrazu se zvukem. Mezi deklarované vlastnosti patří také stálost nápisů a textur. Tyto vlastnosti vyjadřují záměr modelu a neznamenají doslovné zachování každého pixelu ve všech vygenerovaných snímcích.

V tomto režimu se používá jeden počáteční obrázek. Určuje výchozí scénu, nikoli soubor nezávislých vzorů pro novou kompozici. Možnost zadat samostatný závěrečný snímek pro tuto konkrétní verzi nebyla deklarována.

Přijímány jsou JPEG, JPG, PNG a WEBP. Každá strana vstupního obrázku musí mít alespoň 300 pixelů; povolený poměr stran je od 1:2,5 do 2,5:1 a velikost souboru do 20 MB. Poměr stran hotového videa odpovídá prvnímu snímku.

#### Parametry videa

Délka se volí jako celé číslo od 3 do 15 sekund. Dostupná jsou rozlišení 480P, 720P a 1080P; výstupním formátem je MP4 a snímková frekvence činí 24 snímků za sekundu. Podporováno je vytváření zvukového doprovodu spolu s obrazem videa.

Popis může být v libovolném jazyce a obsahovat až 5000 nečínských nebo 2500 čínských znaků. Při překročení limitu se přebytečná část zahodí, proto je vhodné popsat důležité děje a vlastnosti pohybu v mezích zadání. Stejná počáteční hodnota náhodného semínka může vést k podobným videím, ale nezaručuje jejich shodu snímek po snímku.

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

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

Alibaba /`happyhorse-1.1-i2v`

ID modelu

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

### Úvod

Model pro oživení obrázku: výchozí obrázek určuje první snímek a popis usměrňuje další pohyb. Vytváří krátké video s možností zvukového doprovodu.

Přijímané vstupy

Text · Obrázky

Výsledky

Video

### Dostupné v Ailoot · vstupy a metody

**Ailoot · Tvorba videa** `POST /v1/videos/generations`

Vstup

`text`, `image`

Výstup

`video`

Výstupní formát

mp4

| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožadavekPovinné | Hodnoty a limity happyhorse-1.1-i2v | Výchozí— |
| Pole`prompt` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Minimální délka: 1 | Výchozí— |
| Pole`duration` | Typ`integer` | PožadavekVolitelné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Výchozí5 |
| Pole`resolution` | Typ`string` | PožadavekVolitelné | Hodnoty a limity 480P, 720P, 1080P | Výchozí720P |
| Pole`ratio` | Typ`string` | PožadavekNepodporováno | Hodnoty a limity | Výchozí— |
| Pole`image_urls` | Typ`https_url\|data_image_url[]` | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 Maximální počet položek: 1 Maximální počet dekódovaných bajtů: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Výchozí— |

Kombinace vstupních materiálů

**first\_frame\_to\_video** · Povinné: image\_urls

Parametry a životní cyklus metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, image\_urls |
| Parametr`material_types` | Kontrakttext, image |
| Parametr`optional` | Kontraktduration, resolution, ratio, prompt |
| Parametr`duration_integer_range` | Kontrakt3, 15 |
| Parametr`default_duration` | Kontrakt5 |
| Parametr`resolution` | Kontrakt480P, 720P, 1080P |
| Parametr`default_resolution` | Kontrakt720P |
| Parametr`ratio` | Kontrakt |
| Parametr`ratio_must_omit` | Kontrakttrue |
| Parametr`image_urls` | Kontrakt{"min\_count":1,"max\_count":1,"schemes":\["https","rastrová data v base64"\],"max\_data\_image\_bytes":20971520} |

Životní cyklus: `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`

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

### Tarify

#### Sazby metod Ailoot

Výstup

0,18 US$ *za sekundu v 1080p*

Výstup

0,07 US$ *za sekundu v 480p*

Výstup

0,14 US$ *za sekundu v 720p*

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. [Jak funguje rezervace a vyúčtování →](https://ailoot.ai/docs/cs/billing/reserve/)

### Příklady požadavků

#### Ailoot · Tvorba videa

Referenční obrázek

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

### Přijímání a ukládání výsledků

#### Ailoot · Tvorba videa

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`

##### Ověřit stav úlohy

Získat stav pomocí GET

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

##### Uložte všechny dokončené soubory

Získat všechny dokončené soubory pomocí GET

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

Další načtení obsahu

Získat obsah pomocí GET

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

##### Uchovejte všechny dokončené výsledky

Uložte každé dokončené video či vrácený soubor; stáhněte obsah každé skutečně vrácené URL souboru.

Zachovejte každou vrácenou datovou položku a index výstupu. content\_url označuje pouze první; načtěte každou skutečnou cestu obsahu či soubor. GET obsahu bez indexu nepředstavuje všechny výstupy.

##### Pokud je nutné ověřit původní odpověď

Načítejte existující původní úlohu; odeslání s neznámým výsledkem nikdy neopakujte.

Pole odpovědi

| Pole | Typ |
| --- | --- |
| Pole`id` | Typstring |
| Pole`object` | Typstring |
| Pole`model` | Typstring |
| Pole`status` | Typstring |
| Pole`content_url` | Typsigned URL |
| Pole`data[]` | Typsigned URL |
| Pole`usage` | Typobject |
| Pole`result_pending_check` | Typboolean |

Chyby a další kroky

| Odpověď | Podmínka | Další krok |
| --- | --- | --- |
| Odpověď400 · `invalid_request_error` | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
| Odpověď409 · `video_not_ready` | PodmínkaObsah původního výsledku zatím není dostupný | Další krokDotazujte se na původní vrácené ID a dodržujte Retry-After. |
| Odpověď`server_error` | PodmínkaVrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat | Další krokUchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy cest metod

Použijte cesty metod uvedené výše.

#### Související ID modelů

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

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

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

Alibaba /`happyhorse-i2v`

ID modelu

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

### Úvod

Model pro oživení obrázku: výchozí obrázek určuje první snímek a popis usměrňuje další pohyb. Vytváří krátké video s možností zvukového doprovodu.

Přijímané vstupy

Text · Obrázky

Výsledky

Video

### Dostupné v Ailoot · vstupy a metody

**Ailoot · Tvorba videa** `POST /v1/videos/generations`

Vstup

`text`, `image`

Výstup

`video`

Výstupní formát

mp4

| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožadavekPovinné | Hodnoty a limity happyhorse-i2v | Výchozí— |
| Pole`prompt` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Minimální délka: 1 | Výchozí— |
| Pole`duration` | Typ`integer` | PožadavekVolitelné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Výchozí5 |
| Pole`resolution` | Typ`string` | PožadavekVolitelné | Hodnoty a limity 480P, 720P, 1080P | Výchozí720P |
| Pole`ratio` | Typ`string` | PožadavekNepodporováno | Hodnoty a limity | Výchozí— |
| Pole`image_urls` | Typ`https_url\|data_image_url[]` | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 Maximální počet položek: 1 Maximální počet dekódovaných bajtů: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Výchozí— |

Kombinace vstupních materiálů

**first\_frame\_to\_video** · Povinné: image\_urls

Parametry a životní cyklus metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`material_types` | Kontrakttext, image |
| Parametr`required` | Kontraktnull |
| Parametr`optional_controls` | Kontraktnull |

Životní cyklus: `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`

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

### Tarify

#### Sazby metod Ailoot

Výstup

0,18 US$ *za sekundu v 1080p*

Výstup

0,07 US$ *za sekundu v 480p*

Výstup

0,14 US$ *za sekundu v 720p*

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. [Jak funguje rezervace a vyúčtování →](https://ailoot.ai/docs/cs/billing/reserve/)

### Příklady požadavků

#### Ailoot · Tvorba videa

Referenční obrázek

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

### Přijímání a ukládání výsledků

#### Ailoot · Tvorba videa

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`

##### Ověřit stav úlohy

Získat stav pomocí GET

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

##### Uložte všechny dokončené soubory

Získat všechny dokončené soubory pomocí GET

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

Další načtení obsahu

Získat obsah pomocí GET

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

##### Uchovejte všechny dokončené výsledky

Uložte každé dokončené video či vrácený soubor; stáhněte obsah každé skutečně vrácené URL souboru.

Zachovejte každou vrácenou datovou položku a index výstupu. content\_url označuje pouze první; načtěte každou skutečnou cestu obsahu či soubor. GET obsahu bez indexu nepředstavuje všechny výstupy.

##### Pokud je nutné ověřit původní odpověď

Načítejte existující původní úlohu; odeslání s neznámým výsledkem nikdy neopakujte.

Pole odpovědi

| Pole | Typ |
| --- | --- |
| Pole`id` | Typstring |
| Pole`object` | Typstring |
| Pole`model` | Typstring |
| Pole`status` | Typstring |
| Pole`content_url` | Typsigned URL |
| Pole`data[]` | Typsigned URL |
| Pole`usage` | Typobject |
| Pole`result_pending_check` | Typboolean |

Chyby a další kroky

| Odpověď | Podmínka | Další krok |
| --- | --- | --- |
| Odpověď400 · `invalid_request_error` | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
| Odpověď409 · `video_not_ready` | PodmínkaObsah původního výsledku zatím není dostupný | Další krokDotazujte se na původní vrácené ID a dodržujte Retry-After. |
| Odpověď`server_error` | PodmínkaVrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat | Další krokUchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy cest metod

Použijte cesty metod uvedené výše.

#### Související ID modelů

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

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

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

Alibaba /`happyhorse-i2v-latest`

ID modelu

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

### Úvod

Model pro oživení obrázku: výchozí obrázek určuje první snímek a popis usměrňuje další pohyb. Vytváří krátké video s možností zvukového doprovodu.

Přijímané vstupy

Text · Obrázky

Výsledky

Video

### Dostupné v Ailoot · vstupy a metody

**Ailoot · Tvorba videa** `POST /v1/videos/generations`

Vstup

`text`, `image`

Výstup

`video`

Výstupní formát

mp4

| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožadavekPovinné | Hodnoty a limity happyhorse-i2v-latest | Výchozí— |
| Pole`prompt` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Minimální délka: 1 | Výchozí— |
| Pole`duration` | Typ`integer` | PožadavekVolitelné | Hodnoty a limity Minimum: 3 Maximum: 15 Jednotka: sekundy | Výchozí5 |
| Pole`resolution` | Typ`string` | PožadavekVolitelné | Hodnoty a limity 480P, 720P, 1080P | Výchozí720P |
| Pole`ratio` | Typ`string` | PožadavekNepodporováno | Hodnoty a limity | Výchozí— |
| Pole`image_urls` | Typ`https_url\|data_image_url[]` | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 Maximální počet položek: 1 Maximální počet dekódovaných bajtů: 20 971 520 Typy MIME: image/jpeg, image/png, image/webp | Výchozí— |

Kombinace vstupních materiálů

**first\_frame\_to\_video** · Povinné: image\_urls

Parametry a životní cyklus metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`material_types` | Kontrakttext, image |
| Parametr`required` | Kontraktnull |
| Parametr`optional_controls` | Kontraktnull |

Životní cyklus: `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`

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

### Tarify

#### Sazby metod Ailoot

Výstup

0,18 US$ *za sekundu v 1080p*

Výstup

0,07 US$ *za sekundu v 480p*

Výstup

0,14 US$ *za sekundu v 720p*

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. [Jak funguje rezervace a vyúčtování →](https://ailoot.ai/docs/cs/billing/reserve/)

### Příklady požadavků

#### Ailoot · Tvorba videa

Referenční obrázek

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

### Přijímání a ukládání výsledků

#### Ailoot · Tvorba videa

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`

##### Ověřit stav úlohy

Získat stav pomocí GET

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

##### Uložte všechny dokončené soubory

Získat všechny dokončené soubory pomocí GET

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

Další načtení obsahu

Získat obsah pomocí GET

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

##### Uchovejte všechny dokončené výsledky

Uložte každé dokončené video či vrácený soubor; stáhněte obsah každé skutečně vrácené URL souboru.

Zachovejte každou vrácenou datovou položku a index výstupu. content\_url označuje pouze první; načtěte každou skutečnou cestu obsahu či soubor. GET obsahu bez indexu nepředstavuje všechny výstupy.

##### Pokud je nutné ověřit původní odpověď

Načítejte existující původní úlohu; odeslání s neznámým výsledkem nikdy neopakujte.

Pole odpovědi

| Pole | Typ |
| --- | --- |
| Pole`id` | Typstring |
| Pole`object` | Typstring |
| Pole`model` | Typstring |
| Pole`status` | Typstring |
| Pole`content_url` | Typsigned URL |
| Pole`data[]` | Typsigned URL |
| Pole`usage` | Typobject |
| Pole`result_pending_check` | Typboolean |

Chyby a další kroky

| Odpověď | Podmínka | Další krok |
| --- | --- | --- |
| Odpověď400 · `invalid_request_error` | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
| Odpověď409 · `video_not_ready` | PodmínkaObsah původního výsledku zatím není dostupný | Další krokDotazujte se na původní vrácené ID a dodržujte Retry-After. |
| Odpověď`server_error` | PodmínkaVrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat | Další krokUchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy cest metod

Použijte cesty metod uvedené výše.

#### Související ID modelů

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

FAQ · happyhorse-1.1-i2v

Jaké vstupy a výsledky jsou dostupné?

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

Jaká pole požadavek používá?

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

Jaké limity platí?

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

Připojte Ailoot k Claude Code, OpenCode, Hermes nebo vlastní aplikaci.

## Společnost a její portfolio projektů

Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.

## Nakupujte tokeny se slevou.

Sleva předplatného pro pravidelnou práci. Promo kódy až 50% na nákup tokenů.

Předplatné

Pro pravidelné požadavky vyberte tarif se slevou.

Promo kód až 50%

Při nákupu zadejte kód. Cena se přepočítá podle probíhající akce.

Výdaje v historii

U každého požadavku se uloží model, tokeny a částka.

[Vybrat předplatné](https://ailoot.ai/docs/cs/billing/subscriptions/) · [Zobrazit ceny modelů](https://ailoot.ai/models/cs/)

## Připojte API k produktu, který prodáváte.

SaaS, aplikace a boti podle nabídky a licenční smlouvy Ailoot. Pro přeprodej požádejte o licenci přeprodejce.

Komerční aplikace

Začleňte generování textu, obrázků, videa a zvuku do placených funkcí své služby.

Licence pro přeprodejce

Pošlete popis projektu a způsob poskytování přístupu. Vyžádejte písemné podmínky použití a přeprodeje.

Dokumenty na webu

Nabídka, licenční smlouva a zásady zpracování dat jsou dostupné před připojením.

[Požádat o licenci přeprodejce](mailto:support@ailoot.ai) · [Nabídka a licenční smlouva](https://ailoot.ai/legal/offer?lang=cs)

## Ailoot · Společnost a její portfolio projektů





Ailoot staví na dlouhodobých provozních zkušenostech, široké klientské základně, stabilních službách a průběžném sledování KPI.





Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.





Ailoot využívá tyto provozní zkušenosti k poskytování přístupu přes API k funkcím AI v produktech zákazníků, agentech, aplikacích a automatizacích.
