HappyHorse 1.1 gambar ke video: panduan API dan 5 klip nyata
Satu skrip mengirim foto, memeriksa tugas, dan menyimpan MP4. Field-nya, kejutan tanda air dan trek suara, serta 5 klip yang dibuat pada 2 November 2026.

Di halaman ini
- Jawaban singkat
- Apa yang perlu disiapkan sebelum panggilan pertama HappyHorse 1.1 gambar ke video?
- Field apa saja yang dibawa permintaan?
- Skrip Python
- Lima klip yang kami buat
- Orbit headphone
- Potret di tengah hujan
- Dorongan kamera di danau
- Ilustrasi rubah
- Apa yang diukur berkasnya
- Mengapa klip punya suara?
- Berapa lama hasil tersedia?
- Error apa yang akan Anda temui?
- Berapa biaya satu klip HappyHorse 1.1?
- Bisakah memanggil Alibaba Cloud langsung?
- Pertanyaan umum
- Apakah HappyHorse gambar ke video butuh prompt?
- Bagaimana menghapus tanda air Happy Horse?
- Bagaimana mengatur rasio aspek?
- Apakah ada HappyHorse 1.5?
- Apakah HappyHorse 1.1 lebih baik dari 1.0 untuk gambar ke video?
- Sumber yang diperiksa
Untuk menghidupkan gambar diam dengan HappyHorse 1.1 gambar ke video, kirim foto sebagai first_frame ke https://api.omniakey.com/v1/media/tasks dengan ID model happyhorse-1.1-i2v, periksa tugasnya, lalu unduh MP4. Lima klip 5 detik kami di 720P memakan waktu 92 sampai 158 detik pada 2 November 2026. Semuanya berisi musik yang tidak kami minta, dan pengaturan bawaan menambahkan tanda air "Happy Horse".
Jawaban singkat
- Permintaan: model
happyhorse-1.1-i2v, operasiimage_to_video, dan tepat satufirst_framediinput.media. - Rasio aspek: klip mengikuti foto Anda, karena tidak ada field
ratio. - Durasi dan ukuran: 3 sampai 15 detik di 480P, 720P, atau 1080P; kirim
resolutionsetiap kali, karena bawaan Alibaba adalah 1080P. - Tanda air: aktif secara bawaan, dimatikan dengan
watermark: false. - Suara: kelima klip punya musik, API Alibaba tidak mencantumkan sakelar audio, dan
ffmpegmenghapus treknya.
Apa yang perlu disiapkan sebelum panggilan pertama HappyHorse 1.1 gambar ke video?
Tiga hal: kunci, Python 3, dan foto yang lolos aturan Alibaba.
- Kunci di
OMNIAKEY_API_KEY. Skrip mengirimnya sebagai token Bearer, jadi kunci tidak tersimpan di kode. - Python 3 tanpa memasang apa pun. Skrip hanya memakai pustaka standar.
- Foto yang sesuai referensi API gambar ke video Alibaba: JPEG, JPG, PNG, atau WEBP; lebar dan tinggi minimal 300 piksel; sampai 20 MB; rasio aspek 1:2.5 sampai 2.5:1. Alibaba tidak menyebut batas maksimum piksel.
Kesulitannya ada di ukuran: gambar yang disisipkan ikut di badan permintaan, dan badan itu harus muat dalam 1 MiB termasuk Base64 (ikhtisar API media OmniaKey, diperiksa 2 November 2026). Skrip berhenti di atas 700 KB; kalau lebih besar, kecilkan foto atau berikan URL HTTPS publik. Foto 2K kami berukuran 2.254.819 byte, dan perintah macOS ini menurunkannya ke 92.212 byte:
sips -s format jpeg -s formatOptions 85 -Z 1280 still.jpg --out still-small.jpg
Field apa saja yang dibawa permintaan?
Sembilan field mendefinisikan tugas: tiga di tingkat atas, dua di dalam input, dan empat di dalam parameters.
| Field | Nilai | Catatan |
|---|---|---|
model | happyhorse-1.1-i2v | ID model 1.1 gambar ke video |
type | video | jenis berkas yang dibuat tugas |
operation | image_to_video | nama tanpa awalan |
input.prompt | teks | OmniaKey mewajibkan, API Alibaba menganggap opsional; sampai 5,000 karakter non-Cina atau 2,500 karakter Cina, teks lebih panjang dipotong |
input.media | tepat satu {"type": "first_frame", "url": ...} | URL HTTPS publik atau data URI |
parameters.resolution | 480P, 720P, atau 1080P | selalu kirim: bawaan Alibaba 1080P |
parameters.duration | detik bulat, 3 sampai 15 | wajib di OmniaKey |
parameters.watermark | true (bawaan) atau false | false menghapus teks "Happy Horse" |
parameters.seed | 0 sampai 2147483647 | seed sama juga tidak menjamin klip sama |
Empat detail mudah terlewat.
- Tidak ada field
ratio: klip mempertahankan rasio aspek foto Anda (referensi API gambar ke video Alibaba, diperiksa 2 November 2026). - Halaman Alibaba tidak menampilkan field prompt negatif.
- Setiap panggilan pembuatan butuh header
Idempotency-Key. Mengulang dengan badan yang sama mengembalikan tugas asli dan tidak pernah menagih dua kali; dengan badan lain muncul409 idempotency_key_reused(dokumentasi API video OmniaKey, diperiksa 2 November 2026). - Ukuran keluaran berubah: di dokumentasi OmniaKey, foto 1200×630 di 720P kembali sebagai 1324×696.
Skrip Python
Ini berkas yang persis kami jalankan, hanya dengan pustaka standar.
"""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])
Simpan sebagai hh_i2v.py lalu jalankan:
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4
Jalur kami dengan watermark: false mencetak ini:
task task_QqK3ZdAd72vmK1DSOuOxXSytBSaJ244v queued
succeeded after 91 s
saved data/clips/c5-orbit-nowm.mp4
Lima hal di skrip ini penting.
- Skrip memeriksa tiap 10 detik.
- Skrip menyerah setelah 15 menit dengan pesan agar tugas tidak dikirim ulang.
- Saat ada error jaringan, skrip mencoba lagi, dan pembuatan ulang mempertahankan
Idempotency-Key, jadi Anda mendapat tugas asli, bukan tagihan kedua. - Skrip menyimpan berkas begitu tugas berhasil, karena URL unduhan bertanda tangan berumur pendek.
- Skrip mengirim User-Agent di setiap permintaan: User-Agent bawaan Python mendapat HTTP 403 dengan
error code: 1010dari Cloudflare pada pengujian Kling 3.0 API kami tanggal 29 Oktober 2026.
Lima klip yang kami buat
Kami membuat empat foto dengan Nano Banana 2.1 dan menjalankan gambar headphone dua kali untuk menguji tanda air. Hasilnya lima klip, semuanya 5 detik dan 720P, pada 2 November 2026. Klip potret, danau, dan rubah keluar dengan pengaturan bawaan, jadi tanda air terlihat di bingkai itu.
Orbit headphone
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.

Kamera bergerak dari satu sisi headphone ke sisi lain, dan headphone tetap di alas. Di bingkai tengah, tepi melengkung latar yang tidak ada di foto muncul di belakang, dan pita cahaya yang diminta di prompt hampir tidak terlihat.
Kami menjalankan prompt yang sama pada foto yang sama dua kali, sekali dengan pengaturan bawaan dan sekali dengan watermark: false, dan sudutnya menunjukkan bedanya.

Potret di tengah hujan
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.

Dia beralih dari menoleh ke kiri menjadi menghadap kamera dan tersenyum, sesuai urutan yang diminta prompt, dan tanda air ada di setiap bingkai. Prompt meminta dorongan kamera ringan, dan bingkai bergerak dari pinggang ke atas sampai close-up wajah.
Dorongan kamera di danau
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.

Kamera maju ke arah perahu, seperti diminta. Di akhir, perahu hampir memenuhi seluruh bingkai, dan riak menyebar dari lambungnya.
Ilustrasi rubah
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.

Gaya ilustrasi datar bertahan dari bingkai pertama sampai terakhir sambil daun oranye berjatuhan. Kamera bergerak dari seluruh pohon ke pandangan dekat rubah, yang tidak pernah diminta prompt; halaman buku terangkat, tetapi bingkai tidak memastikan kaki rubah membalik satu halaman.

Di 2 dari 4 prompt kami, kamera bergerak lebih jauh dari yang diminta, jadi periksa framing dengan uji singkat. Klip 3 detik di 480P adalah pilihan terpendek dan terendah yang dicantumkan dokumen (referensi API gambar ke video Alibaba, diperiksa 2 November 2026).
Apa yang diukur berkasnya
| Klip | Rasio | Piksel | Bingkai | Waktu | Byte |
|---|---|---|---|---|---|
| Orbit, bawaan | 16:9 | 1286×716 | 123 | 128 dtk | 1.486.548 |
Orbit, watermark: false | 16:9 | 1286×716 | 121 | 98 dtk | 1.320.527 |
| Potret di tengah hujan | 9:16 | 716×1286 | 123 | 158 dtk | 2.108.577 |
| Danau | 16:9 | 1286×716 | 123 | 131 dtk | 2.691.558 |
| Rubah | 1:1 | 960×960 | 123 | 92 dtk | 2.405.557 |
Setiap berkas menyebut 5.16 detik padahal kami meminta 5: itu trek audio, sedangkan trek video berdurasi 5.13 detik pada 123 bingkai dan 5.04 detik pada 121 bingkai. Kelimanya H.264 24 fps dengan trek AAC dua kanal, dan skrip pendeteksi potongan tidak menemukan satu pun.
Klip kami memakan 92 sampai 158 detik dari kirim sampai unduh, dibanding 1–5 menit yang disebut dokumentasi Alibaba untuk tugas gambar ke video (referensi API gambar ke video Alibaba, diperiksa 2 November 2026). Kami tidak menguji 480P, 1080P, durasi lain, seed, URL gambar publik, HappyHorse 1.0, maupun titik akhir Alibaba sendiri. Untuk memilih antar model, lihat HappyHorse 1.1 lawan Seedance 2.0 dan HappyHorse 1.1 lawan Kling 3.0. Untuk mengulang klip tanpa kode, HappyHorse 1.1 ada di pembuat video AI.
Mengapa klip punya suara?
HappyHorse 1.1 menambahkan musik ke kelima klip, padahal tidak satu pun prompt kami memintanya. Tidak ada yang mendengarkan: kami meminta Gemini 3.8 Flash, lewat API OmniaKey, mendeskripsikan setiap trek.
| Klip | Deskripsi model | Kenyaringan rata-rata |
|---|---|---|
| Orbit, bawaan | "Beat hip-hop dengan perkusi sinkop, tepukan tangan, dan akor synth lembut." | −19.5 dB |
Orbit, watermark: false | "Musik elektronik tenang dan berirama, dengan ketukan stabil dan nada synth melodis" | −20.5 dB |
| Potret di tengah hujan | "Melodi piano lambat, melankolis, dan lembut, dengan tekstur atmosfer ringan" | −22.6 dB |
| Danau | "Melodi piano lambat, lembut, dan sentimental" | −20.2 dB |
| Rubah | "Melodi ambient tenang dan lembut yang dimainkan dengan nada lonceng halus", ditambah "langkah berderit di kerikil" | −27.4 dB |
Model tidak melaporkan suara manusia di klip mana pun. Prompt dan foto yang sama, dijalankan dua kali, menghasilkan dua trek berbeda.
Referensi gambar ke video Alibaba tidak mencantumkan field audio atau opsi tanpa suara, meskipun catatan versi 1.1 menyebut sinkronisasi audio dan gambar (halaman model yang baru dirilis Alibaba, diperiksa 2 November 2026). Untuk berkas tanpa suara, hapus treknya setelah unduh:
ffmpeg -i clip.mp4 -an -c:v copy silent.mp4
Kami menjalankannya pada klip dengan watermark: false dan hasilnya punya trek video dan tanpa trek audio. Gambarnya tetap persis sama, karena -c:v copy menyalin trek, bukan mengodekan ulang.
Berapa lama hasil tersedia?
Di OmniaKey, tautan bertanda tangan ke MP4 Anda berlaku sekitar 1 jam, dan catatan tugas disimpan 24 jam; periksa tugas lagi untuk URL baru (ikhtisar API media OmniaKey, diperiksa 2 November 2026). Di API Alibaba sendiri, URL video dan ID tugas sama-sama berlaku 24 jam, lalu permintaan mengembalikan UNKNOWN dan berkasnya sudah hilang. Unduh begitu tugas berhasil.
Error apa yang akan Anda temui?
Tidak satu pun dari lima jalur kami gagal, jadi daftar ini berasal dari dokumentasi API video OmniaKey, diperiksa 2 November 2026.
| Status | Artinya | Yang dilakukan |
|---|---|---|
400 invalid_request | badan rusak, atau tugas tanpa input.prompt | periksa bentuk permintaan di atas |
400 model_price_error | durasi di luar rentang model, atau resolusi tanpa harga | pakai durasi dan resolusi yang didukung |
403 model_not_allowed | kunci atau grup Anda tidak menyertakan model | periksa akses model pada kunci |
409 idempotency_key_reused | kunci yang sama sudah dikirim dengan badan lain | pakai ulang kunci hanya untuk pengulangan identik |
503 no_available_channel | belum ada kanal yang melayani model atau operasi ini | coba lagi nanti, atau lihat dasbor |
Tugas yang berakhir failed dikembalikan otomatis, jadi render yang ditolak hanya memakan waktu Anda (ikhtisar API media OmniaKey, diperiksa 2 November 2026).
Kesalahan yang perlu dihindari adalah membaca batas waktu di sisi Anda sebagai tugas gagal. Periksa ID tugas yang sama; mengirim ulang memulai tugas kedua dan tagihan kedua. Kalau memang mengirim ulang, pertahankan Idempotency-Key dan badan yang sama, dan Anda mendapat tugas asli.
Berapa biaya satu klip HappyHorse 1.1?
Klip 5 detik di 720P berbiaya $0.70 dengan harga daftar Alibaba di Singapura. Berikut harga per detik Alibaba dari halaman harga yang diperiksa 2 November 2026:
| Resolusi | Singapura | Beijing dan Global |
|---|---|---|
| 480P | $0.07 | $0.0618845 |
| 720P | $0.14 | $0.123769 |
| 1080P | $0.18 | $0.165026 |
Tagihannya harga per detik dikali detik keluaran. Permintaan yang gagal tidak ditagih. Singapura juga punya kuota gratis 10 detik yang berlaku 90 hari. Di halaman harga, harga Global berlaku untuk Frankfurt, Virginia, dan Tokyo.
OmniaKey menagih per detik keluaran yang dirender dan menagih di muka saat tugas dibuat, dengan tugas gagal atau dibatalkan dikembalikan otomatis; untuk tarif terkini, lihat halaman HappyHorse 1.1.
Bisakah memanggil Alibaba Cloud langsung?
Bisa. HappyHorse dilayani di Alibaba Cloud Model Studio, dengan titik akhir regional untuk Singapura, Amerika Serikat (Virginia), Beijing, Frankfurt, dan Tokyo (referensi API gambar ke video Alibaba, diperiksa 2 November 2026). Jalur kami lewat API OmniaKey, jadi berikut ini dari dokumen Alibaba.
- Buat dengan
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesisuntuk Singapura. - Kirim header
X-DashScope-Async: enable, kalau tidak permintaan gagal dengan "current user api does not support synchronous calls". - Periksa
GET .../api/v1/tasks/{task_id}kira-kira tiap 15 detik; statusnya melewatiPENDING,RUNNING,SUCCEEDED,FAILED,CANCELED,UNKNOWN. - Jaga model, titik akhir, dan kunci di wilayah yang sama, karena panggilan antarwilayah gagal.
- Satu kunci mendapat 5 permintaan per detik dan 5 tugas bersamaan (halaman batas laju Alibaba, diperiksa 2 November 2026).
Halaman harga mencantumkan Tokyo, tetapi halaman batas laju tidak mencantumkan gambar ke video 1.1 di sana, jadi Tokyo belum terkonfirmasi.
Pertanyaan umum
Apakah HappyHorse gambar ke video butuh prompt?
Di OmniaKey, ya: tugas tanpa input.prompt menerima 400 invalid_request (dokumentasi API video OmniaKey, diperiksa 2 November 2026). API Alibaba sendiri menganggap prompt opsional dan memakai bingkai pertama saja. Dalam kedua kasus, sebutkan gerakan dan arah kamera, seperti prompt kami di atas.
Bagaimana menghapus tanda air Happy Horse?
Kirim parameters.watermark: false. Bawaan true menggambar teks putih kecil "Happy Horse" di sudut kanan bawah; klip orbit kedua kami, yang dikirim dengan false, kembali bersih.
Bagaimana mengatur rasio aspek?
Pangkas fotonya. Gambar ke video tidak punya field ratio dan klip mengikuti bentuk bingkai pertama, jadi foto 16:9 kami menghasilkan klip 16:9 dan potret menghasilkan klip 9:16. Jaga pangkasan antara 1:2.5 dan 2.5:1.
Apakah ada HappyHorse 1.5?
Tidak ada yang setelah 1.1 di daftar model, tabel harga, maupun halaman daur hidup Alibaba pada 2 November 2026, dan versi terbaru di halaman itu adalah happyhorse-1.1-i2v, dirilis 16 Juni 2026. Beberapa situs memakai nama "Happy Horse 1.5".
Apakah HappyHorse 1.1 lebih baik dari 1.0 untuk gambar ke video?
Alibaba menyebut 1.1 meningkatkan kualitas gambar, penyampaian gerakan, dan konsistensi antar klip, dan halaman harganya mencantumkan tingkat 480P hanya untuk 1.1. Versi 1.1 rilis 16 Juni 2026 dan 1.0 rilis 22 April 2026. Di tarif Singapura Alibaba, 1080P berbiaya $0.18 per detik di 1.1 dan $0.24 di 1.0.
Sumber yang diperiksa
- Alibaba Cloud: referensi API gambar ke video HappyHorse, diperiksa 2 November 2026
- Alibaba Cloud: harga model, diperiksa 2 November 2026
- Alibaba Cloud: model, diperiksa 2 November 2026
- Alibaba Cloud: model yang baru dirilis, diperiksa 2 November 2026
- Alibaba Cloud: batas laju, diperiksa 2 November 2026
Dokumentasi OmniaKey sendiri, diperiksa 2 November 2026: API video dan ikhtisar API media.
Model di artikel ini
Artikel terkait
HappyHorse 1.1 vs Seedance 2.0: uji prompt yang sama dan harga
Tiga prompt yang sama di hari yang sama: Seedance 2.0 membuat klip lebih baik, HappyHorse 1.1 dua kali lebih cepat.
HappyHorse 1.1 vs Kling 3.0: uji prompt yang sama dan harga
Tiga prompt yang sama: HappyHorse 1.1 menang di adegan ramai dan putaran parfum, Kling 3.0 tepat di gerakan trik.
Kling 3.0 API: kode permintaan teks ke video dan klip nyata
Tugas teks ke video cukup satu POST dengan model kling-3.0. Berikut kode permintaannya, field yang diterima, dan dua klip 5 detik yang kami buat pada 29 Oktober 2026 beserta hasil ukurnya.

