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

# happyhorse-1.1-t2v

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

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

Model til at skabe korte videoer med lyd ud fra en tekstbeskrivelse. Egner sig til scener, hvor bevægelse, komposition og visuel stil beskrives med ord.

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

Om modellen

Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.

HappyHorse-1.1-T2V er en model fra Alibaba til at skabe korte videoscener ud fra tekst. Beskrivelsen fastlægger figurer, handlinger, omgivelser og visuelt udtryk; denne tilstand kræver ikke et udgangsbillede. Modellen skaber videoen og kan generere lyd, der ledsager den.

Producenten fremhæver forståelse af scenens betydning, filmisk iscenesættelse og udtryksfuld bevægelse. Teksten kan fastlægge stemning, figurens handlinger, objekternes adfærd og fysisk dynamik. Dermed kan scenen bygges omkring det, der skal ske, og derefter styres med lys, vinkel og kamerabevægelse.

#### Iscenesættelse med ord

Instruktionen er obligatorisk og kan være på ethvert sprog. Den kan indeholde op til 5000 ikke-kinesiske eller 2500 kinesiske tegn; den overskydende del kasseres. Handling, omgivelser og vigtige visuelle detaljer skal beskrives inden for denne mængde. Denne iscenesættelse giver modellen plads til at skabe en ny scene frem for at angive en færdig første frame.

I denne tilstand er teksten det primære styrende materiale. En bestemt figur eller genstand kan beskrives med ord; muligheden for at give dens udseende gennem særskilte billeder hører til en anden tilstand i familien. Resultatet afhænger af hele instruktionen, så samme tilfældighedsseed hjælper med at få lignende varianter, men garanterer ikke en nøjagtig gentagelse.

#### Video og ledsagende lyd

For HappyHorse-1.1 vælges videoens varighed som et heltal fra 3 til 15 sekunder. Opløsningerne 480P, 720P og 1080P understøttes. Den færdige fil er MP4 med 24 frames i sekundet. Modellen kan generere lyd sammen med billedsiden og knytte lyden til det, der sker i scenen.

Billedformatet kan fastlægges på forhånd. 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 og 21:9 er tilgængelige — fra et bredt filmisk billede til en langstrakt lodret video. Opløsning, format og varighed fastlægger resultatets dimensioner; tekst bestemmer indhold og bevægelse.

Denne variant er beregnet til at skabe en ny scene ud fra en idé formuleret med ord. Den egner sig til et kort afsnit, en visuel idé eller en stemningsvideo, hvor iscenesættelsen skal beskrives med tekst.

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

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

Alibaba /`happyhorse-1.1-t2v`

Model-ID

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

### Start

Model til at skabe korte videoer med lyd ud fra en tekstbeskrivelse. Egner sig til scener, hvor bevægelse, komposition og visuel stil beskrives med ord.

Accepterede input

Tekst

Resultater

Video

### Tilgængelig i Ailoot · input og metoder

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

Inputtyper

`text`

Outputtyper

`video`

Outputformat

mp4

| Felt | Type | Krav | Værdier og grænser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrævet | Værdier og grænser happyhorse-1.1-t2v | Standard— |
| Felt`prompt` | Type`string` | KravPåkrævet | Værdier og grænser Minimumslængde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfrit | Værdier og grænser 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[]` | KravValgfrit | Værdier og grænser Minimumsantal elementer: 0 Maksimalt antal elementer: 0 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinationer af inputmaterialer

**Tekst til video** · Påkrævet: prompt

Metodeparametre og livscyklus

| Parameter | Kontrakt |
| --- | --- |
| Parameter`content_type` | Kontraktapplication/json |
| Parameter`required` | Kontraktmodel, prompt |
| Parameter`material_types` | Kontrakttext |
| Parameter`optional` | Kontraktduration, resolution, ratio |
| Parameter`duration_integer_range` | Kontrakt3, 15 |
| Parameter`default_duration` | Kontrakt5 |
| Parameter`resolution` | Kontrakt480P, 720P, 1080P |
| Parameter`default_resolution` | Kontrakt720P |
| Parameter`ratio` | Kontrakt16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 |
| Parameter`ratio_must_omit` | Kontraktfalse |
| Parameter`image_urls` | Kontrakt{"max\_count":0} |

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

Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.

### Priser

#### Ailoot-metodetakster

Output

0,18 US$ *pr. sekund ved 1080p*

Output

0,07 US$ *pr. sekund ved 480p*

Output

0,14 US$ *pr. sekund ved 720p*

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. [Sådan fungerer reservation og afregning →](https://ailoot.ai/docs/da/billing/reserve/)

### Eksempelanmodninger

#### Ailoot · Videoer

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

### Hent og gem resultater

#### Ailoot · Videoer

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`

##### Kontrollér opgavestatus

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

##### Gem alle færdige filer

GET · Alle færdige filer

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

Læsning af andet indhold

GET · Indhold

```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 færdige resultater

Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.

Bevar hvert returneret dataelement og outputindeks. content\_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.

##### Hvis det oprindelige svar skal kontrolleres

Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.

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 |

Fejl og næste trin

| Svar | Betingelse | Næste trin |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
| Svar409 · `video_not_ready` | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
| Svar`server_error` | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |

### Aliaser

#### Modelaliaser

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

#### Aliaser for metodestier

Brug metodestierne vist ovenfor.

#### Relaterede kalder-ID’er

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

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

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

Alibaba /`happyhorse-t2v`

Model-ID

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

### Start

Model til at skabe korte videoer med lyd ud fra en tekstbeskrivelse. Egner sig til scener, hvor bevægelse, komposition og visuel stil beskrives med ord.

Accepterede input

Tekst

Resultater

Video

### Tilgængelig i Ailoot · input og metoder

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

Inputtyper

`text`

Outputtyper

`video`

Outputformat

mp4

| Felt | Type | Krav | Værdier og grænser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrævet | Værdier og grænser happyhorse-t2v | Standard— |
| Felt`prompt` | Type`string` | KravPåkrævet | Værdier og grænser Minimumslængde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfrit | Værdier og grænser 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[]` | KravValgfrit | Værdier og grænser Minimumsantal elementer: 0 Maksimalt antal elementer: 0 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinationer af inputmaterialer

**Tekst til video** · Påkrævet: prompt

Metodeparametre og livscyklus

| Parameter | Kontrakt |
| --- | --- |
| Parameter`material_types` | Kontrakttext |
| Parameter`required` | Kontraktnull |
| Parameter`optional_controls` | Kontraktnull |

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

Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.

### Priser

#### Ailoot-metodetakster

Output

0,18 US$ *pr. sekund ved 1080p*

Output

0,07 US$ *pr. sekund ved 480p*

Output

0,14 US$ *pr. sekund ved 720p*

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. [Sådan fungerer reservation og afregning →](https://ailoot.ai/docs/da/billing/reserve/)

### Eksempelanmodninger

#### Ailoot · Videoer

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

### Hent og gem resultater

#### Ailoot · Videoer

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`

##### Kontrollér opgavestatus

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

##### Gem alle færdige filer

GET · Alle færdige filer

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

Læsning af andet indhold

GET · Indhold

```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 færdige resultater

Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.

Bevar hvert returneret dataelement og outputindeks. content\_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.

##### Hvis det oprindelige svar skal kontrolleres

Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.

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 |

Fejl og næste trin

| Svar | Betingelse | Næste trin |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
| Svar409 · `video_not_ready` | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
| Svar`server_error` | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |

### Aliaser

#### Modelaliaser

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

#### Aliaser for metodestier

Brug metodestierne vist ovenfor.

#### Relaterede kalder-ID’er

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

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

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

Alibaba /`happyhorse-t2v-latest`

Model-ID

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

### Start

Model til at skabe korte videoer med lyd ud fra en tekstbeskrivelse. Egner sig til scener, hvor bevægelse, komposition og visuel stil beskrives med ord.

Accepterede input

Tekst

Resultater

Video

### Tilgængelig i Ailoot · input og metoder

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

Inputtyper

`text`

Outputtyper

`video`

Outputformat

mp4

| Felt | Type | Krav | Værdier og grænser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrævet | Værdier og grænser happyhorse-t2v-latest | Standard— |
| Felt`prompt` | Type`string` | KravPåkrævet | Værdier og grænser Minimumslængde: 1 | Standard— |
| Felt`duration` | Type`integer` | KravValgfrit | Værdier og grænser Minimum: 3 Maksimum: 15 Enhed: sekunder | Standard5 |
| Felt`resolution` | Type`string` | KravValgfrit | Værdier og grænser 480P, 720P, 1080P | Standard720P |
| Felt`ratio` | Type`string` | KravValgfrit | Værdier og grænser 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[]` | KravValgfrit | Værdier og grænser Minimumsantal elementer: 0 Maksimalt antal elementer: 0 Maksimalt antal afkodede bytes: 20.971.520 MIME-typer: image/jpeg, image/png, image/webp | Standard— |

Kombinationer af inputmaterialer

**Tekst til video** · Påkrævet: prompt

Metodeparametre og livscyklus

| Parameter | Kontrakt |
| --- | --- |
| Parameter`material_types` | Kontrakttext |
| Parameter`required` | Kontraktnull |
| Parameter`optional_controls` | Kontraktnull |

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

Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.

### Priser

#### Ailoot-metodetakster

Output

0,18 US$ *pr. sekund ved 1080p*

Output

0,07 US$ *pr. sekund ved 480p*

Output

0,14 US$ *pr. sekund ved 720p*

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. [Sådan fungerer reservation og afregning →](https://ailoot.ai/docs/da/billing/reserve/)

### Eksempelanmodninger

#### Ailoot · Videoer

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

### Hent og gem resultater

#### Ailoot · Videoer

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`

##### Kontrollér opgavestatus

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

##### Gem alle færdige filer

GET · Alle færdige filer

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

Læsning af andet indhold

GET · Indhold

```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 færdige resultater

Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.

Bevar hvert returneret dataelement og outputindeks. content\_url omfatter kun det første; hent hver faktisk indholdssti og hvert aktiv. GET af indhold uden index giver ikke alle output.

##### Hvis det oprindelige svar skal kontrolleres

Læs det eksisterende oprindelige job; indsend aldrig en afsendelse med ukendt udfald igen.

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 |

Fejl og næste trin

| Svar | Betingelse | Næste trin |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
| Svar409 · `video_not_ready` | BetingelseDet oprindelige resultatindhold er endnu ikke tilgængeligt | Næste trinForespørg på status med det oprindeligt returnerede ID, og overhold Retry-After. |
| Svar`server_error` | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |

### Aliaser

#### Modelaliaser

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

#### Aliaser for metodestier

Brug metodestierne vist ovenfor.

#### Relaterede kalder-ID’er

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

FAQ · happyhorse-1.1-t2v

Hvilke input og resultater er tilgængelige?

`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 felter bruger anmodningen?

`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 grænser gælder?

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

Tilslut Ailoot til Claude Code, OpenCode, Hermes eller din egen applikation.

## Virksomheden og dens projektportefølje

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

## Køb tokens med rabat.

Abonnementsrabat til regelmæssigt arbejde. Rabatkoder giver op til 50% på tokenkøb.

Abonnement

Vælg et abonnement med rabat til dine regelmæssige anmodninger.

Rabatkode på op til 50%

Indtast koden ved købet. Prisen genberegnes efter den aktuelle kampagne.

Udgifter i historikken

Model, tokens og beløb gemmes for hver anmodning.

[Vælg abonnement](https://ailoot.ai/docs/da/billing/subscriptions/) · [Se modelpriser](https://ailoot.ai/models/da/)

## Tilslut API’et til produktet, du sælger.

SaaS, apps og bots efter Ailoots tilbudsvilkår og licensaftale. Anmod om en forhandlerlicens til videresalg.

Kommerciel applikation

Byg generering af tekst, billeder, video og lyd ind i tjenestens betalte funktioner.

Licens til forhandlere

Send projektbeskrivelse og adgangsmodel. Bed om skriftlige vilkår for anvendelse og videresalg.

Dokumenter på websitet

Tilbudsvilkår, licensaftale og politik for behandling af data kan læses før tilslutning.

[Anmod om forhandlerlicens](mailto:support@ailoot.ai) · [Tilbudsvilkår og licensaftale](https://ailoot.ai/legal/offer?lang=da)

## Ailoot · Virksomheden og dens projektportefølje





Ailoot bygger på solid driftserfaring, en stor kundebase, stabil service og løbende kontrol af KPI.





Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.





Ailoot bruger denne driftserfaring til API-adgang til AI-funktioner i kundernes produkter, agenter, applikationer og automatiseringer.
