modelli

happyhorse-1.1-r2v

Markdown · JSON

happyhorse-1.1-r2v

Modello per generare video da immagini di riferimento e da una sceneggiatura testuale. Aiuta a mantenere l'aspetto dei personaggi, gli oggetti e lo stile visivo in una nuova scena.

Informazioni sul modello

Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.

HappyHorse-1.1-R2V crea una nuova scena video da immagini di riferimento e da un'istruzione testuale. Alibaba orienta il modello alla conservazione di personaggi, oggetti e stili visivi riconoscibili durante la generazione del movimento. I riferimenti definiscono il contenuto e l'aspetto della scena, mentre il testo descrive come questi elementi devono interagire.

Il ruolo dei riferimenti visivi

Si possono utilizzare da una a nove immagini. Possono definire un personaggio, un oggetto, l'ambiente o lo stile artistico. Nella descrizione si può indicare il numero di un riferimento e un oggetto specifico presente nell'immagine, per collegare il materiale visivo alla parte desiderata dell'azione. È particolarmente utile quando si devono riunire elementi di più immagini in un'unica composizione.

A differenza della modalità con un fotogramma iniziale, qui i riferimenti servono da base per il contenuto di una nuova scena. L'istruzione testuale è obbligatoria: collega l'aspetto degli oggetti all'azione, al movimento della videocamera e alla regia complessiva. Il produttore mette in evidenza la coerenza visiva e il movimento cinematografico; il risultato resta una generazione, non un montaggio delle immagini originali.

Sono accettati JPEG, JPG, PNG e WEBP fino a 20 MB ciascuno. Il lato corto dell'immagine deve essere di almeno 400 pixel; sono consigliati materiali di qualità 720P o superiore. L'input di questa modalità è costituito precisamente da immagini e testo.

Durata, inquadratura e audio

Il risultato viene salvato in MP4 a 24 fotogrammi al secondo. La durata si imposta con un numero intero da 3 a 15 secondi. Si può scegliere tra 480P, 720P e 1080P; è supportata la generazione di audio.

Sono disponibili inquadrature orizzontali, verticali e quadrate: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 e 21:9. La scelta del formato aiuta a definire in anticipo lo spazio compositivo della nuova scena.

Il testo può essere in qualsiasi lingua. Il limite è di 5000 caratteri non cinesi oppure 2500 caratteri cinesi; la parte in eccesso viene scartata. I ruoli principali dei riferimenti, l'azione e il movimento devono rientrare in questo spazio. Il seme casuale iniziale può orientare la somiglianza tra varianti, ma non garantisce la riproduzione esatta di un video.

Ailoot · Generazione video POST /v1/videos/generations happyhorse-1.1-r2v

happyhorse-1.1-r2v

Alibaba /happyhorse-1.1-r2v
ID del modello
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Introduzione

Modello per generare video da immagini di riferimento e da una sceneggiatura testuale. Aiuta a mantenere l'aspetto dei personaggi, gli oggetti e lo stile visivo in una nuova scena.

Input accettati
Testo · Immagini
Risultati
Video

Disponibile in Ailoot · input e metodi

Ailoot · Generazione video POST /v1/videos/generations
Tipi di input
text, image
Tipi di output
video
Formato di output
mp4
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
happyhorse-1.1-r2v
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
CampodurationTipointegerRequisitoFacoltativoValori e limiti
Minimo: 3
Massimo: 15
Unità: secondi
Predefinito5
CamporesolutionTipostringRequisitoFacoltativoValori e limiti
480P, 720P, 1080P
Predefinito720P
CamporatioTipostringRequisitoFacoltativoValori e limiti
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinito16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoObbligatorioValori e limiti
Numero minimo di elementi: 1
Numero massimo di elementi: 9
Numero massimo di byte decodificati: 20.971.520
Tipi MIME: image/jpeg, image/png, image/webp
Predefinito—
Combinazioni di materiali in input

reference_images_to_video · Obbligatorio: prompt, image_urls

Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, prompt, image_urls
Parametromaterial_typesContrattotext, image
ParametrooptionalContrattoduration, resolution, ratio
Parametroduration_integer_rangeContratto3, 15
Parametrodefault_durationContratto5
ParametroresolutionContratto480P, 720P, 1080P
Parametrodefault_resolutionContratto720P
ParametroratioContratto16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parametroratio_must_omitContrattofalse
Parametroimage_urlsContratto{"min_count":1,"max_count":9,"schemes":["https","dati raster in base64"],"max_data_image_bytes":20971520}

Ciclo di vita: 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

Le strutture dei metodi e gli ID sono esatti; la capacità del fornitore è distinta dall’ammissione delle richieste.

Tariffe

Tariffe dei metodi Ailoot

Ailoot Generazione videoPOST /v1/videos/generations
Output
0,18 USD per secondo a 1080p
Output
0,07 USD per secondo a 480p
Output
0,14 USD per secondo a 720p

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot · Generazione video

Immagine di riferimento
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Ricevi e salva i risultati

Ailoot · Generazione video

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
Verifica lo stato dell’attività
GET stato
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
Salva tutte le risorse completate
GET tutte le risorse completate
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
Altre letture di contenuto
GET contenuto
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
Conserva tutti i risultati completati

Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.

Conserva ogni elemento di dati e indice di uscita restituito. content_url indica solo il primo; recupera ogni percorso del contenuto o risorsa effettiva. GET del contenuto senza index non restituisce tutti i risultati.

Se occorre verificare la risposta originale

Consulta l'attività originale esistente; non ripetere mai un invio dall'esito sconosciuto.

Campi della risposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.
Risposta409 · video_not_readyCondizioneContenuto del risultato originale non ancora disponibilePassaggio successivoInterroga periodicamente l'ID originale restituito e rispetta Retry-After.
Rispostaserver_errorCondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verificaPassaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione.

Alias

Alias del modello

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Ailoot · Generazione video POST /v1/videos/generations happyhorse-r2v

happyhorse-r2v

Alibaba /happyhorse-r2v
ID del modello
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Introduzione

Modello per generare video da immagini di riferimento e da una sceneggiatura testuale. Aiuta a mantenere l'aspetto dei personaggi, gli oggetti e lo stile visivo in una nuova scena.

Input accettati
Testo · Immagini
Risultati
Video

Disponibile in Ailoot · input e metodi

Ailoot · Generazione video POST /v1/videos/generations
Tipi di input
text, image
Tipi di output
video
Formato di output
mp4
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
happyhorse-r2v
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
CampodurationTipointegerRequisitoFacoltativoValori e limiti
Minimo: 3
Massimo: 15
Unità: secondi
Predefinito5
CamporesolutionTipostringRequisitoFacoltativoValori e limiti
480P, 720P, 1080P
Predefinito720P
CamporatioTipostringRequisitoFacoltativoValori e limiti
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinito16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoObbligatorioValori e limiti
Numero minimo di elementi: 1
Numero massimo di elementi: 9
Numero massimo di byte decodificati: 20.971.520
Tipi MIME: image/jpeg, image/png, image/webp
Predefinito—
Combinazioni di materiali in input

reference_images_to_video · Obbligatorio: prompt, image_urls

Parametri e ciclo di vita del metodo
ParametroContratto
Parametromaterial_typesContrattotext, image
ParametrorequiredContrattonull
Parametrooptional_controlsContrattonull

Ciclo di vita: 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

Le strutture dei metodi e gli ID sono esatti; la capacità del fornitore è distinta dall’ammissione delle richieste.

Tariffe

Tariffe dei metodi Ailoot

Ailoot Generazione videoPOST /v1/videos/generations
Output
0,18 USD per secondo a 1080p
Output
0,07 USD per secondo a 480p
Output
0,14 USD per secondo a 720p

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot · Generazione video

Immagine di riferimento
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Ricevi e salva i risultati

Ailoot · Generazione video

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
Verifica lo stato dell’attività
GET stato
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
Salva tutte le risorse completate
GET tutte le risorse completate
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
Altre letture di contenuto
GET contenuto
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
Conserva tutti i risultati completati

Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.

Conserva ogni elemento di dati e indice di uscita restituito. content_url indica solo il primo; recupera ogni percorso del contenuto o risorsa effettiva. GET del contenuto senza index non restituisce tutti i risultati.

Se occorre verificare la risposta originale

Consulta l'attività originale esistente; non ripetere mai un invio dall'esito sconosciuto.

Campi della risposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.
Risposta409 · video_not_readyCondizioneContenuto del risultato originale non ancora disponibilePassaggio successivoInterroga periodicamente l'ID originale restituito e rispetta Retry-After.
Rispostaserver_errorCondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verificaPassaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione.

Alias

Alias del modello

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Ailoot · Generazione video POST /v1/videos/generations happyhorse-r2v-latest

happyhorse-r2v-latest

Alibaba /happyhorse-r2v-latest
ID del modello
  • happyhorse-1.1-r2v
  • happyhorse-r2v
  • happyhorse-r2v-latest

Introduzione

Modello per generare video da immagini di riferimento e da una sceneggiatura testuale. Aiuta a mantenere l'aspetto dei personaggi, gli oggetti e lo stile visivo in una nuova scena.

Input accettati
Testo · Immagini
Risultati
Video

Disponibile in Ailoot · input e metodi

Ailoot · Generazione video POST /v1/videos/generations
Tipi di input
text, image
Tipi di output
video
Formato di output
mp4
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
happyhorse-r2v-latest
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
CampodurationTipointegerRequisitoFacoltativoValori e limiti
Minimo: 3
Massimo: 15
Unità: secondi
Predefinito5
CamporesolutionTipostringRequisitoFacoltativoValori e limiti
480P, 720P, 1080P
Predefinito720P
CamporatioTipostringRequisitoFacoltativoValori e limiti
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinito16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoObbligatorioValori e limiti
Numero minimo di elementi: 1
Numero massimo di elementi: 9
Numero massimo di byte decodificati: 20.971.520
Tipi MIME: image/jpeg, image/png, image/webp
Predefinito—
Combinazioni di materiali in input

reference_images_to_video · Obbligatorio: prompt, image_urls

Parametri e ciclo di vita del metodo
ParametroContratto
Parametromaterial_typesContrattotext, image
ParametrorequiredContrattonull
Parametrooptional_controlsContrattonull

Ciclo di vita: 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

Le strutture dei metodi e gli ID sono esatti; la capacità del fornitore è distinta dall’ammissione delle richieste.

Tariffe

Tariffe dei metodi Ailoot

Ailoot Generazione videoPOST /v1/videos/generations
Output
0,18 USD per secondo a 1080p
Output
0,07 USD per secondo a 480p
Output
0,14 USD per secondo a 720p

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot · Generazione video

Immagine di riferimento
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URLS_FILE:?Set a JSON file containing your actual reference-image URLs}"
export AILOOT_IMAGE_URLS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-r2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
f=Path(os.environ["AILOOT_IMAGE_URLS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual reference URL JSON file")
urls=json.loads(f.read_text())
if not isinstance(urls,list) or not 1<=len(urls)<=9:raise SystemExit("Provide one to nine reference-image URLs")
for u in urls:
    z=urlsplit(u) if isinstance(u,str) else None
    if not z or z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Each reference must be an actual HTTPS image URL")
p["image_urls"]=urls
p["ratio"]="16:9"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT

Ricevi e salva i risultati

Ailoot · Generazione video

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
Verifica lo stato dell’attività
GET stato
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
Salva tutte le risorse completate
GET tutte le risorse completate
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
Altre letture di contenuto
GET contenuto
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
Conserva tutti i risultati completati

Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.

Conserva ogni elemento di dati e indice di uscita restituito. content_url indica solo il primo; recupera ogni percorso del contenuto o risorsa effettiva. GET del contenuto senza index non restituisce tutti i risultati.

Se occorre verificare la risposta originale

Consulta l'attività originale esistente; non ripetere mai un invio dall'esito sconosciuto.

Campi della risposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.
Risposta409 · video_not_readyCondizioneContenuto del risultato originale non ancora disponibilePassaggio successivoInterroga periodicamente l'ID originale restituito e rispetta Retry-After.
Rispostaserver_errorCondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verificaPassaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione.

Alias

Alias del modello

Ailoot happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

happyhorse-1.1-r2v, happyhorse-r2v, happyhorse-r2v-latest

FAQ · happyhorse-1.1-r2v
Quali input e risultati sono disponibili?

POST /v1/videos/generations · happyhorse-1.1-r2v: text, image → video

POST /v1/videos/generations · happyhorse-r2v: text, image → video

POST /v1/videos/generations · happyhorse-r2v-latest: text, image → video

Quali campi usa la richiesta?

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

POST /v1/videos/generations · happyhorse-r2v: model, prompt, duration, resolution, ratio, image_urls

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

Quali limiti si applicano?

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

POST /v1/videos/generations · happyhorse-r2v: duration.minimum: 3; duration.maximum: 15

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

Maggiori dettagli

Collega Ailoot a Claude Code, OpenCode, Hermes o alla tua applicazione.

L’azienda e il suo portafoglio di progetti

L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.

Acquista token con uno sconto.

Sconto con abbonamento per lavoro regolare. Codici fino al 50% sull’acquisto di token.

Abbonamento
Scegli un piano scontato per richieste regolari.
Codice fino al 50%
Inserisci il codice all’acquisto. Il prezzo si aggiorna secondo la promozione.
Spese nella cronologia
Modello, token e importo sono salvati per ogni richiesta.

Scegli abbonamento · Consulta prezzi dei modelli

Collega l’API al prodotto che vendi.

SaaS, app e bot secondo offerta e accordo di licenza Ailoot. Per rivendere, richiedi una licenza reseller.

Applicazione commerciale
Integra generazione di testo, immagini, video e suono nelle funzioni a pagamento.
Licenza reseller
Invia descrizione del progetto e schema di accesso. Richiedi condizioni scritte per uso e rivendita.
Documenti sul sito
Offerta, accordo di licenza e politica sui dati sono disponibili prima della connessione.

Richiedi licenza reseller · Offerta e accordo di licenza