HappyHorse 1.1 da immagine a video: guida API e 5 clip reali
Uno script invia una foto, controlla l'attività e salva l'MP4. I campi, le sorprese di filigrana e traccia audio, e 5 clip realizzate il 2 novembre 2026.

In questa pagina
- Risposta breve
- Cosa serve prima della prima chiamata a HappyHorse 1.1 da immagine a video?
- Quali campi porta la richiesta?
- Lo script Python
- Cinque clip che abbiamo fatto
- Orbita delle cuffie
- Ritratto sotto la pioggia
- Spinta in avanti sul lago
- Illustrazione della volpe
- Cosa misuravano i file
- Perché le clip hanno l'audio?
- Per quanto tempo restano disponibili i risultati?
- Quali errori incontrerai?
- Quanto costa una clip HappyHorse 1.1?
- Si può chiamare Alibaba Cloud direttamente?
- Domande frequenti
- Serve un prompt per HappyHorse da immagine a video?
- Come tolgo la filigrana Happy Horse?
- Come imposto il rapporto d'aspetto?
- Esiste HappyHorse 1.5?
- HappyHorse 1.1 è meglio della 1.0 per da immagine a video?
- Fonti controllate
Per animare un'immagine ferma con HappyHorse 1.1 da immagine a video, invia la foto come first_frame a https://api.omniakey.com/v1/media/tasks con l'ID modello happyhorse-1.1-i2v, controlla l'attività e scarica l'MP4. Le nostre cinque clip da 5 secondi in 720P hanno richiesto da 92 a 158 secondi il 2 novembre 2026. Ognuna conteneva musica che non avevamo chiesto, e l'impostazione predefinita aggiunge una filigrana "Happy Horse".
Risposta breve
- La richiesta: modello
happyhorse-1.1-i2v, operazioneimage_to_videoe esattamente unfirst_framedentroinput.media. - Rapporto d'aspetto: la clip segue la tua foto, perché non c'è un campo
ratio. - Durata e dimensione: da 3 a 15 secondi in 480P, 720P o 1080P; invia
resolutionogni volta, perché il valore predefinito di Alibaba è 1080P. - Filigrana: attiva per impostazione predefinita, si toglie con
watermark: false. - Audio: tutte e cinque le clip avevano musica, l'API di Alibaba non elenca alcun interruttore audio, e
ffmpegrimuove la traccia.
Cosa serve prima della prima chiamata a HappyHorse 1.1 da immagine a video?
Tre cose: una chiave, Python 3 e una foto che rispetti le regole di Alibaba.
- La chiave in
OMNIAKEY_API_KEY. Lo script la invia come token Bearer, quindi non resta nel codice. - Python 3 senza installare nulla. Lo script usa solo la libreria standard.
- Una foto conforme alla referenza dell'API da immagine a video di Alibaba: JPEG, JPG, PNG o WEBP; larghezza e altezza di almeno 300 pixel; fino a 20 MB; rapporto d'aspetto da 1:2.5 a 2.5:1. Alibaba non indica un massimo di pixel.
La difficoltà è la dimensione: l'immagine incorporata viaggia nel corpo della richiesta, che deve stare in 1 MiB, Base64 compreso (panoramica dell'API media di OmniaKey, verificata il 2 novembre 2026). Lo script si ferma oltre 700 KB; se la foto è più grande, riducila o passa un URL HTTPS pubblico. La nostra foto 2K pesava 2.254.819 byte, e questo comando macOS l'ha portata a 92.212 byte:
sips -s format jpeg -s formatOptions 85 -Z 1280 still.jpg --out still-small.jpg
Quali campi porta la richiesta?
Nove campi definiscono l'attività: tre al livello superiore, due dentro input e quattro dentro parameters.
| Campo | Valore | Note |
|---|---|---|
model | happyhorse-1.1-i2v | l'ID del modello 1.1 da immagine a video |
type | video | il tipo di file che l'attività crea |
operation | image_to_video | nome senza prefisso |
input.prompt | testo | OmniaKey lo richiede, l'API di Alibaba lo tratta come facoltativo; fino a 5,000 caratteri non cinesi o 2,500 cinesi, il testo più lungo viene tagliato |
input.media | esattamente un {"type": "first_frame", "url": ...} | un URL HTTPS pubblico o un data URI |
parameters.resolution | 480P, 720P o 1080P | invialo sempre: il valore predefinito di Alibaba è 1080P |
parameters.duration | secondi interi, da 3 a 15 | obbligatorio su OmniaKey |
parameters.watermark | true (predefinito) o false | false toglie il testo "Happy Horse" |
parameters.seed | da 0 a 2147483647 | lo stesso seed non garantisce la stessa clip |
Quattro dettagli sfuggono facilmente.
- Non c'è un campo
ratio: la clip mantiene il rapporto d'aspetto della tua foto (referenza dell'API da immagine a video di Alibaba, verificata il 2 novembre 2026). - Le pagine di Alibaba non mostrano un campo per il prompt negativo.
- Ogni chiamata di creazione richiede l'intestazione
Idempotency-Key. Ripeterla con lo stesso corpo restituisce l'attività originale e non addebita mai due volte; con un altro corpo arriva409 idempotency_key_reused(documentazione dell'API video di OmniaKey, verificata il 2 novembre 2026). - La dimensione dell'output varia: nella documentazione di OmniaKey una foto 1200×630 in 720P torna come 1324×696.
Lo script Python
È il file esatto che abbiamo eseguito, solo con la libreria standard.
"""Animate one still with HappyHorse 1.1 image-to-video through the OmniaKey media API.
Usage:
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4
The still can be a local JPEG or PNG (sent inline as a data URL) or a public https:// URL.
"""
import base64
import json
import mimetypes
import os
import sys
import time
import urllib.error
import urllib.request
import uuid
API = "https://api.omniakey.com/v1/media/tasks"
HEADERS = {
"Authorization": "Bearer " + os.environ["OMNIAKEY_API_KEY"],
"Content-Type": "application/json",
"User-Agent": "happyhorse-i2v-example/1.0",
}
POLL_SECONDS = 10
GIVE_UP_AFTER = 15 * 60 # most clips finish in 1-5 minutes
def call(method, url, body=None, extra_headers=None):
data = json.dumps(body).encode() if body is not None else None
req = urllib.request.Request(url, data=data, method=method, headers={**HEADERS, **(extra_headers or {})})
for attempt in range(3):
try:
with urllib.request.urlopen(req, timeout=60) as resp:
return json.load(resp)
except urllib.error.HTTPError as err:
sys.exit(f"HTTP {err.code}: {err.read().decode(errors='replace')}")
except (urllib.error.URLError, TimeoutError, ConnectionError) as err:
if attempt == 2:
raise
print("network error, retrying:", err) # a retried POST keeps its Idempotency-Key
time.sleep(5)
def first_frame_url(image):
if image.startswith("https://"):
return image
raw = open(image, "rb").read()
if len(raw) > 700_000: # Base64 adds a third, and the whole request must stay under 1 MiB
sys.exit("The still is over 700 KB. Resize it or pass a public https:// URL instead.")
mime = mimetypes.guess_type(image)[0] or "image/jpeg"
return f"data:{mime};base64,{base64.b64encode(raw).decode()}"
def main(image, prompt, out_path):
task = call("POST", API, {
"model": "happyhorse-1.1-i2v",
"type": "video",
"operation": "image_to_video",
"input": {"prompt": prompt, "media": [{"type": "first_frame", "url": first_frame_url(image)}]},
"parameters": {"resolution": "720P", "duration": 5, "watermark": False}, # watermark is on by default
}, {"Idempotency-Key": str(uuid.uuid4())})
print("task", task["id"], task["status"])
start = time.time()
while task["status"] in ("queued", "processing"):
if time.time() - start > GIVE_UP_AFTER:
sys.exit(f"Still {task['status']} after 15 minutes. Do not submit it again; "
f"check it later with GET {API}/{task['id']}")
time.sleep(POLL_SECONDS)
task = call("GET", f"{API}/{task['id']}")
print(task["status"], "after", round(time.time() - start), "s")
if task["status"] != "succeeded":
sys.exit(json.dumps(task.get("error") or task))
# The signed download URL is short-lived, so save the file right away.
req = urllib.request.Request(task["assets"][0]["url"], headers={"User-Agent": HEADERS["User-Agent"]})
with urllib.request.urlopen(req, timeout=300) as resp, open(out_path, "wb") as f:
f.write(resp.read())
print("saved", out_path)
if __name__ == "__main__":
main(*sys.argv[1:4])
Salvalo come hh_i2v.py ed esegui:
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4
La nostra esecuzione con watermark: false ha stampato questo:
task task_QqK3ZdAd72vmK1DSOuOxXSytBSaJ244v queued
succeeded after 91 s
saved data/clips/c5-orbit-nowm.mp4
Cinque punti dello script contano.
- Controlla ogni 10 secondi.
- Rinuncia dopo 15 minuti con un messaggio che chiede di non inviare di nuovo l'attività.
- In caso di errore di rete riprova, e la creazione ripetuta mantiene il suo
Idempotency-Key, quindi ricevi l'attività originale invece di un secondo addebito. - Salva il file appena l'attività riesce, perché l'URL di download firmato dura poco.
- Invia un User-Agent a ogni richiesta: quello predefinito di Python ha ricevuto HTTP 403 con
error code: 1010da Cloudflare nel nostro test di Kling 3.0 API il 29 ottobre 2026.
Cinque clip che abbiamo fatto
Abbiamo generato quattro foto con Nano Banana 2.1 e abbiamo eseguito l'immagine delle cuffie due volte per provare la filigrana. Sono uscite cinque clip, tutte da 5 secondi e in 720P, il 2 novembre 2026. Le clip del ritratto, del lago e della volpe sono uscite con le impostazioni predefinite, quindi la filigrana si vede in quei fotogrammi.
Orbita delle cuffie
The camera slowly orbits about 90 degrees to the right around the headphones while a soft band of light sweeps across the ear cups. The headphones stay perfectly still on the pedestal. Smooth, steady product-commercial camera move.

La camera va da un lato delle cuffie all'altro, e le cuffie restano sul piedistallo. Nei fotogrammi centrali compare dietro il bordo curvo di uno sfondo che non è nella foto, e la fascia di luce chiesta nel prompt si vede appena.
Abbiamo eseguito lo stesso prompt sulla stessa foto due volte, una con le impostazioni predefinite e una con watermark: false, e l'angolo mostra la differenza.

Ritratto sotto la pioggia
She slowly turns her head toward the camera and gives a small smile while light rain keeps falling. The neon signs behind her flicker softly and the camera pushes in a little.

Passa dallo sguardo a sinistra al viso verso la camera e sorride, nell'ordine dato dal prompt, e la filigrana è in ogni fotogramma. Il prompt chiedeva una leggera spinta in avanti, e l'inquadratura passa dalla vita a un primo piano del viso.
Spinta in avanti sul lago
Slow aerial push-in over the water toward the rowboat. Mist drifts across the lake, the boat rocks gently and small ripples spread from its hull, and the golden light grows a little brighter.

La camera avanza verso la barca, come richiesto. Alla fine la barca riempie quasi tutto l'inquadratura, e dalla chiglia si allargano le increspature.
Illustrazione della volpe
The fox turns a page of the book with its paw and its ears twitch. A few orange leaves drift down from the tree and the branches sway gently. Keep the flat illustration style.

Lo stile dell'illustrazione piatta regge dal primo all'ultimo fotogramma mentre cadono le foglie arancioni. La camera si avvicina dall'albero intero a una vista ravvicinata della volpe, cosa che il prompt non ha mai chiesto; le pagine del libro si sollevano, ma i fotogrammi non confermano che la zampa ne giri una.

In 2 dei nostri 4 prompt la camera si è mossa più del richiesto, quindi controlla l'inquadratura con una prova breve. Una clip da 3 secondi in 480P è l'opzione più corta e più bassa elencata dai documenti (referenza dell'API da immagine a video di Alibaba, verificata il 2 novembre 2026).
Cosa misuravano i file
| Clip | Rapporto | Pixel | Fotogrammi | Tempo | Byte |
|---|---|---|---|---|---|
| Orbita, predefinita | 16:9 | 1286×716 | 123 | 128 s | 1.486.548 |
Orbita, watermark: false | 16:9 | 1286×716 | 121 | 98 s | 1.320.527 |
| Ritratto sotto la pioggia | 9:16 | 716×1286 | 123 | 158 s | 2.108.577 |
| Lago | 16:9 | 1286×716 | 123 | 131 s | 2.691.558 |
| Volpe | 1:1 | 960×960 | 123 | 92 s | 2.405.557 |
Ogni file dichiara 5.16 secondi anche se ne avevamo chiesti 5: è la traccia audio, mentre la traccia video dura 5.13 secondi su 123 fotogrammi e 5.04 secondi su 121. Tutte e cinque sono H.264 a 24 fps con una traccia AAC stereo, e uno script di rilevamento dei tagli non ne ha trovato nessuno.
Le nostre clip hanno richiesto da 92 a 158 secondi dall'invio al download, contro gli 1–5 minuti che la documentazione di Alibaba indica per le attività da immagine a video (referenza dell'API da immagine a video di Alibaba, verificata il 2 novembre 2026). Non abbiamo provato 480P, 1080P, altre durate, seed, un URL pubblico dell'immagine, HappyHorse 1.0 né l'endpoint di Alibaba. Per scegliere tra modelli, vedi HappyHorse 1.1 contro Seedance 2.0 e HappyHorse 1.1 contro Kling 3.0. Per rifare una clip senza codice, HappyHorse 1.1 è nel generatore di video IA.
Perché le clip hanno l'audio?
HappyHorse 1.1 ha aggiunto una traccia audio a tutte e cinque le clip, anche se nessuno dei nostri prompt la chiedeva. Nessuno le ha ascoltate: abbiamo chiesto a Gemini 3.8 Flash, tramite l'API OmniaKey, di descrivere ogni traccia.
| Clip | Cosa ha descritto il modello | Loudness media |
|---|---|---|
| Orbita, predefinita | "Un beat hip-hop con percussioni sincopate, battiti di mani e accordi di synth morbidi." | −19.5 dB |
Orbita, watermark: false | "Musica elettronica calma e ritmata, con un battito costante e toni di synth melodici" | −20.5 dB |
| Ritratto sotto la pioggia | "Una melodia di pianoforte lenta, malinconica e dolce, con una leggera atmosfera" | −22.6 dB |
| Lago | "Una melodia di pianoforte lenta, dolce e sentimentale" | −20.2 dB |
| Volpe | "Una melodia ambient calma e dolce suonata con toni di campana delicati", più "passi che scricchiolano sulla ghiaia" | −27.4 dB |
Non ha segnalato voci in nessuna clip. Lo stesso prompt e la stessa foto, eseguiti due volte, hanno dato due tracce diverse.
La referenza da immagine a video di Alibaba non elenca un campo audio né un'opzione senza audio, anche se la nota di versione 1.1 cita la sincronizzazione tra audio e immagine (pagina dei modelli appena pubblicati di Alibaba, verificata il 2 novembre 2026). Per un file senza audio, togli la traccia dopo il download:
ffmpeg -i clip.mp4 -an -c:v copy silent.mp4
L'abbiamo eseguito sulla clip con watermark: false e il risultato ha una traccia video e nessuna traccia audio. L'immagine resta identica, perché -c:v copy copia la traccia invece di ricodificarla.
Per quanto tempo restano disponibili i risultati?
Su OmniaKey il link firmato al tuo MP4 dura circa 1 ora, e il record dell'attività viene conservato 24 ore; controlla di nuovo l'attività per un URL fresco (panoramica dell'API media di OmniaKey, verificata il 2 novembre 2026). Nell'API di Alibaba, l'URL del video e l'ID dell'attività durano entrambi 24 ore, poi una richiesta restituisce UNKNOWN e il file non c'è più. Scarica appena l'attività riesce.
Quali errori incontrerai?
Nessuna delle nostre cinque esecuzioni è fallita, quindi questo elenco viene dalla documentazione dell'API video di OmniaKey, verificata il 2 novembre 2026.
| Stato | Cosa significa | Cosa fare |
|---|---|---|
400 invalid_request | corpo malformato, o attività senza input.prompt | controlla la forma della richiesta sopra |
400 model_price_error | durata fuori dall'intervallo del modello, o risoluzione senza prezzo | usa una durata e una risoluzione supportate |
403 model_not_allowed | la tua chiave o il tuo gruppo non include il modello | controlla l'accesso al modello della chiave |
409 idempotency_key_reused | la stessa chiave è già stata inviata con un altro corpo | riusa una chiave solo per ripetizioni identiche |
503 no_available_channel | nessun canale serve il modello o l'operazione adesso | riprova più tardi, o guarda la dashboard |
Un'attività che finisce in failed viene rimborsata automaticamente, quindi un rendering rifiutato costa solo il tuo tempo (panoramica dell'API media di OmniaKey, verificata il 2 novembre 2026).
L'errore da evitare è leggere un timeout dalla tua parte come attività fallita. Controlla lo stesso ID attività; inviare di nuovo avvia una seconda attività e un secondo addebito. Se invii davvero di nuovo, mantieni lo stesso Idempotency-Key e lo stesso corpo, e ricevi l'attività originale.
Quanto costa una clip HappyHorse 1.1?
Una clip da 5 secondi in 720P costa $0.70 al prezzo di listino di Alibaba a Singapore. Ecco i prezzi al secondo di Alibaba, dalla pagina dei prezzi verificata il 2 novembre 2026:
| Risoluzione | Singapore | Pechino e Global |
|---|---|---|
| 480P | $0.07 | $0.0618845 |
| 720P | $0.14 | $0.123769 |
| 1080P | $0.18 | $0.165026 |
Il conto è il prezzo al secondo moltiplicato per i secondi di output. Le richieste fallite non vengono addebitate. Singapore include anche una quota gratuita di 10 secondi, valida 90 giorni. Nella pagina dei prezzi, i prezzi Global valgono per Francoforte, Virginia e Tokyo.
OmniaKey fattura al secondo di output renderizzato e addebita in anticipo alla creazione dell'attività, con rimborso automatico delle attività fallite o annullate; per le tariffe attuali vedi la pagina HappyHorse 1.1.
Si può chiamare Alibaba Cloud direttamente?
Sì. HappyHorse è servito su Alibaba Cloud Model Studio, con endpoint regionali per Singapore, Stati Uniti (Virginia), Pechino, Francoforte e Tokyo (referenza dell'API da immagine a video di Alibaba, verificata il 2 novembre 2026). Le nostre esecuzioni sono passate dall'API di OmniaKey, quindi quanto segue viene dai documenti di Alibaba.
- Crea con
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesisper Singapore. - Invia l'intestazione
X-DashScope-Async: enable, altrimenti la richiesta fallisce con "current user api does not support synchronous calls". - Controlla
GET .../api/v1/tasks/{task_id}ogni 15 secondi circa; lo stato passa perPENDING,RUNNING,SUCCEEDED,FAILED,CANCELED,UNKNOWN. - Tieni modello, endpoint e chiave nella stessa regione, perché le chiamate tra regioni falliscono.
- Una chiave ottiene 5 richieste al secondo e 5 attività simultanee (pagina dei limiti di richiesta di Alibaba, verificata il 2 novembre 2026).
La pagina dei prezzi elenca Tokyo, ma quella dei limiti non elenca lì da immagine a video 1.1, quindi Tokyo resta non confermata.
Domande frequenti
Serve un prompt per HappyHorse da immagine a video?
Su OmniaKey sì: un'attività senza input.prompt riceve 400 invalid_request (documentazione dell'API video di OmniaKey, verificata il 2 novembre 2026). L'API di Alibaba tratta il prompt come facoltativo e usa solo il primo fotogramma. In entrambi i casi, nomina il movimento e lo spostamento di camera, come i nostri prompt qui sopra.
Come tolgo la filigrana Happy Horse?
Invia parameters.watermark: false. Il valore predefinito true disegna un piccolo testo bianco "Happy Horse" nell'angolo in basso a destra; la nostra seconda clip di orbita, inviata con false, è tornata pulita.
Come imposto il rapporto d'aspetto?
Ritaglia la foto. Da immagine a video non ha un campo ratio e la clip segue la forma del primo fotogramma, quindi la nostra foto 16:9 ha dato una clip 16:9 e il ritratto una clip 9:16. Tieni il ritaglio tra 1:2.5 e 2.5:1.
Esiste HappyHorse 1.5?
Niente dopo la 1.1 compare nella lista dei modelli, nelle tabelle dei prezzi né nella pagina del ciclo di vita di Alibaba al 2 novembre 2026, e la versione più recente di quelle pagine è happyhorse-1.1-i2v, pubblicata il 16 giugno 2026. Alcuni siti usano il nome "Happy Horse 1.5".
HappyHorse 1.1 è meglio della 1.0 per da immagine a video?
Alibaba dice che la 1.1 migliora la qualità visiva, la resa del movimento e la coerenza tra clip, e la pagina dei prezzi elenca un livello 480P solo per la 1.1. La 1.1 è uscita il 16 giugno 2026 e la 1.0 il 22 aprile 2026. Alla tariffa di Singapore di Alibaba, 1080P costa $0.18 al secondo nella 1.1 contro $0.24 nella 1.0.
Fonti controllate
- Alibaba Cloud: referenza dell'API da immagine a video di HappyHorse, verificata il 2 novembre 2026
- Alibaba Cloud: prezzi dei modelli, verificata il 2 novembre 2026
- Alibaba Cloud: modelli, verificata il 2 novembre 2026
- Alibaba Cloud: modelli appena pubblicati, verificata il 2 novembre 2026
- Alibaba Cloud: limiti di richiesta, verificata il 2 novembre 2026
Documentazione propria di OmniaKey, verificata il 2 novembre 2026: API video e panoramica dell'API media.
Modelli citati in questo articolo
Articoli correlati
HappyHorse 1.1 vs Seedance 2.0: test con lo stesso prompt e prezzi
Tre prompt identici, stesso giorno: Seedance 2.0 ha fatto i clip migliori, HappyHorse 1.1 li ha fatti in metà tempo.
HappyHorse 1.1 vs Kling 3.0: test con lo stesso prompt e prezzo
Tre prompt identici: HappyHorse 1.1 vince la scena affollata e l'orbita del profumo, Kling 3.0 azzecca il trick.
Kling 3.0 API: codice della richiesta da testo a video e clip reali
Un task da testo a video è una sola POST con il modello kling-3.0. Qui trovi il codice della richiesta, i campi che accetta e due clip da 5 secondi creati il 29 ottobre 2026, con le misure.

