happyhorse-1.0-t2v
HappyHorse 1.0 T2V trasforma un brief testuale di scena in un video. Scegli durata, risoluzione e rapporto d’aspetto tramite Ailoot, quindi segui l’operazione originale fino al completamento.
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.
Usa happyhorse-1.0-t2v con model e prompt su /v1/videos. Descrivi una scena direttamente in testo, quindi seleziona 720P o 1080P e una durata da 3 a 15 secondi. Le scelte del rapporto d’aspetto comprendono orizzontale, verticale, quadrato e i formati 4:3 o 3:4.
Costruisci il prompt intorno a un soggetto, un’azione visibile, un ambiente e un movimento della camera. Un brief utile può iniziare con una vista ravvicinata di una tazza di ceramica e descrivere poi il vapore che sale mentre la camera rivela gradualmente il tavolo. Indica l’inquadratura finale e l’illuminazione desiderate, così che la ripresa abbia una destinazione visiva chiara.
Invia l’inquadratura una sola volta tramite /v1/videos, conserva l’ID della richiesta restituito e interroga periodicamente l’operazione originale tramite /v1/videos/{request_id}. Salva tutti i video completati e la risposta completa prima di verificare azione, inquadratura e stato finale rispetto al brief.
Ailoot Ultra · Video POST /v1/videos happyhorse-1.0-t2v
happyhorse-1.0-t2vIntroduzione
HappyHorse 1.0 T2V trasforma un brief testuale di scena in un video. Scegli durata, risoluzione e rapporto d’aspetto tramite Ailoot, quindi segui l’operazione originale fino al completamento.
- Input accettati
- Testo
- Risultati
- Video
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Video POST /v1/videos
- Tipi di input
text- Tipi di output
video
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti happyhorse-1.0-t2v Condizioni: Usa esattamente questo selettore di instradamento di Ailoot. | Predefinito— |
Campoprompt | Tipostring | RequisitoObbligatorio | Valori e limiti Condizioni: Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato. | Predefinito— |
Camporesolution | Tipostring | RequisitoFacoltativo | Valori e limiti 720P, 1080P Condizioni: Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato. | Predefinito720P |
Campoaspect_ratio | Tipostring | RequisitoFacoltativo | Valori e limiti 16:9, 9:16, 1:1, 4:3, 3:4 Condizioni: Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato. | Predefinito— |
Campoduration | Tipointeger | RequisitoFacoltativo | Valori e limiti 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Condizioni: Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato. | Predefinito5 |
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattomodel, prompt |
Parametrooptional | Contrattoresolution, aspect_ratio, duration |
Parametromaterial_types | Contrattotext |
Parametroconditions | ContrattoUsa esattamente questo selettore di instradamento di Ailoot., Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato., Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato., Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato., Usa il campo documentato per il modello selezionato e le opzioni indicate; ometti un valore facoltativo non specificato. |
Alias del metodo: /v1/videos/generations
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/media/assets
GET /v1/media/assets/{asset_id}
Tariffe
Calcolo del costo finale
Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe stimate per il confronto
Prezzi per configurazione
Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.
| Configurazione | Listino delle tariffe | Quantità prevista | Risoluzione di output | Unità di fatturazione | Condizioni di fatturazione | Costo |
|---|---|---|---|---|---|---|
| ConfigurazioneTariffe base dei token | Listino delle tariffeTariffa base | Quantità prevista— | Risoluzione di output— | Unità di fatturazione— | Condizioni di fatturazione— | Costo Input · Token in input · Stima solo a fini di confronto — / 1K token Output · Token in output · Stima solo a fini di confronto — / 1K token Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token |
| ConfigurazioneVideo in uscita | Listino delle tariffe— | Quantità prevista— | Risoluzione di output1080P | Unità di fatturazioneper secondo di video | Condizioni di fatturazioneStima indicativa del video in uscita alla risoluzione 1080P. L’importo finale addebitato è calcolato in base alla fattura originale registrata. | Costo Output · Video in uscita · Stima solo a fini di confronto $0.552 per secondo di video Stima puramente indicativa; l’importo finale addebitato è calcolato in base alla fattura originale registrata. |
| ConfigurazioneVideo in uscita | Listino delle tariffe— | Quantità prevista— | Risoluzione di output720P | Unità di fatturazioneper secondo di video | Condizioni di fatturazioneStima indicativa del video in uscita alla risoluzione 720P. L’importo finale addebitato è calcolato in base alla fattura originale registrata. | Costo Output · Video in uscita · Stima solo a fini di confronto $0.312 per secondo di video Stima puramente indicativa; l’importo finale addebitato è calcolato in base alla fattura originale registrata. |
| ConfigurazioneCosto stimato della generazione | Listino delle tariffe— | Quantità previstastima per una generazione | Risoluzione di output— | Unità di fatturazione— | Condizioni di fatturazione— | Costo Output · Costo di generazione stimato · Stima solo a fini di confronto $0.312 stima prima della generazione Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata. |
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 Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.0-t2v", "prompt": "A cat is walking on grass."}')
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 \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Ricevi e salva i risultati
Ailoot Ultra · Video
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Conserva tutti i risultati completati
Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.
Conserva la risposta completa e le intestazioni, gli identificatori originali, ogni risultato effettivo e tutti i campi di utilizzo e contabilizzazione. Salva ogni risorsa univoca di tua proprietà e conserva ogni ruolo che vi fa riferimento.
Se occorre verificare la risposta originale
Conserva l'id pubblico dell'attività o dell'operazione restituito e tutte le intestazioni. Consulta solo l'attività originale; unknown o result_pending_check non autorizza un'altra creazione.
Campi della risposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campopolling_url | Tipostring |
Campoprovider_task_id | Tipostring |
Campotask_id | Tipostring |
Campostatus | Tipostring |
Campovideo_url | Tipostring |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneUn campo obbligatorio, il selettore del modello, il tipo o la rappresentazione dei dati in ingresso non è valido. | Passaggio successivoEsamina i dettagli di validazione restituiti prima di preparare una richiesta separata. |
Risposta | CondizioneLa richiesta originale o il relativo risultato è sconosciuto o richiede una verifica. | Passaggio successivoConserva gli identificatori e le intestazioni originali; consulta solo i record di stato o della libreria supportati. Non inviare di nuovo la richiesta di creazione. |
Alias
Alias del modello
Ailoot Ultra happyhorse-1.0-t2v
Alias dei percorsi dei metodi
/v1/videos/generations
ID di chiamata correlati
FAQ · happyhorse-1.0-t2v
- Quali input e risultati sono disponibili?
POST /v1/videos·happyhorse-1.0-t2v:text→video- Quali campi usa la richiesta?
POST /v1/videos·happyhorse-1.0-t2v:model,prompt,resolution,aspect_ratio,duration