Source: https://ailoot.ai/models/fi/happyhorse-1-1-t2v/
Canonical: https://ailoot.ai/models/fi/happyhorse-1-1-t2v/
Language: fi

# happyhorse-1.1-t2v

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

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

Malli lyhyen, äänellisen videon luomiseen tekstikuvauksesta. Sopii kohtauksiin, joiden liike, sommittelu ja visuaalinen tyyli määritetään sanoin.

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

Tietoa mallista

Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.

HappyHorse-1.1-T2V on Alibaban malli lyhyiden videokohtausten luomiseen tekstistä. Kuvaus määrittää hahmot, tapahtumat, ympäristön ja visuaalisen ilmaisun; lähtökuvaa ei tarvita. Malli tuottaa videon ja voi luoda siihen äänen.

Valmistaja korostaa kohtauksen merkityksen ymmärtämistä, elokuvamaista ohjausta ja ilmeikästä liikettä. Teksti voi määrittää tunnelman, hahmon toiminnan, kohteiden käyttäytymisen ja fysikaalisen dynamiikan. Kohtaus voidaan rakentaa tapahtumien ympärille ja ohjata sitten valaistuksella, kuvakulmalla ja kameran liikkeellä.

#### Ohjaus sanoin

Ohje on pakollinen ja voi olla millä tahansa kielellä. Se voi sisältää enintään 5000 muuta kuin kiinalaista tai 2500 kiinalaista merkkiä; ylittävä osa poistetaan. Toiminta, ympäristö ja tärkeät visuaaliset yksityiskohdat on kuvattava tämän määrän sisällä. Näin malli saa tilaa luoda uuden kohtauksen valmiin ensimmäisen ruudun sijaan.

Tässä tilassa teksti on pääasiallinen ohjaava materiaali. Hahmon tai esineen tietty ulkonäkö voidaan kuvailla sanoin; ulkonäön toimittaminen erillisillä kuvilla kuuluu perheen toiseen tilaan. Tulos riippuu koko ohjeesta, joten sama satunnaissiementä määrittävä arvo auttaa saamaan samankaltaisia vaihtoehtoja, mutta ei takaa tarkkaa toistoa.

#### Video ja ääniraita

HappyHorse-1.1:n videokesto valitaan kokonaislukuna 3–15 sekuntia. Tarkkuudet 480P, 720P ja 1080P ovat tuettuja. Valmis tiedosto on MP4 ja kuvataajuus 24 ruutua sekunnissa. Malli voi luoda äänen kuvan yhteydessä ja yhdistää sen kohtauksen tapahtumiin.

Kuvasuhde voidaan määrittää etukäteen. Käytettävissä ovat 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 ja 21:9 leveästä elokuvamaisesta kuvasta pitkään pystyvideoon. Tarkkuus, muoto ja kesto määrittävät tuloksen mitat; sisältöä ja liikettä ohjaa teksti.

Tämä vaihtoehto on tarkoitettu uuden kohtauksen luomiseen sanallisesta ideasta. Se sopii lyhyeen jaksoon, visuaaliseen ideaan tai tunnelmavideoon, jonka ohjaus on ilmaistava tekstinä.

**Ailoot · Videot** `POST /v1/videos/generations` `happyhorse-1.1-t2v`

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

Alibaba /`happyhorse-1.1-t2v`

Mallin ID

- `happyhorse-1.1-t2v`
- `happyhorse-t2v`
- `happyhorse-t2v-latest`

### Aloitus

Malli lyhyen, äänellisen videon luomiseen tekstikuvauksesta. Sopii kohtauksiin, joiden liike, sommittelu ja visuaalinen tyyli määritetään sanoin.

Hyväksytyt syötteet

Teksti

Tulokset

Video

### Saatavilla Ailootissa · syötteet & menetelmät

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

Syötetyypit

`text`

Tulostyypit

`video`

Tulosteen muoto

mp4

| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
| --- | --- | --- | --- | --- |
| Kenttä`model` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat happyhorse-1.1-t2v | Oletus— |
| Kenttä`prompt` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
| Kenttä`duration` | Tyyppi`integer` | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
| Kenttä`resolution` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
| Kenttä`ratio` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Oletus16:9 |
| Kenttä`image_urls` | Tyyppi`https_url\|data_image_url[]` | VaatimusValinnainen | Arvot & rajat Kohteiden vähimmäismäärä: 0 Kohteiden enimmäismäärä: 0 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |

Syöteaineistojen yhdistelmät

**Tekstistä videoksi** · Pakollinen: prompt

Menetelmän parametrit ja elinkaari

| Parametri | Sopimus |
| --- | --- |
| Parametri`content_type` | Sopimusapplication/json |
| Parametri`required` | Sopimusmodel, prompt |
| Parametri`material_types` | Sopimustext |
| Parametri`optional` | Sopimusduration, resolution, ratio |
| Parametri`duration_integer_range` | Sopimus3, 15 |
| Parametri`default_duration` | Sopimus5 |
| Parametri`resolution` | Sopimus480P, 720P, 1080P |
| Parametri`default_resolution` | Sopimus720P |
| Parametri`ratio` | Sopimus16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| Parametri`ratio_must_omit` | Sopimusfalse |
| Parametri`image_urls` | Sopimus{"max\_count":0} |

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

Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.

### Hinnoittelu

#### Ailoot-menetelmien hinnat

Tuloste

0,18 $ *sekuntia kohden 1080p-tarkkuudella*

Tuloste

0,07 $ *sekuntia kohden 480p-tarkkuudella*

Tuloste

0,14 $ *sekuntia kohden 720p-tarkkuudella*

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. [Varauksen ja lopullisen veloituksen toiminta →](https://ailoot.ai/docs/fi/billing/reserve/)

### Esimerkkipyynnöt

#### Ailoot · Videot

Kohtausesimerkki

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

### Vastaanota ja tallenna tulokset

#### Ailoot · Videot

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`

##### Tarkista työn tila

GET tila

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

##### Tallenna kaikki valmistuneet aineistot

GET kaikki valmistuneet aineistot

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

Muut sisällön lukukerrat

GET sisältö

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

##### Säilytä kaikki valmistuneet tulokset

Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.

Säilytä jokainen palautettu data-alkio ja tulosindeksi. content\_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.

##### Jos alkuperäinen vastaus on tarkistettava

Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.

Vastauksen kentät

| Kenttä | Tyyppi |
| --- | --- |
| Kenttä`id` | Tyyppistring |
| Kenttä`object` | Tyyppistring |
| Kenttä`model` | Tyyppistring |
| Kenttä`status` | Tyyppistring |
| Kenttä`content_url` | Tyyppisigned URL |
| Kenttä`data[]` | Tyyppisigned URL |
| Kenttä`usage` | Tyyppiobject |
| Kenttä`result_pending_check` | Tyyppiboolean |

Virheet ja seuraavat vaiheet

| Vastaus | Ehto | Seuraava vaihe |
| --- | --- | --- |
| Vastaus400 · `invalid_request_error` | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
| Vastaus409 · `video_not_ready` | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
| Vastaus`server_error` | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |

### Aliakset

#### Mallin aliakset

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

#### Menetelmäpolkujen aliakset

Käytä yllä näytettyjä menetelmäpolkuja.

#### Liittyvät kutsujan ID:t

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

**Ailoot · Videot** `POST /v1/videos/generations` `happyhorse-t2v`

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

Alibaba /`happyhorse-t2v`

Mallin ID

- `happyhorse-1.1-t2v`
- `happyhorse-t2v`
- `happyhorse-t2v-latest`

### Aloitus

Malli lyhyen, äänellisen videon luomiseen tekstikuvauksesta. Sopii kohtauksiin, joiden liike, sommittelu ja visuaalinen tyyli määritetään sanoin.

Hyväksytyt syötteet

Teksti

Tulokset

Video

### Saatavilla Ailootissa · syötteet & menetelmät

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

Syötetyypit

`text`

Tulostyypit

`video`

Tulosteen muoto

mp4

| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
| --- | --- | --- | --- | --- |
| Kenttä`model` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat happyhorse-t2v | Oletus— |
| Kenttä`prompt` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
| Kenttä`duration` | Tyyppi`integer` | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
| Kenttä`resolution` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
| Kenttä`ratio` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Oletus16:9 |
| Kenttä`image_urls` | Tyyppi`https_url\|data_image_url[]` | VaatimusValinnainen | Arvot & rajat Kohteiden vähimmäismäärä: 0 Kohteiden enimmäismäärä: 0 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |

Syöteaineistojen yhdistelmät

**Tekstistä videoksi** · Pakollinen: prompt

Menetelmän parametrit ja elinkaari

| Parametri | Sopimus |
| --- | --- |
| Parametri`material_types` | Sopimustext |
| Parametri`required` | Sopimusnull |
| Parametri`optional_controls` | Sopimusnull |

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

Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.

### Hinnoittelu

#### Ailoot-menetelmien hinnat

Tuloste

0,18 $ *sekuntia kohden 1080p-tarkkuudella*

Tuloste

0,07 $ *sekuntia kohden 480p-tarkkuudella*

Tuloste

0,14 $ *sekuntia kohden 720p-tarkkuudella*

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. [Varauksen ja lopullisen veloituksen toiminta →](https://ailoot.ai/docs/fi/billing/reserve/)

### Esimerkkipyynnöt

#### Ailoot · Videot

Kohtausesimerkki

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

### Vastaanota ja tallenna tulokset

#### Ailoot · Videot

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`

##### Tarkista työn tila

GET tila

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

##### Tallenna kaikki valmistuneet aineistot

GET kaikki valmistuneet aineistot

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

Muut sisällön lukukerrat

GET sisältö

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

##### Säilytä kaikki valmistuneet tulokset

Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.

Säilytä jokainen palautettu data-alkio ja tulosindeksi. content\_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.

##### Jos alkuperäinen vastaus on tarkistettava

Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.

Vastauksen kentät

| Kenttä | Tyyppi |
| --- | --- |
| Kenttä`id` | Tyyppistring |
| Kenttä`object` | Tyyppistring |
| Kenttä`model` | Tyyppistring |
| Kenttä`status` | Tyyppistring |
| Kenttä`content_url` | Tyyppisigned URL |
| Kenttä`data[]` | Tyyppisigned URL |
| Kenttä`usage` | Tyyppiobject |
| Kenttä`result_pending_check` | Tyyppiboolean |

Virheet ja seuraavat vaiheet

| Vastaus | Ehto | Seuraava vaihe |
| --- | --- | --- |
| Vastaus400 · `invalid_request_error` | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
| Vastaus409 · `video_not_ready` | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
| Vastaus`server_error` | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |

### Aliakset

#### Mallin aliakset

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

#### Menetelmäpolkujen aliakset

Käytä yllä näytettyjä menetelmäpolkuja.

#### Liittyvät kutsujan ID:t

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

**Ailoot · Videot** `POST /v1/videos/generations` `happyhorse-t2v-latest`

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

Alibaba /`happyhorse-t2v-latest`

Mallin ID

- `happyhorse-1.1-t2v`
- `happyhorse-t2v`
- `happyhorse-t2v-latest`

### Aloitus

Malli lyhyen, äänellisen videon luomiseen tekstikuvauksesta. Sopii kohtauksiin, joiden liike, sommittelu ja visuaalinen tyyli määritetään sanoin.

Hyväksytyt syötteet

Teksti

Tulokset

Video

### Saatavilla Ailootissa · syötteet & menetelmät

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

Syötetyypit

`text`

Tulostyypit

`video`

Tulosteen muoto

mp4

| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
| --- | --- | --- | --- | --- |
| Kenttä`model` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat happyhorse-t2v-latest | Oletus— |
| Kenttä`prompt` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
| Kenttä`duration` | Tyyppi`integer` | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 3 Enimmäismäärä: 15 Yksikkö: sekuntia | Oletus5 |
| Kenttä`resolution` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 480P, 720P, 1080P | Oletus720P |
| Kenttä`ratio` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Oletus16:9 |
| Kenttä`image_urls` | Tyyppi`https_url\|data_image_url[]` | VaatimusValinnainen | Arvot & rajat Kohteiden vähimmäismäärä: 0 Kohteiden enimmäismäärä: 0 Purettujen tavujen enimmäismäärä: 20 971 520 MIME-tyypit: image/jpeg, image/png, image/webp | Oletus— |

Syöteaineistojen yhdistelmät

**Tekstistä videoksi** · Pakollinen: prompt

Menetelmän parametrit ja elinkaari

| Parametri | Sopimus |
| --- | --- |
| Parametri`material_types` | Sopimustext |
| Parametri`required` | Sopimusnull |
| Parametri`optional_controls` | Sopimusnull |

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

Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.

### Hinnoittelu

#### Ailoot-menetelmien hinnat

Tuloste

0,18 $ *sekuntia kohden 1080p-tarkkuudella*

Tuloste

0,07 $ *sekuntia kohden 480p-tarkkuudella*

Tuloste

0,14 $ *sekuntia kohden 720p-tarkkuudella*

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. [Varauksen ja lopullisen veloituksen toiminta →](https://ailoot.ai/docs/fi/billing/reserve/)

### Esimerkkipyynnöt

#### Ailoot · Videot

Kohtausesimerkki

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

### Vastaanota ja tallenna tulokset

#### Ailoot · Videot

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`

##### Tarkista työn tila

GET tila

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

##### Tallenna kaikki valmistuneet aineistot

GET kaikki valmistuneet aineistot

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

Muut sisällön lukukerrat

GET sisältö

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

##### Säilytä kaikki valmistuneet tulokset

Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.

Säilytä jokainen palautettu data-alkio ja tulosindeksi. content\_url tarkoittaa vain ensimmäistä; nouda jokainen todellinen sisältöpolku tai aineisto. Sisällön GET ilman index-arvoa ei tarkoita kaikkia tuloksia.

##### Jos alkuperäinen vastaus on tarkistettava

Lue olemassa olevan alkuperäisen työn tietoja; älä koskaan lähetä tuntemattomaan tilaan jäänyttä pyyntöä uudelleen.

Vastauksen kentät

| Kenttä | Tyyppi |
| --- | --- |
| Kenttä`id` | Tyyppistring |
| Kenttä`object` | Tyyppistring |
| Kenttä`model` | Tyyppistring |
| Kenttä`status` | Tyyppistring |
| Kenttä`content_url` | Tyyppisigned URL |
| Kenttä`data[]` | Tyyppisigned URL |
| Kenttä`usage` | Tyyppiobject |
| Kenttä`result_pending_check` | Tyyppiboolean |

Virheet ja seuraavat vaiheet

| Vastaus | Ehto | Seuraava vaihe |
| --- | --- | --- |
| Vastaus400 · `invalid_request_error` | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
| Vastaus409 · `video_not_ready` | EhtoAlkuperäisen tuloksen sisältö ei ole vielä saatavilla | Seuraava vaiheKysy tilaa alkuperäisellä palautetulla tunnisteella ja noudata Retry-After-otsaketta. |
| Vastaus`server_error` | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |

### Aliakset

#### Mallin aliakset

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

#### Menetelmäpolkujen aliakset

Käytä yllä näytettyjä menetelmäpolkuja.

#### Liittyvät kutsujan ID:t

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

FAQ · happyhorse-1.1-t2v

Mitä syötteitä ja tuloksia on saatavilla?

`POST /v1/videos/generations` · `happyhorse-1.1-t2v`: `text` → `video` `POST /v1/videos/generations` · `happyhorse-t2v`: `text` → `video` `POST /v1/videos/generations` · `happyhorse-t2v-latest`: `text` → `video`

Mitä kenttiä pyyntö käyttää?

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

Mitä rajoja sovelletaan?

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

Yhdistä Ailoot Claude Codeen, OpenCodeen, Hermesiin tai omaan sovellukseesi.

## Yritys ja sen projektisalkku

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

## Osta tokenit alennuksella.

Tilausalennus säännölliseen käyttöön. Kampanjakoodit — jopa 50% tokeniostoista.

Tilaus

Valitse alennushintainen paketti säännöllisiä pyyntöjäsi varten.

Kampanjakoodi jopa 50%

Syötä koodi oston yhteydessä. Hinta lasketaan uudelleen voimassa olevan kampanjan mukaan.

Kulut historiassa

Malli, tokenit ja summa tallennetaan jokaiselle pyynnölle.

[Valitse tilaus](https://ailoot.ai/docs/fi/billing/subscriptions/) · [Katso mallihinnat](https://ailoot.ai/models/fi/)

## Yhdistä API tuotteeseen, jonka myyt.

SaaS, sovellukset ja botit Ailootin palveluehtojen ja lisenssisopimuksen mukaisesti. Pyydä edelleenmyyntiin jälleenmyyjälisenssi.

Kaupallinen sovellus

Lisää tekstin, kuvien, videoiden ja äänen luonti palvelusi maksullisiin ominaisuuksiin.

Jälleenmyyjälisenssi

Lähetä projektikuvaus ja pääsyn toteutustapa. Pyydä kirjalliset käyttö- ja jälleenmyyntiehdot.

Asiakirjat verkkosivustolla

Palveluehdot, lisenssisopimus ja tietojenkäsittelykäytäntö ovat saatavilla ennen yhdistämistä.

[Pyydä jälleenmyyjälisenssi](mailto:support@ailoot.ai) · [Palveluehdot ja lisenssisopimus](https://ailoot.ai/legal/offer?lang=fi)

## Ailoot · Yritys ja sen projektisalkku





Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.





Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.





Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
