modellen

happyhorse-1.1-t2v

Markdown · JSON

happyhorse-1.1-t2v

Een model om op basis van een tekstbeschrijving een korte video met geluid te maken. Geschikt voor scènes waarin beweging, compositie en visuele stijl in woorden worden vastgelegd.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

HappyHorse-1.1-T2V is een model van Alibaba om korte videoscènes uit tekst te maken. De beschrijving bepaalt de personages, acties, omgeving en visuele uitwerking; deze modus heeft geen bronafbeelding nodig. Het model maakt het videobeeld en kan bijbehorend geluid genereren.

De fabrikant benadrukt het begrip van de scène, de filmische enscenering en de expressiviteit van de beweging. De tekst kan de sfeer, de acties van het personage, het gedrag van objecten en de fysieke dynamiek bepalen. Zo kan de scène worden opgebouwd rond wat er moet gebeuren en vervolgens worden gestuurd met licht, standpunt en camerabeweging.

Ensceneren met woorden

De opdracht is verplicht en mag in elke taal zijn. Ze kan maximaal 5000 niet-Chinese of 2500 Chinese tekens bevatten; het overtollige deel wordt verwijderd. De actie, omgeving en belangrijke visuele details moeten binnen die grens worden beschreven. Deze manier van ensceneren laat het model ruimte om een nieuwe scène te maken, in plaats van een kant-en-klaar eerste frame op te leggen.

In deze modus is tekst het belangrijkste sturende materiaal. Een specifiek personage of voorwerp kan in woorden worden beschreven; het aanleveren van afzonderlijke afbeeldingen om het uiterlijk vast te leggen hoort bij een andere modus van de familie. Het resultaat hangt af van de volledige opdracht. Dezelfde willekeurige seed helpt daarom vergelijkbare varianten te krijgen, maar garandeert geen exacte herhaling.

Video en bijbehorend geluid

Voor HappyHorse-1.1 wordt de videoduur gekozen als een geheel getal van 3 tot 15 seconden. De resoluties 480P, 720P en 1080P worden ondersteund. Het uiteindelijke bestand is MP4 met 24 frames per seconde. Het model kan geluid samen met het beeld genereren en dat geluid koppelen aan wat er in de scène gebeurt.

Het beeldformaat kan vooraf worden bepaald. Beschikbaar zijn 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 en 21:9: van een breed filmisch beeld tot een langgerekte verticale video. Resolutie, formaat en duur bepalen de afmetingen van het resultaat; inhoud en beweging worden door de tekst bepaald.

Deze variant is bedoeld om een nieuwe scène uit een idee in woorden te maken. Ze is geschikt voor een korte episode, een visueel idee of een sfeervideo waarvan de enscenering tekstueel moet worden uitgewerkt.

Ailoot · Videomateriaal POST /v1/videos/generations happyhorse-1.1-t2v

happyhorse-1.1-t2v

Alibaba /happyhorse-1.1-t2v
Model-ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Aan de slag

Een model om op basis van een tekstbeschrijving een korte video met geluid te maken. Geschikt voor scènes waarin beweging, compositie en visuele stijl in woorden worden vastgelegd.

Toegestane invoer
Tekst
Resultaten
Video

Beschikbaar in Ailoot · invoer en methoden

Ailoot · Videomateriaal POST /v1/videos/generations
Invoertypen
text
Uitvoertypen
video
Uitvoerformaat
mp4
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
happyhorse-1.1-t2v
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Minimumlengte: 1
Standaard—
VelddurationTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 3
Maximum: 15
Eenheid: seconden
Standaard5
VeldresolutionTypestringVereisteOptioneelWaarden en limieten
480P, 720P, 1080P
Standaard720P
VeldratioTypestringVereisteOptioneelWaarden en limieten
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Standaard16:9
Veldimage_urlsTypehttps_url|data_image_url[]VereisteOptioneelWaarden en limieten
Minimumaantal items: 0
Maximumaantal items: 0
Maximumaantal gedecodeerde bytes: 20.971.520
MIME-typen: image/jpeg, image/png, image/webp
Standaard—
Combinaties van invoermaterialen

Tekst naar video · Vereist: prompt

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, prompt
Parametermaterial_typesContracttext
ParameteroptionalContractduration, resolution, ratio
Parameterduration_integer_rangeContract3, 15
Parameterdefault_durationContract5
ParameterresolutionContract480P, 720P, 1080P
Parameterdefault_resolutionContract720P
ParameterratioContract16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parameterratio_must_omitContractfalse
Parameterimage_urlsContract{"max_count":0}

Levenscyclus: 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

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot VideomateriaalPOST /v1/videos/generations
Uitvoer
US$ 0,18 per seconde bij 1080p
Uitvoer
US$ 0,07 per seconde bij 480p
Uitvoer
US$ 0,14 per seconde bij 720p

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot · Videomateriaal

Scènevoorbeeld
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

Resultaten ophalen en opslaan

Ailoot · Videomateriaal

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
Taakstatus controleren
GET · Status
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
Alle voltooide bestanden opslaan
GET · Alle voltooide bestanden
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
Lezen van andere inhoud
GET · Inhoud
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
Alle voltooide resultaten bewaren

Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.

Behoud elk geretourneerd data-item en elke uitvoerindex. content_url verwijst alleen naar het eerste resultaat; haal elk daadwerkelijk inhoudspad en elke asset op. Een GET-verzoek voor inhoud zonder index levert niet alle uitvoer op.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.

Antwoordvelden
VeldType
VeldidTypestring
VeldobjectTypestring
VeldmodelTypestring
VeldstatusTypestring
Veldcontent_urlTypesigned URL
Velddata[]Typesigned URL
VeldusageTypeobject
Veldresult_pending_checkTypeboolean
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.
Antwoord409 · video_not_readyVoorwaardeOorspronkelijke resultaatinhoud nog niet beschikbaarVolgende stapVraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.
Antwoordserver_errorVoorwaardeHet geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerdVolgende stapBewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.

Aliasnamen

Modelaliasnamen

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · Videomateriaal POST /v1/videos/generations happyhorse-t2v

happyhorse-t2v

Alibaba /happyhorse-t2v
Model-ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Aan de slag

Een model om op basis van een tekstbeschrijving een korte video met geluid te maken. Geschikt voor scènes waarin beweging, compositie en visuele stijl in woorden worden vastgelegd.

Toegestane invoer
Tekst
Resultaten
Video

Beschikbaar in Ailoot · invoer en methoden

Ailoot · Videomateriaal POST /v1/videos/generations
Invoertypen
text
Uitvoertypen
video
Uitvoerformaat
mp4
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
happyhorse-t2v
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Minimumlengte: 1
Standaard—
VelddurationTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 3
Maximum: 15
Eenheid: seconden
Standaard5
VeldresolutionTypestringVereisteOptioneelWaarden en limieten
480P, 720P, 1080P
Standaard720P
VeldratioTypestringVereisteOptioneelWaarden en limieten
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Standaard16:9
Veldimage_urlsTypehttps_url|data_image_url[]VereisteOptioneelWaarden en limieten
Minimumaantal items: 0
Maximumaantal items: 0
Maximumaantal gedecodeerde bytes: 20.971.520
MIME-typen: image/jpeg, image/png, image/webp
Standaard—
Combinaties van invoermaterialen

Tekst naar video · Vereist: prompt

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractnull
Parameteroptional_controlsContractnull

Levenscyclus: 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

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot VideomateriaalPOST /v1/videos/generations
Uitvoer
US$ 0,18 per seconde bij 1080p
Uitvoer
US$ 0,07 per seconde bij 480p
Uitvoer
US$ 0,14 per seconde bij 720p

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot · Videomateriaal

Scènevoorbeeld
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

Resultaten ophalen en opslaan

Ailoot · Videomateriaal

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
Taakstatus controleren
GET · Status
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
Alle voltooide bestanden opslaan
GET · Alle voltooide bestanden
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
Lezen van andere inhoud
GET · Inhoud
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
Alle voltooide resultaten bewaren

Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.

Behoud elk geretourneerd data-item en elke uitvoerindex. content_url verwijst alleen naar het eerste resultaat; haal elk daadwerkelijk inhoudspad en elke asset op. Een GET-verzoek voor inhoud zonder index levert niet alle uitvoer op.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.

Antwoordvelden
VeldType
VeldidTypestring
VeldobjectTypestring
VeldmodelTypestring
VeldstatusTypestring
Veldcontent_urlTypesigned URL
Velddata[]Typesigned URL
VeldusageTypeobject
Veldresult_pending_checkTypeboolean
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.
Antwoord409 · video_not_readyVoorwaardeOorspronkelijke resultaatinhoud nog niet beschikbaarVolgende stapVraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.
Antwoordserver_errorVoorwaardeHet geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerdVolgende stapBewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.

Aliasnamen

Modelaliasnamen

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · Videomateriaal POST /v1/videos/generations happyhorse-t2v-latest

happyhorse-t2v-latest

Alibaba /happyhorse-t2v-latest
Model-ID
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Aan de slag

Een model om op basis van een tekstbeschrijving een korte video met geluid te maken. Geschikt voor scènes waarin beweging, compositie en visuele stijl in woorden worden vastgelegd.

Toegestane invoer
Tekst
Resultaten
Video

Beschikbaar in Ailoot · invoer en methoden

Ailoot · Videomateriaal POST /v1/videos/generations
Invoertypen
text
Uitvoertypen
video
Uitvoerformaat
mp4
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
happyhorse-t2v-latest
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Minimumlengte: 1
Standaard—
VelddurationTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 3
Maximum: 15
Eenheid: seconden
Standaard5
VeldresolutionTypestringVereisteOptioneelWaarden en limieten
480P, 720P, 1080P
Standaard720P
VeldratioTypestringVereisteOptioneelWaarden en limieten
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Standaard16:9
Veldimage_urlsTypehttps_url|data_image_url[]VereisteOptioneelWaarden en limieten
Minimumaantal items: 0
Maximumaantal items: 0
Maximumaantal gedecodeerde bytes: 20.971.520
MIME-typen: image/jpeg, image/png, image/webp
Standaard—
Combinaties van invoermaterialen

Tekst naar video · Vereist: prompt

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractnull
Parameteroptional_controlsContractnull

Levenscyclus: 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

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot VideomateriaalPOST /v1/videos/generations
Uitvoer
US$ 0,18 per seconde bij 1080p
Uitvoer
US$ 0,07 per seconde bij 480p
Uitvoer
US$ 0,14 per seconde bij 720p

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot · Videomateriaal

Scènevoorbeeld
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

Resultaten ophalen en opslaan

Ailoot · Videomateriaal

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
Taakstatus controleren
GET · Status
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
Alle voltooide bestanden opslaan
GET · Alle voltooide bestanden
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
Lezen van andere inhoud
GET · Inhoud
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
Alle voltooide resultaten bewaren

Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.

Behoud elk geretourneerd data-item en elke uitvoerindex. content_url verwijst alleen naar het eerste resultaat; haal elk daadwerkelijk inhoudspad en elke asset op. Een GET-verzoek voor inhoud zonder index levert niet alle uitvoer op.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.

Antwoordvelden
VeldType
VeldidTypestring
VeldobjectTypestring
VeldmodelTypestring
VeldstatusTypestring
Veldcontent_urlTypesigned URL
Velddata[]Typesigned URL
VeldusageTypeobject
Veldresult_pending_checkTypeboolean
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.
Antwoord409 · video_not_readyVoorwaardeOorspronkelijke resultaatinhoud nog niet beschikbaarVolgende stapVraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.
Antwoordserver_errorVoorwaardeHet geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerdVolgende stapBewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.

Aliasnamen

Modelaliasnamen

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

FAQ · happyhorse-1.1-t2v
Welke invoer en resultaten zijn beschikbaar?

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

Welke velden gebruikt het verzoek?

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

Welke limieten gelden?

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

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst