Seedance 2.5 Kini Tersedia — Hadir Pertama di Atlas Cloud

Loop Polling MiniMax H3 Anda Tidak Pernah Berakhir. Inilah Tutorial yang Benar-Benar Selesai.

Tutorial MiniMax H3 dengan seluruh async loop: panggilan create, loop poll yang menangani kelima status nyata, tantangan callback 3 detik, dan dua hal yang kedaluwarsa secara diam-diam.

POST pertama Anda kembali dalam sepuluh detik dengan task_id. Sepertinya sukses.

Kemudian tidak terjadi apa-apa selama enam menit. Anda telah menyalin while status != "Success" dari sebuah tutorial, dan loop terus berputar, karena endpoint ini tidak lagi mengembalikan kata Success. Jadi Anda beralih ke webhook. Tidak ada satu pun push yang tiba, dan tidak ada di mana pun yang memberi tahu Anda alasannya. Pagi berikutnya Anda kembali ke render kemarin dan tautannya 404.

Keempat hal itu tampak tidak terkait. Tidak ada satupun yang merupakan kesalahan model. Keempatnya adalah kontrak async, yang hampir tidak pernah ditulis oleh siapa pun. Berikut ini seluruh kontraknya, ditambah satu film pendek dua-shot nyata yang keluar dari ujung lainnya.

Poin-poin penting

  • Tiga endpoint, satu loop: create mengembalikan task_id dan menutup sambungan, Anda polling, Anda unduh. Semua yang sulit terjadi setelah panggilan create.
  • Lima status sebenarnya adalah queued, running, succeeded, failed, cancelled. Tidak ada status expired, tidak peduli apa yang dikatakan sebuah posting blog.
  • Dua hal yang kedaluwarsa, dan keduanya bukan status: URL unduhan terbatas waktu, dan catatan tugas itu sendiri hanya dapat ditanyai selama 7 hari.
  • Jika Anda menggunakan callback, MiniMax pertama-tama mengirimkan permintaan verifikasi dengan bidang challenge dan Anda harus menggema kembali apa adanya dalam 3 detik. Gagal melakukannya dan Anda tidak mendapatkan error, hanya diam selamanya.
  • Untuk pembuatan teks saja, ratio wajib diisi dan tidak boleh adaptive. Untuk image-to-video, frame pertama yang menentukan frame, dan ratio apa pun yang Anda berikan akan diabaikan.

Hasil akhirnya terlebih dahulu

Seluruh hasil dari tutorial ini: dua shot MiniMax H3 di 2K, digabung, 14,6 detik. Shot A adalah image-to-video dari frame pertama yang dihasilkan, shot B adalah text-to-video. Nyalakan suaranya. Audio bukan soundtrack yang ditimpakan di atasnya, H3 merender roda gigi, hujan, dan bisikan sebagai bagian dari generasi yang sama.

Tiga panggilan API yang membuatnya. Satu model gambar untuk frame pertama, dua endpoint H3 untuk shot, satu baris ffmpeg untuk menggabungkannya. Kode di bawah adalah kode yang membuatnya.

Mengapa Sebagian Besar Tutorial MiniMax H3 Rusak pada Permintaan Kedua

Hampir setiap panduan untuk model ini berhenti pada panggilan create. Itu adalah bagian yang mudah. Panggilan create memvalidasi payload Anda, memberikan task_id dan memutuskan sambungan, dan kemudian Anda sendirian dengan pekerjaan yang membutuhkan waktu menit dan seperangkat aturan yang tidak dicetak siapa pun.

Kegagalannya berulang dengan membosankan. Saya mengalami lima dari enam ini dalam satu sore.

GejalaApa yang Anda lihatPenyebab sebenarnyaPerbaikan
Loop polling tidak pernah berhentiTerminal mencetak selamanya, pekerjaan sudah selesai sejak lamaKondisi keluar Anda membandingkan dengan kata-kata v1 seperti Success / Fail. Endpoint query v2 mengembalikan lowercase succeeded / failedCocokkan dengan enum v2, dan raise pada status apa pun yang tidak Anda kenali
400 instan pada text-to-videoPermintaan ditolak sebelum render apa pun dimulairatio hilang, atau diatur ke adaptive, yang ditolak mode teks sajaBerikan rasio eksplisit seperti 16:9
Rasio Anda diabaikan secara diam-diamFrame output bukan yang Anda mintaImage-to-video mendapatkan frame dari gambar frame pertama, jadi ratio adalah no-op di sanaPotong atau hasilkan frame pertama pada rasio yang Anda inginkan
Webhook tidak pernah menyala, tidak ada errorNol push, log bersih, tidak ada keluhan dari APIJabat tangan verifikasi gagal. MiniMax mengirim challenge dan endpoint Anda tidak menggema kembali apa adanya dalam 3 detikJawab challenge secara sinkron, sebelum middleware auth atau antrian
URL kemarin 404sTautan unduhan mati, render sepertinya hilangURL unduhan terbatas waktu. Rendernya baik-baik sajaQuery task_id yang sama lagi untuk URL baru, dalam jendela 7 hari
429 acak di bawah bebanBeberapa submit ditolak, tidak ada antrianKonkurensi dibatasi, dan itu adalah batas keras, bukan garis tungguBatasi jumlah in-flight Anda sendiri dan coba lagi submit, bukan render

Baris pertama adalah yang menghabiskan malam sepenuhnya, dan perlu tepat. API video lama MiniMax melaporkan kemajuan dengan kata-kata kapital dalam keluarga Preparing / Queueing / Processing / Success / Fail. Endpoint query v2 yang digunakan H3 mengembalikan queued, running, succeeded, failed, cancelled (MiniMax API Reference, Agustus 2026). Banyak dokumen penjual kembali pihak ketiga masih mencetak set lama, atau mencampur keduanya dalam satu halaman. Jika Anda mewarisi loop dari salah satu dari itu, itu tidak dapat berakhir, karena string yang ditunggunya tidak pernah dikirim.

Alur Kerja Tutorial MiniMax H3: Tiga Endpoint, Lima Status, Satu Loop

H3 dirilis pada 2026-07-31 sebagai model video omni-modal: teks, gambar, video, dan audio semuanya hidup di jendela konteks yang sama, output hingga 15 detik di 2K dengan audio stereo asli (MarkTechPost, Agustus 2026). Untuk API, itu berarti satu endpoint create dengan array content, dan apa yang Anda masukkan ke dalam array menentukan mode yang Anda gunakan.

ModeApa yang masuk ke contentrole pada item gambarApa yang dilakukan ratioGunakan untuk
Text-to-videosatu item tekstidak adaWajib, dan adaptive ditolakShot tanpa gambar sumber, kontrol penuh atas frame
Image-to-videoitem teks plus item gambarfirst_frame (opsional juga last_frame)Diabaikan, frame pertama yang menentukanMenganimasikan gambar diam yang sudah Anda tata
Reference-to-videoitem teks plus item referensireference_image (juga reference_video, reference_audio)Wajib, sama seperti teks sajaMenjaga satu karakter atau satu suara di seluruh shot

Dan bagian yang benar-benar harus ditangani kode Anda. Lima status, lima cabang berbeda.

StatusArtinyaApa yang dilakukan kode Anda
queuedDiterima, menunggu slotTerus polling, back off
runningMerenderTerus polling, back off
succeededSelesai, content.url terisiUnduh segera, dalam iterasi ini
failedRender gagalBaca body error, log, jangan coba lagi payload yang sama secara buta
cancelledPekerjaan dibatalkanKeluar dari loop, anggap terminal
apa pun lainnyaBukan dalam enumRaise. Status baru yang Anda diam-diam anggap "terus menunggu" adalah bug dari tabel di atas

Tidak ada status expired. Kata itu sering melekat pada API ini dan milik dua hal lain: URL unduhan, yang terbatas waktu dan dapat disegarkan, dan catatan tugas, yang hanya dapat ditanyai untuk 7 hari terakhir. Keduanya dibahas di Langkah 4.

Satu angka lagi sebelum kode. Konkurensi untuk generasi video di H3 dibatasi oleh jumlah koneksi, bukan permintaan per menit: 2 tugas bersamaan di tingkat gratis, 15 setelah Anda berbayar (MiniMax Rate Limits, Agustus 2026). Melewati batas Anda langsung mendapatkan 429. Tidak ada yang mengantri atas nama Anda. Saya juga telah mendorong 20 pekerjaan H3 bersamaan melalui gateway routing dan semuanya berhasil, dan saya juga pernah mendapatkan 429 pada pengaturan yang sama di hari yang berbeda, jadi perlakukan angka di atas batas yang didokumentasikan sebagai cuaca, bukan konstanta.

Langsung atau melalui gateway

Tiga langkahnya sama, tetapi stringnya berbeda, dan itu penting saat Anda debug pada jam 1 pagi.

MiniMax langsungGateway terpadu (Atlas Cloud)
SubmitPOST /v2/video_generationPOST /api/v1/model/generateVideo
PollGET /v2/query/video_generation/{task_id}GET /api/v1/model/prediction/{id}
Kata statusqueued / running / succeeded / failed / cancelledcompleted saat sukses, failed saat gagal
Notifikasi pushCallback URL dengan jabat tangan challenge 3 detikPoll id prediksi
Konkurensi2 gratis, 15 berbayar, 429 kerasTidak dipublikasikan sebagai batas per model, diukur lebih luas dalam praktik
Model gambar frame pertama pada kunci yang samaTidak, akun terpisahYa, GPT Image 2 dan H3 di belakang satu kunci
Harga H3Dipublikasikan per tingkat resolusiPer detik output, bertingkat berdasarkan resolusi, dikutip di tombol Run sebelum Anda submit

Alasan saya menjalankan rantai tutorial ini di gateway murni karena baris kedua dari terakhir: frame pertama berasal dari model gambar OpenAI dan dua shot berasal dari MiniMax, dan saya tidak ingin dua vendor, dua kunci, dan dua halaman penagihan untuk satu film 14 detik. Jika Anda sudah di dalam platform MiniMax, tetap di sana, loop di bawah berfungsi tidak berubah selain jalur dan kata status.

Generator Video Hailuo AI: Cara Menggunakannya Sebelum Anda Menulis Kode

Jika Anda sampai di sini mencari cara menggunakan generator video Hailuo AI, Anda berada di tempat yang tepat dan Anda belum memerlukan kode apa pun. Hailuo adalah aplikasi berorientasi konsumen MiniMax dan H3 adalah nama model yang digunakan API. Mesin yang sama, pintu berbeda.

Tiga menit, tanpa terminal:

  1. Buka halaman model, misalnya MiniMax H3 image-to-video. Playground adalah panel kanan halaman.
  2. Letakkan gambar frame pertama, atau beralih ke halaman text-to-video dan tulis prompt. Atur resolusi dan durasi. Ucapkan dengan lantang apa yang ingin Anda dengar, bukan hanya apa yang ingin Anda lihat: H3 menghasilkan audio dalam satu pass yang sama, jadi "hujan mengetuk kaca, klik servo kecil" adalah instruksi nyata, bukan hiasan.
  3. Tekan Run. Tombol menunjukkan biaya yang tepat untuk pengaturan yang Anda pilih sebelum Anda berkomitmen. Tunggu, unduh.

Itulah seluruh jalur tanpa kode, dan untuk klip satu kali, itu benar-benar opsi yang lebih cepat. Saat Anda menginginkan sepuluh varian, atau frame pertama yang dihasilkan oleh model lain dan langsung dimasukkan, kembali ke kode. Itulah yang dilakukan sisanya.

Tutorial MiniMax H3: Buat, Polling, Unduh, Ulangi

Satu contoh berjalan melalui semua tujuh langkah: seorang pembuat jam memperbaiki burung mekanik kuningan kecil, berbisik satu baris padanya, dan burung itu terbang keluar dari bengkel. Dua shot. Shot A adalah image-to-video sehingga interiornya ditata. Shot B adalah text-to-video karena tidak ada frame sumber untuk langit.

Langkah 1: Hasilkan frame pertama dengan GPT Image 2

Image-to-video mengabaikan ratio, jadi frame pertama adalah tempat Anda memutuskan frame shot A. Hasilkan pada 16:9 dan pada tingkat kualitas tertinggi, karena H3 akan mewarisi setiap cacat di dalamnya dan kemudian menambahkan motion blur di atasnya.

Model: openai/gpt-image-2/text-to-image. Pengaturan: kualitas high, 2048x1152, 16:9, PNG.

text
1A cluttered clockmaker's workshop at dusk, warm tungsten lamp over a scarred oak
2bench. An old repairman in a leather apron leans close to a small brass mechanical
3bird resting in his cupped hands, its wing plates half-open, tiny gears visible.
4Rain streaks the mullioned window behind him; a coal stove glows amber at frame
5left. Shallow depth of field, 35mm, volumetric dust in the lamp beam, deep amber
6and teal palette, photoreal, no text.
7

Antarmuka generator gambar AI menampilkan prompt teks dan output yang dihasilkan

Playground GPT Image 2 di Atlas Cloud dengan prompt frame pertama tutorial ini dan bengkel pembuat jam yang dirender di panel output

GPT Image 2 di Atlas Cloud, kualitas tinggi pada 2048x1152. Tombol Run mengutip biaya yang tepat untuk pengaturan yang Anda pilih, $0,1745 untuk yang ini, sebelum Anda berkomitmen.

Simpan URL yang dikembalikan. Langkah 2 memberikannya langsung ke H3, tanpa perjalanan pulang pergi unduhan.

Langkah 2: Buat tugas MiniMax H3 dan pegang task_id

Panggilan create melakukan dua hal dan kemudian berhenti peduli pada Anda: ia memvalidasi payload dan mengembalikan task_id. 400 di sini adalah payload Anda, bukan kegagalan sementara, jadi jangan letakkan di belakang loop percobaan ulang. Setiap kelas masalah lainnya muncul kemudian, selama polling.

Satu kebiasaan yang menghemat uang nyata: simpan task_id sebelum Anda melakukan apa pun. Tugas hanya dapat ditanyai selama 7 hari, dan jika proses Anda mati dengan id di memori, Anda telah membayar untuk render yang tidak dapat Anda jangkau lagi.

python
1import os, json, time, requests
2
3BASE = "https://api.minimax.io"
4HEADERS = {
5    "Authorization": f"Bearer {os.environ['MINIMAX_API_KEY']}",
6    "Content-Type": "application/json",
7}
8
9def create_task(payload: dict) -> str:
10    r = requests.post(f"{BASE}/v2/video_generation",
11                      headers=HEADERS, json=payload, timeout=60)
12    if r.status_code == 400:
13        # payload Anda salah. mencoba lagi hanya akan salah lagi.
14        raise ValueError(f"ditolak: {r.text}")
15    r.raise_for_status()
16    task_id = r.json()["task_id"]
17    with open("tasks.jsonl", "a") as f:                 # simpan SEBELUM apa pun
18        f.write(json.dumps({"task_id": task_id, "at": int(time.time()),
19                            "payload": payload}) + "\n")
20    return task_id
21
22SHOT_A_PROMPT = (
23    "The old repairman's hands steady the brass bird. Its glass eyes flicker alight, "
24    "wing plates click open one by one. He leans in and whispers, close to the mic, "
25    ""Let's see if you still remember the sky." Slow 50mm push-in, lamp light raking "
26    "across the brass, rain ticking on the window, coal stove crackling, tiny servo "
27    "clicks under his voice. Warm amber key, teal window fill. No on-screen text."
28)
29
30shot_a = create_task({
31    "model": "MiniMax-H3",
32    "resolution": "2K",
33    "duration": 8,
34    # tidak ada "ratio" di sini dengan sengaja: image-to-video mengambil frame dari frame pertama
35    "content": [
36        {"type": "text", "text": SHOT_A_PROMPT},
37        {"type": "image_url", "role": "first_frame",
38         "image_url": {"url": FIRST_FRAME_URL}},
39    ],
40})
41print("shot A task:", shot_a)
42

Berikut adalah prompt yang sama dan frame pertama yang berjalan sebagai pekerjaan, sehingga Anda dapat melihat seperti apa submit yang sehat dari sisi lain:

Tangkapan layar antarmuka generator video AI dengan input dan output

Playground MiniMax H3 image-to-video di Atlas Cloud dengan frame pertama bengkel dimuat dan klip yang dirender di panel output

MiniMax H3 image-to-video: frame pertama dimuat di kiri, klip 2K selesai di OUTPUT di kanan. Perhatikan bidang Aspect Ratio yang disematkan ke adaptive, dan kutipan $1,12 untuk 2K pada 8 detik.

Langkah 3: Polling, dan tangani kelima status MiniMax H3

Ini adalah loop yang semua orang salah, jadi ada baiknya ditulis secara lengkap. Empat aturan: back off alih-alih memukul, batasi total waktu tunggu, perlakukan succeeded sebagai "unduh sekarang", dan raise pada status apa pun yang tidak ada dalam enum.

python
1TERMINAL_OK   = {"succeeded"}
2TERMINAL_BAD  = {"failed", "cancelled"}
3IN_FLIGHT     = {"queued", "running"}
4
5def poll(task_id: str, timeout_s: int = 900) -> dict:
6    delay, deadline = 3.0, time.time() + timeout_s
7    while time.time() < deadline:
8        r = requests.get(f"{BASE}/v2/query/video_generation/{task_id}",
9                         headers=HEADERS, timeout=30)
10        r.raise_for_status()
11        task = r.json()["task"]
12        status = task["status"]
13
14        if status in TERMINAL_OK:
15            return task                                  # content.url hidup SEKARANG
16        if status in TERMINAL_BAD:
17            raise RuntimeError(f"{status}: {json.dumps(r.json())[:400]}")
18        if status not in IN_FLIGHT:
19            # status yang tidak ada dalam enum. JANGAN lanjutkan ke "terus menunggu".
20            raise RuntimeError(f"status tidak dikenal {status!r} -- baca changelog")
21
22        print(f"  {status} ... pemeriksaan berikutnya dalam {delay:.0f}s")
23        time.sleep(delay)
24        delay = min(delay * 1.5, 15.0)                    # 3s -> batas 15s
25    raise TimeoutError(f"{task_id} masih belum terminal setelah {timeout_s}s")
26

Tiga hal di dalamnya disengaja:

status not in IN_FLIGHT memunculkan error alih-alih melanjutkan. Jika MiniMax menambahkan status keenam kuartal depan, Anda ingin crash yang keras, bukan loop yang menunggu kata yang tidak pernah datang. Satu baris ini adalah perbedaan antara tutorial yang rusak dan yang ini.

failed tidak mencoba lagi. Render yang gagal biasanya berarti prompt memicu filter atau payload memiliki kombinasi yang buruk, dan mengirim payload yang sama lagi akan memberi Anda kegagalan yang sama dengan harga penuh. Log body, lihat, lalu putuskan.

Backoff dimulai dari 3 detik dan berakhir di 15. H3 di 2K membutuhkan waktu menit, bukan detik. Polling sekali per detik hanya menghabiskan batas rate Anda pada endpoint query.

Langkah 4: Unduh sebelum URL kedaluwarsa

Saat succeeded tiba, streaming file ke disk. URL di content.url secara eksplisit adalah tautan terbatas waktu: "Unduh atau simpan segera; query lagi untuk mendapatkan URL baru setelah kedaluwarsa" (MiniMax API Reference, Agustus 2026). Ini bukan jalur CDN yang dapat Anda masukkan ke database dan lupakan.

Bagian kedua adalah kabar baik, dan itu adalah jawaban untuk 404 yang Anda dapatkan keesokan paginya. Rendernya tidak hilang. Query task_id yang sama lagi dan Anda mendapatkan URL baru, hingga 7 hari setelah pembuatan.

python
1def download(url: str, path: str) -> str:
2    with requests.get(url, stream=True, timeout=300) as r:
3        r.raise_for_status()
4        with open(path, "wb") as f:
5            for chunk in r.iter_content(1 << 20):
6                f.write(chunk)
7    return path
8
9def refresh_url(task_id: str) -> str:
10    """Tautan mati? Rendernya baik-baik saja. Tanya lagi, dalam jendela 7 hari."""
11    r = requests.get(f"{BASE}/v2/query/video_generation/{task_id}",
12                     headers=HEADERS, timeout=30)
13    r.raise_for_status()
14    return r.json()["task"]["content"]["url"]
15
16task = poll(shot_a)
17download(task["content"]["url"], "shot-a.mp4")
18

Apa yang kembali untuk shot A, di samping gambar diam yang dimulainya:

Perbandingan berdampingan seorang pengrajin memeriksa burung mekanik

Berdampingan: frame pertama yang dihasilkan di kiri, bingkai dari klip MiniMax H3 yang sudah jadi di kanan, menunjukkan pelat sayap burung terbuka dan mata menyala

Kiri: gambar diam GPT Image 2 dari Langkah 1, persis seperti yang dikirim. Kanan: bingkai yang ditarik dari klip 2K yang dikembalikan H3. Set yang sama, cahaya yang sama, pelat sayap dan mata yang bergerak.

Langkah 5: Shot B dengan MiniMax H3 text-to-video, di mana ratio wajib

Tidak ada frame sumber untuk langit, jadi shot B hanya teks. Itu membalikkan aturan ratio dari "diabaikan" menjadi "wajib": untuk prompt teks saja, ratio wajib dan tidak boleh adaptive (MiniMax API Reference, Agustus 2026). Tinggalkan atau kirim adaptive dan Anda langsung mendapatkan 400, sebelum render apa pun dimulai.

Model: minimax/h3/text-to-video. Pengaturan: 2K, durasi 6, rasio 16:9.

text
1The brass bird bursts through a half-open workshop skylight into a rain-washed
2evening sky, wings beating in a whir of gears, droplets spraying off the metal
3feathers as it climbs past wet slate rooftops toward a break of gold cloud.
4Camera cranes up behind it, 24mm, backlit rim from the low sun. Sound: wing
5servos whirring, wind rising, distant church bell, rain fading out. No text.
6
python
1shot_b = create_task({
2    "model": "MiniMax-H3",
3    "resolution": "2K",
4    "duration": 6,
5    "ratio": "16:9",          # wajib di sini. hilangkan atau berikan "adaptive" -> 400
6    "content": [{"type": "text", "text": SHOT_B_PROMPT}],
7})
8download(poll(shot_b)["content"]["url"], "shot-b.mp4")
9

Tangkapan layar antarmuka generator video AI menunjukkan input dan output

Playground MiniMax H3 text-to-video di Atlas Cloud dengan prompt burung terbang dan klip selesai di panel output

MiniMax H3 text-to-video dengan prompt shot B dan Aspect Ratio diatur secara eksplisit ke 16:9. Run ini menggunakan 8 detik default halaman daripada 6 dalam payload di atas.

Langkah 6: Lewati polling dengan callback, dan gema challenge dalam 3 detik

Jika Anda lebih suka diberi tahu daripada bertanya, berikan callback_url pada panggilan create. Hanya ada satu tangkapan, didokumentasikan dalam satu tanda kurung di referensi API, dan itu adalah cara paling umum di mana callback yang di-host sendiri gagal.

Sebelum MiniMax mendorong apa pun kepada Anda, ia mengirimkan permintaan verifikasi yang berisi bidang challenge, dan "Anda harus mengembalikan challenge tidak berubah dalam 3 detik untuk menyelesaikan verifikasi" (MiniMax API Reference, Agustus 2026). Lewatkan dan tidak ada kesalahan di mana pun. Panggilan create Anda terus berhasil, render Anda terus selesai, dan Anda tidak pernah mendapatkan push. Tidak ada di log yang mengatakan mengapa.

Dua belas baris FastAPI, dan urutan di dalamnya adalah intinya:

python
1from fastapi import FastAPI, Request
2
3app = FastAPI()
4
5@app.post("/minimax/callback")
6async def callback(req: Request):
7    body = await req.json()
8    if "challenge" in body:                 # jabat tangan verifikasi, jawab PERTAMA
9        return {"challenge": body["challenge"]}   # tidak berubah, sinkron, tanpa gerbang auth
10    task_id = body.get("task_id")
11    status  = body.get("status")
12    enqueue(task_id, status)                # notifikasi nyata: serahkan, kembali cepat
13    return {"ok": True}
14

Kesalahan yang membunuhnya, dalam urutan seberapa sering saya melihatnya:

  • Permintaan challenge melewati middleware auth Anda dan mendapatkan 401 atau pengalihan. Verifikasi tidak diautentikasi menurut definisi. Whitelist jalur.
  • Handler mendorong challenge ke antrian dan menjawab secara asinkron. Terlambat. Balasan itu harus ada di body respons dari permintaan itu.
  • Nilai di-serialisasi ulang, dipotong, atau dibungkus. Gema byte demi byte.
  • Anda menguji melalui tunnel terhadap server dev serverless, dan cold start saja lebih dari 3 detik. Hangatkan dulu, atau verifikasi terhadap proses yang sudah berjalan.

Polling sama sekali tidak masalah, omong-omong. Jika Anda memiliki segelintir pekerjaan per jam, loop di Langkah 3 lebih sedikit kode dan lebih sedikit yang rusak. Callback berbuah saat Anda memiliki banyak pekerjaan dan tidak ingin poller per pekerjaan.

Langkah 7: Gabungkan dua shot menjadi satu film

Kedua shot kembali sebagai 2560x1440 h264 pada 24fps dengan audio stereo AAC pada 32kHz. Kontainer yang sama, semuanya sama, jadi ini adalah salinan stream daripada re-encode. Tidak ada kehilangan kualitas, tidak ada menunggu.

Satu kejutan kecil yang perlu diantisipasi: meminta 6 detik memberi saya file 6,58 detik. Durasi kembali mendekati apa yang Anda minta, tidak tepat ke bingkai, jadi dua shot bertambah menjadi 14,62 detik, bukan 14 yang bersih.

bash
1printf "file 'shot-a.mp4'\nfile 'shot-b.mp4'\n" > list.txt
2ffmpeg -f concat -safe 0 -i list.txt -c copy brass-bird-two-shot.mp4
3

Output itu adalah video di bagian atas artikel ini. Jika -c copy mengeluh, dua shot Anda memiliki resolusi atau frame rate yang berbeda, yang pada H3 berarti Anda mengubah resolution di antara panggilan. Cocokkan, atau hapus -c copy dan terima satu re-encode.

Variasi Tutorial MiniMax H3 yang Layak Dicuri

Lima hal yang patut dicoba setelah loop di atas berfungsi, dalam urutan kasar seberapa banyak uang yang mereka hemat.

Draf di 768P, selesaikan di 2K. Kedua tingkat adalah model yang sama, dan 768P berharga sekitar 29% lebih murah per detik. Render kandidat Anda pendek dan murah, tonton, lalu jalankan ulang hanya pemenang di 2K dengan prompt yang sama. Di sinilah sebagian besar penghematan dalam daftar shot berada. Tingkat mana yang benar-benar Anda butuhkan untuk pengiriman adalah argumennya sendiri, dan saya membuatnya di 768P vs 2K.

Durasi adalah setiap bilangan bulat dari 4 hingga 15. Bukan satu set preset. Jika aksi mendarat pada 7 detik, minta 7 dan berhenti membayar untuk 8.

Frame pertama ditambah frame terakhir. Kirim item gambar kedua dengan role: "last_frame" dan H3 akan membangun transisi di antara keduanya. Berguna untuk serah terima antar shot yang sudah Anda tata.

Reference-to-video untuk kontinuitas. role: "reference_image" menjaga karakter di seluruh shot alih-alih mengocok ulang wajah mereka setiap generasi. Ada peran reference_audio yang cocok dengan jendela 2 hingga 15 detik untuk klip referensi, yang merupakan cara Anda menjaga suara tetap konsisten. Lihat reference-to-video.

Kepala bicara vertikal. ratio: "9:16" dengan baris dialog dalam prompt adalah penggunaan volume tertinggi model ini saat ini, karena audio keluar dari pass yang sama dan bibir cocok tanpa langkah lip-sync terpisah.

Pembuatan prompt adalah keterampilan terpisah dari pipa async, dan jika shot Anda bersih secara teknis tetapi datar secara visual, masalahnya ada di hulu artikel ini. Mulailah dengan panduan prompt H3.

Berapa Biaya Menjalankan Tutorial MiniMax H3 Ini

Item baris nyata dari run yang menghasilkan film di atas, dikutip oleh tombol Run dan diverifikasi pada 2026-08-12. H3 menagih per detik output dan tarifnya bertingkat berdasarkan resolusi: pekerjaan 2K mengutip $1,12 untuk 8 detik, yaitu $0,14 per detik, dan tarif awal katalog $0,10 adalah tingkat 768P. Ketiga endpoint H3 berada pada harga penuh saat ini, tanpa diskon yang diterapkan.

LangkahModelPengaturanBiaya
Frame pertamaGPT Image 2 text-to-imagekualitas high, 2048x1152$0,1745
Shot AH3 image-to-video2K, 8s$1,12
Shot BH3 text-to-video2K, 16:9, 6s$0,84
Film yang dikirimkan14,6s, dua shot, 2560x1440, audio stereo$2,13
Run tangkapan layar untuk artikel iniH3 i2v + t2v2K, 8s masing-masing$2,24

Perlu dicatat bahwa dua shot yang sama dibuat di 768P akan menjadi $0,80 dan $0,60, bukan $1,12 dan $0,84, sekitar 29% lebih murah, untuk rekaman yang benar-benar dapat Anda nilai.

Dua detail penagihan yang mudah dipelajari dengan cara mahal. Permintaan yang ditolak saat submit tidak dikenakan biaya, jadi 400 pada ratio yang hilang gratis. Permintaan yang merender sesuatu yang tidak berguna tidak gratis: jika pekerjaan mencapai succeeded, Anda dikenakan biaya, bahkan jika outputnya bukan yang Anda inginkan. Itulah argumen nyata untuk membuat draf di 768P.

Tarif per detik, perbandingan 768P dan 2K, dan bagaimana biaya berperilaku di seluruh durasi diuraikan dengan benar di harga API MiniMax H3 pendamping artikel ini. Yang ini adalah kodenya, yang itu adalah tagihannya.

Atribusi dan Wilayah Sebelum Anda Mengirim

Dua hal yang perlu diperiksa sebelum ini dipublikasikan. Ketentuan API MiniMax mencakup kewajiban pembelaan bersyarat yang mencakup klaim paten dan hak cipta terhadap output API, dan kewajiban itu tidak meluas ke merek dagang atau kemiripan, jadi logo yang dapat dikenali atau orang nyata dalam prompt Anda tetap menjadi masalah Anda. Secara terpisah, lisensi bobot terbuka untuk H3 membawa klausul Wilayah yang Dikecualikan, dan klausul itu mengatur bobot yang diunduh dan outputnya, bukan API yang dihosting, yang persyaratannya menyebutkan wilayah layanan AS yang dapat Anda pilih. Baca kontrak mana pun yang benar-benar Anda tandatangani. Dan beri label output H3 sebagai output H3 di UI Anda.

FAQ Tutorial MiniMax H3

Apa saja status tugas MiniMax H3, dan apakah ada yang expired?

Lima: queued, running, succeeded, failed, cancelled. Tidak ada status expired. Dua hal lain yang kedaluwarsa dan sering disalahartikan: URL unduhan di content.url terbatas waktu, dan catatan tugas itu sendiri hanya dapat ditanyai selama 7 hari terakhir.

Apakah saya harus menggunakan callback, atau apakah polling baik-baik saja untuk MiniMax H3?

Polling baik-baik saja dan lebih sedikit kode. Gunakan callback saat Anda memiliki cukup banyak pekerjaan bersamaan sehingga poller per pekerjaan menjadi konyol. Jika Anda melakukannya, endpoint harus menggema bidang challenge kembali tidak berubah dalam 3 detik, secara sinkron, sebelum middleware auth apa pun. Jabat tangan yang gagal tidak menghasilkan pesan error sama sekali, hanya diam permanen.

Mengapa permintaan text-to-video MiniMax H3 saya 400 dengan "ratio is required and cannot be adaptive"?

Karena Anda dalam mode teks saja, di mana tidak ada frame pertama untuk menyimpulkan frame. Berikan nilai eksplisit: 21:9, 16:9, 4:3, 1:1, 3:4 atau 9:16. Aturan yang sama adalah mengapa ratio tampak tidak melakukan apa pun dalam image-to-video, di mana frame pertama yang menentukan dan rasio apa pun yang Anda kirim diabaikan.

Berapa banyak pekerjaan MiniMax H3 yang dapat saya jalankan secara paralel?

Batas yang didokumentasikan berbasis koneksi: 2 tugas bersamaan gratis, 15 berbayar. Di atas batas Anda langsung mendapatkan 429, bukan slot antrian, jadi batasi jumlah in-flight Anda sendiri. Gateway routing terkadang menyerap lebih banyak, dan saya pernah memiliki 20 pekerjaan bersamaan yang semuanya selesai, tetapi saya juga pernah mendapatkan 429 pada pengaturan yang sama di hari lain. Jangan buat penjadwal yang mengasumsikan angka yang lebih tinggi.

URL video MiniMax H3 saya 404 sehari kemudian. Apakah rendernya hilang?

Tidak. URL kedaluwarsa, rendernya tidak. Query task_id yang sama lagi dan respons membawa URL baru, kapan saja dalam jendela query 7 hari. Setelah 7 hari, catatan tugas itu sendiri tidak dapat ditanyai lagi, itulah sebabnya Langkah 2 menyimpan task_id sebelum melakukan hal lain.

Saya mencari "hailuo ai video generator how to use" dan mendarat di tutorial MiniMax H3. Apakah saya di tempat yang tepat?

Ya. Hailuo adalah aplikasi konsumen dan H3 adalah nama model yang digunakan API. Mesin yang sama. Jika Anda menginginkan satu klip, gunakan jalur playground di bagian alur kerja di atas, tanpa kode. Jika Anda menginginkan sepuluh varian atau frame pertama yang dimasukkan dari model lain, tujuh langkah tersebut untuk Anda.

Model Terbaru

Satu API untuk semua AI multimedia.

Jelajahi semua model