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

# happyhorse-1.1-t2v

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

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

En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.

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

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

HappyHorse-1.1-T2V er en modell fra Alibaba som lager korte videoscener fra tekst. Beskrivelsen angir figurer, handlinger, omgivelser og visuell utforming; denne modusen trenger ikke et kildebilde. Modellen lager videoen og kan generere tilhørende lyd.

Produsenten fremhever forståelse av scenens innhold, filmatisk iscenesettelse og uttrykksfulle bevegelser. Teksten kan bestemme stemning, figurens handlinger, objektenes oppførsel og fysisk dynamikk. Dermed kan scenen bygges rundt det som skal skje, og deretter styres med lys, synsvinkel og kamerabevegelse.

#### Iscenesettelse med ord

En beskrivelse er påkrevd og kan være på hvilket som helst språk. Den kan inneholde opptil 5000 ikke-kinesiske eller 2500 kinesiske tegn; overskytende tekst fjernes. Handlingen, omgivelsene og viktige visuelle detaljer må beskrives innenfor denne grensen. Denne formen for iscenesettelse gir modellen rom til å lage en ny scene i stedet for å fastsette et ferdig første bilde.

I denne modusen er tekst det viktigste styringsmaterialet. En bestemt figur eller gjenstand kan beskrives med ord; muligheten til å gi utseendet gjennom egne bilder hører til en annen modus i familien. Resultatet avhenger av hele beskrivelsen, så samme tilfeldige startverdi bidrar til lignende varianter, men garanterer ikke en nøyaktig gjentakelse.

#### Video og tilhørende lyd

For HappyHorse-1.1 velges videovarigheten som et heltall fra 3 til 15 sekunder. Oppløsningene 480P, 720P og 1080P støttes. Den ferdige filen er MP4 med 24 bilder per sekund. Modellen kan generere lyd sammen med bildet og knytte lyden til det som skjer i scenen.

Bildeformen kan angis på forhånd. Tilgjengelige formater er 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 og 21:9, fra brede filmatiske bilder til avlange vertikale videoer. Oppløsning, format og varighet bestemmer resultatets dimensjoner; innhold og bevegelse angis i teksten.

Denne varianten er ment å lage en ny scene fra en idé uttrykt med ord. Den passer til en kort episode, en visuell idé eller en stemningsvideo der iscenesettelsen må beskrives i tekst.

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

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

Alibaba /`happyhorse-1.1-t2v`

Modell-ID

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

### Start

En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.

Godkjente inndata

Tekst

Resultater

Video

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`video`

Utdataformat

mp4

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser happyhorse-1.1-t2v | Standard— |
| Felt`prompt` | Type`string` | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
| Felt`image_urls` | Type`https_url\|data_image_url[]` | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinasjoner av inngående materialer

**Tekst til video** · Påkrevd: prompt

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, prompt |
| Parameter`material_types` | Avtaletext |
| Parameter`optional` | Avtaleduration, resolution, ratio |
| Parameter`duration_integer_range` | Avtale3, 15 |
| Parameter`default_duration` | Avtale5 |
| Parameter`resolution` | Avtale480P, 720P, 1080P |
| Parameter`default_resolution` | Avtale720P |
| Parameter`ratio` | Avtale16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| Parameter`ratio_must_omit` | Avtalefalse |
| Parameter`image_urls` | Avtale{"max\_count":0} |

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

Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.

### Priser

#### Satser for Ailoot-metoder

Utdata

0,18 USD *per sekund ved 1080p*

Utdata

0,07 USD *per sekund ved 480p*

Utdata

0,14 USD *per sekund ved 720p*

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot · Videogenerering

Sceneeksempel

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

### Motta og lagre resultater

#### Ailoot · Videogenerering

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`

##### Kontroller jobbstatus

GET status

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

##### Lagre alle ferdige ressurser

GET alle ferdige ressurser

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

Andre innholdslesinger

GET innhold

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

##### Behold alle ferdige resultater

Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.

Bevar hvert returnert dataelement og hver utdataindeks. content\_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.

##### Hvis det opprinnelige svaret må kontrolleres

Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`object` | Typestring |
| Felt`model` | Typestring |
| Felt`status` | Typestring |
| Felt`content_url` | Typesigned URL |
| Felt`data[]` | Typesigned URL |
| Felt`usage` | Typeobject |
| Felt`result_pending_check` | Typeboolean |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
| Svar409 · `video_not_ready` | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
| Svar`server_error` | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |

### Aliaser

#### Modellaliaser

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

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

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

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

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

Alibaba /`happyhorse-t2v`

Modell-ID

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

### Start

En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.

Godkjente inndata

Tekst

Resultater

Video

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`video`

Utdataformat

mp4

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser happyhorse-t2v | Standard— |
| Felt`prompt` | Type`string` | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
| Felt`image_urls` | Type`https_url\|data_image_url[]` | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinasjoner av inngående materialer

**Tekst til video** · Påkrevd: prompt

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`material_types` | Avtaletext |
| Parameter`required` | Avtalenull |
| Parameter`optional_controls` | Avtalenull |

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

Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.

### Priser

#### Satser for Ailoot-metoder

Utdata

0,18 USD *per sekund ved 1080p*

Utdata

0,07 USD *per sekund ved 480p*

Utdata

0,14 USD *per sekund ved 720p*

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot · Videogenerering

Sceneeksempel

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

### Motta og lagre resultater

#### Ailoot · Videogenerering

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`

##### Kontroller jobbstatus

GET status

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

##### Lagre alle ferdige ressurser

GET alle ferdige ressurser

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

Andre innholdslesinger

GET innhold

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

##### Behold alle ferdige resultater

Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.

Bevar hvert returnert dataelement og hver utdataindeks. content\_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.

##### Hvis det opprinnelige svaret må kontrolleres

Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`object` | Typestring |
| Felt`model` | Typestring |
| Felt`status` | Typestring |
| Felt`content_url` | Typesigned URL |
| Felt`data[]` | Typesigned URL |
| Felt`usage` | Typeobject |
| Felt`result_pending_check` | Typeboolean |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
| Svar409 · `video_not_ready` | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
| Svar`server_error` | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |

### Aliaser

#### Modellaliaser

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

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

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

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

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

Alibaba /`happyhorse-t2v-latest`

Modell-ID

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

### Start

En modell som lager korte videoer med lyd fra en tekstbeskrivelse. Egner seg til scener der bevegelse, komposisjon og visuell stil angis med ord.

Godkjente inndata

Tekst

Resultater

Video

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`video`

Utdataformat

mp4

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser happyhorse-t2v-latest | Standard— |
| Felt`prompt` | Type`string` | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 3 Maksimum: 15 Enhet: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfritt | Verdier & grenser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfritt | Verdier & grenser 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Standard16:9 |
| Felt`image_urls` | Type`https_url\|data_image_url[]` | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 0 Maksimalt antall dekodede byte: 20 971 520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinasjoner av inngående materialer

**Tekst til video** · Påkrevd: prompt

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`material_types` | Avtaletext |
| Parameter`required` | Avtalenull |
| Parameter`optional_controls` | Avtalenull |

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

Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.

### Priser

#### Satser for Ailoot-metoder

Utdata

0,18 USD *per sekund ved 1080p*

Utdata

0,07 USD *per sekund ved 480p*

Utdata

0,14 USD *per sekund ved 720p*

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot · Videogenerering

Sceneeksempel

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

### Motta og lagre resultater

#### Ailoot · Videogenerering

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`

##### Kontroller jobbstatus

GET status

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

##### Lagre alle ferdige ressurser

GET alle ferdige ressurser

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

Andre innholdslesinger

GET innhold

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

##### Behold alle ferdige resultater

Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.

Bevar hvert returnert dataelement og hver utdataindeks. content\_url viser bare til det første; hent hver faktiske innholdssti og ressurs. GET for innhold uten index omfatter ikke alle utdata.

##### Hvis det opprinnelige svaret må kontrolleres

Les den eksisterende opprinnelige jobben; send aldri en forespørsel med ukjent utfall på nytt.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`object` | Typestring |
| Felt`model` | Typestring |
| Felt`status` | Typestring |
| Felt`content_url` | Typesigned URL |
| Felt`data[]` | Typesigned URL |
| Felt`usage` | Typeobject |
| Felt`result_pending_check` | Typeboolean |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
| Svar409 · `video_not_ready` | VilkårDet opprinnelige resultatinnholdet er ennå ikke tilgjengelig | Neste trinnSpør jevnlig etter den opprinnelige returnerte ID-en og følg Retry-After. |
| Svar`server_error` | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |

### Aliaser

#### Modellaliaser

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

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

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

FAQ · happyhorse-1.1-t2v

Hvilke inndata og resultater er tilgjengelige?

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

Hvilke felt bruker forespørselen?

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

Hvilke grenser gjelder?

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

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

## Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

## Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement

Velg et rabattabonnement for faste forespørsler.

Kampanjekode opptil 50%

Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.

Kostnader i historikken

Modell, tokener og beløp lagres for hver forespørsel.

[Velg abonnement](https://ailoot.ai/docs/nb/billing/subscriptions/) · [Se modellpriser](https://ailoot.ai/models/nb/)

## Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon

Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.

Forhandlerlisens

Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.

Dokumenter på nettstedet

Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

[Be om forhandlerlisens](mailto:support@ailoot.ai) · [Offentlig tilbud og lisensavtale](https://ailoot.ai/legal/offer?lang=nb)

## Ailoot · Selskapet og dets prosjektportefølje





Ailoot bygger på etablert driftserfaring, en stor kundebase, stabil tjeneste og løpende KPI-kontroll.





Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.





Ailoot bruker denne driftserfaringen til API-tilgang til AI-funksjoner i kundenes produkter, agenter, applikasjoner og automatiseringer.
