https://github.com/antirez/h3.c
Konten terlalu panjang jadi saya meminta Perplexity untuk menulisnya. ㅎ
Bagaimanapun, saya berencana mencobanya besok atau di M5 Air 32G.
Di GitHub, di bagian issue, ada pengalaman pengguna dari orang yang menjalankannya di M5 Air 32G.
Pengenalan dan pengalaman pengguna dengan h3.c milik antirez, mesin C+Metal untuk menjalankan MiniMax H3 langsung di Mac
Baru-baru ini dirilis di GitHub, h3.c adalah mesin inferensi asli untuk model generasi video dan audio MiniMax H3 yang dibuat oleh antirez (Salvatore Sanfilippo) yang terkenal karena Redis.[cite:26][cite:4]
Inti dari proyek ini adalah menjalankan H3 langsung di Mac Apple Silicon hanya dengan C murni + Metal + sedikit Objective-C dan shader Metal, tanpa tumpukan berat seperti Python, PyTorch, atau ComfyUI.[cite:26][cite:5]
Kalimat pertama README resmi mendefinisikan proyek ini sebagai berikut.
Native MiniMax‑H3 inference for Apple Silicon.[cite:26]
Dengan kata lain, tujuannya adalah menjalankan MiniMax H3 di Mac sesecara langsung, cepat, dan akurat mungkin.
Yang dilakukan h3.c
MiniMax H3 adalah model difusi multimodal yang menghasilkan video dan audio secara bersamaan ketika teks dimasukkan.[cite:4][cite:11]
h3.c menjalankan model ini di Mac dengan cara-cara berikut.
Teks → Video + Suara
Menghasilkan video dan audio bawaan secara bersamaan dengan satu baris prompt.[cite:5][cite:6]
Jangkar bingkai pertama/terakhir (FL2VA)
Memasukkan citra statis pembukaan dan penutup memungkinkan H3 untuk menghasilkan "ekstensi berbasis keyframe" yang menghubungkan keduanya dengan lancar.[cite:26][cite:28]
Mode referensi Ref2VA
Memasukkan beberapa gambar, video yang ada, dan klip audio sebagai bahan referensi secara berurutan dengan token seperti , , dapat memandu gaya, komposisi, dan gerakan.[cite:5][cite:27]
Sesi CLI gaya Iris yang interaktif
Setelah model dimuat sekali, menyediakan sesi interaktif berbasis terminal yang memungkinkan eksperimen berkelanjutan dengan mengubah hanya seed sambil mempertahankan prompt dan kondisi yang sama.[cite:5][cite:4]
Mesin itu sendiri dirilis di bawah lisensi MIT, memungkinkan modifikasi kode, redistribusi, dan penggunaan komersial, tetapi bobot MiniMax H3 didistribusikan dengan lisensi terpisah di Hugging Face dan harus dicatat dengan hati-hati.[cite:4][cite:27]
Lingkungan dan Build
Lingkungan yang diperlukan lebih sederhana dari yang dipikirkan.
Berdasarkan README, proses build dasar dan verifikasi informasi adalah sebagai berikut.[cite:26][cite:28]
git clone https://github.com/antirez/h3.c.git
cd h3.c
make -j8
mkdir -p outputs
./h3 --info -d ./MiniMax-H3
Flag --info digunakan untuk memeriksa tata letak model lengkap dan perangkat Metal yang dipilih, tanpa memetakan semua bobot atau menghasilkan video sebenarnya.[cite:26]
Generasi Aktual: Non-interaktif vs Interaktif
Generasi Sekali Non-interaktif
Kombinasi yang diperkenalkan di README sebagai "preset seimbang" kira-kira adalah sebagai berikut.[cite:26][cite:6]
Resolusi: 512×512
Frame: 22 (sekitar 0,9 detik)
Langkah Denoising: 20
Lapisan DiT Aktif: 45
--reuse 2 (hanya 11 langkah dari 20 adalah forward denoiser sebenarnya, sisanya adalah ekstrapolasi)
Perintah contoh berbentuk sebagai berikut.
./h3 --profile \
-d ./MiniMax-H3 \
-p "Seekor rubah merah berjalan melalui salju segar di hutan pinus..." \
--width 512 --height 512 \
--frames 22 --steps 20 \
--layers 45 --reuse 2 \
--show \
-o outputs/fox-fast.mp4
--show ditambahkan agar Anda dapat melihat frame tengah dan urutan akhir di terminal grafis seperti Kitty/Ghostty/iTerm2/WezTerm/Konsole untuk setiap langkah denoising.[cite:26][cite:6]
Sesi Interaktif
Jika dijalankan tanpa prompt, sesi CLI gaya Iris akan dimulai.[cite:26][cite:5]
./h3 -d ./MiniMax-H3 --width 512 --height 512 --steps 6
Pada tahap ini, memasukkan prompt teks akan membuat file video bernomor secara berurutan. Anda dapat menggunakan perintah berikut dalam sesi tersebut:[cite:5]
!status – Menampilkan status sesi saat ini
!seed random – Mengubah seed secara acak
!seconds 2 – Menetapkan durasi dalam detik
!show – Menampilkan frame preview
!save output.mp4 – Menyimpan hasil saat ini ke dalam file
!cache – Men-cache status yang sudah siap untuk digunakan kembali
!first PATH, !last PATH – Menetapkan anchor frame pertama/terakhir
!ref-image PATH – Menambahkan referensi gambar Ref2VA
Cara ini cocok untuk workflow "mengubah prompt dan menjaga DiT·VAE di memori, hanya mengubah seed" untuk eksperimen berulang.[cite:5][cite:4]
Kualitas dan Kecepatan: Tombol Penyetelan
README h3.c hampir seperti tutorial inferensi on-device, dengan detail tentang cara mengubah kualitas dan kecepatan.[cite:12][cite:27]
Berikut adalah beberapa tombol penyetelan yang penting:
Jumlah Langkah Denoising (--steps)
4–7 langkah
Dengan resolusi 512×512 dan 22 frame, jalur 4 langkah membutuhkan waktu sekitar 3.5 detik di M5 Max.[cite:6][cite:11][cite:27]
Menggunakan jalur referensi 29 pass akan memakan waktu 26.4 detik, jadi "detailnya berkurang tetapi dioptimalkan untuk preview dan eksperimen berulang".[cite:12][cite:27]
20 langkah
50 langkah
"Oracle referensi", direkomendasikan di README untuk membandingkan seberapa rusak komposisi, tubuh, dan gerakan dalam mode cepat.[cite:26][cite:28]
Jumlah Lapisan (--layers)
50 lapisan – Menggunakan semua blok DiT, standar kualitas tertinggi.[cite:26][cite:2]
45 lapisan – "Mode thinning lapisan" yang menghapus sebagian lapisan tengah berdasarkan gate. Mengurangi komputasi dan memori sambil mempertahankan sebagian besar kualitas.[cite:26][cite:6]
40 lapisan – Mode preview yang lebih agresif, menghemat kecepatan dan memori tetapi berpotensi menurunkan kualitas.[cite:26]
Penggunaan Ulang Denoiser Seluruhnya vs. Penggunaan Ulang Inti
Pengurangan Token (--token-reduction)
Setelah blok tengah, token video digabungkan secara horizontal dua per dua untuk mengurangi beban komputasi di bagian tail, dan kemudian dipulihkan ke resolusi asli.[cite:26][cite:6]
Angka README yang menunjukkan 39,13 detik → 28,06 detik (sekitar 28% lebih cepat) untuk standar 512×512·50 blok secara khas dikutip.[cite:12][cite:27]
Namun karena komposisi dan detail dapat berubah, fitur ini dibiarkan sebagai "opsi" daripada nilai default.[cite:6][cite:27]
Penskalaan Kanvas Internal (--render-width, --render-height)
Target adalah 512×512, tetapi DiT/VAE internal dijalankan pada 384×384 atau 320×320 dan kemudian di-upscale dengan vImage di akhir.[cite:26][cite:6]
Menurut README, render internal 384 mengurangi waktu DiT sekitar 33% dan waktu VAE 18%, namun hasil fotorealistis masih keluar pada level "bersih dan dapat dikenali".[cite:26][cite:28]
Batasan Resolusi dan Panjang
MiniMax H3 berbasis 24fps, dan jumlah frame yang valid hanya diizinkan dalam bentuk 5 + 17n.[cite:11][cite:26]
Kombinasi yang secara khas diringkas dalam README dan artikel eksternal adalah sebagai berikut.[cite:26][cite:28]
22 frame – sekitar 0,92 detik
39 frame – sekitar 1,63 detik
56 frame – sekitar 2,33 detik
107 frame – sekitar 4,46 detik
243 frame – sekitar 10,1 detik
362 frame – sekitar 15,1 detik
Resolusi harus lebar dan tinggi masing-masing kelipatan 32, dan produk keduanya tidak boleh melebihi 768 × 1344.[cite:6][cite:11]
Kombinasi kanvas yang valid dan telah diverifikasi berulang kali adalah 512×512, 768×768, 1344×768, 768×1344, 1024×768, 768×1024, dan kanvas pratinjau native 256×256.[cite:6][cite:27]
Mode 256×256 adalah mode "pratinjau cepat" yang secara otomatis mengurangi koordinat RoPE hingga separuhnya, dan hasil eksperimen yang dilaporkan dalam README menunjukkan bahwa mode ini menghilangkan artefak pola berulang dalam render lebar panjang sambil mempertahankan komposisi stabil dalam gambar dan potret.[cite:26][cite:27]
Kinerja dan Memori: Angka Sebenarnya
Menggabungkan berbagai artikel dan README, karakteristik kinerja dan memori h3.c secara kasar adalah sebagai berikut.
Klip 4 langkah 512×512·22 frame
Benchmark yang selesai dalam sekitar 3,5 detik berdasarkan M5 Max secara berulang-ulang dikutip dalam README dan blog eksternal.[cite:6][cite:11][cite:27]
Menjalankan klip yang sama melalui jalur referensi 29 pass membutuhkan waktu sekitar 26,4 detik, dan perbedaan kualitas antara jalur cepat diukur pada level SSIM sekitar 0,55.[cite:12][cite:27]
Preset 20 langkah + layer 45 + reuse 2
Angka yang diringkas dalam README menunjukkan sekitar 16,7 detik pada standar 512×512, dan dengan penambahan pengurangan token dapat dikurangi hingga 12,60 detik.[cite:6][cite:27]
Jalur lengkap BF16 vs int8
Benchmark yang juga dirangkum dalam artikel eksternal menunjukkan jalur BF16 MPSGraph sebesar 36,30 detik pada standar 50 layer·512×512, mengubah MLP menjadi int8 menjadi 25,80 detik, dan mengubah hingga QKV menjadi int8 menjadi 19,32 detik.[cite:12][cite:4][cite:27]
Penggunaan memori
Checkpoint transformer H3 itu sendiri sekitar 33GiB, dan README serta artikel melaporkan bahwa ketika menjalankan seluruh pipeline video+audio, memori fisik puncak mencapai sekitar 40GiB.[cite:11][cite:28]
Menggunakan jalur int8 mengurangi penyimpanan puncak tensor dari 36,4GiB → 25,9GiB, tetapi Mac dengan kapasitas 64–128GB masih direkomendasikan.[cite:12][cite:27]
Lisensi dan Peringatan Hukum
Satu poin penting adalah bahwa lisensi kode engine dan lisensi model terpisah.
Kode h3.c itu sendiri dirilis di bawah lisensi MIT, memungkinkan modifikasi, redistribusi, dan penggunaan komersial.[cite:4][cite:27]
Namun bobot MiniMax H3 didistribusikan di bawah lisensi terpisah dari Hugging Face, dan ada artikel analisis yang menunjukkan bahwa lisensi mencakup ketentuan yang membatasi penyebaran lokal dan penggunaan komersial di wilayah tertentu seperti UE, Inggris, Amerika Serikat, dan Korea.[cite:27][cite:28]
Dengan kata lain, tanggung jawab hukum antara "orang yang mengimplementasikan engine" dan "orang yang mengunduh bobot dan benar-benar menjalankannya" berbeda, dan bahkan jika digunakan untuk tujuan penelitian dan pengujian di negara tersebut, lisensi harus dibaca dengan cermat dan dipatuhi.[cite:27][cite:28]
Siapa yang Seharusnya Menggunakan Proyek Ini?
Dalam bidang video dan AI, h3.c menempati posisi yang cukup khusus.
Bagi pengguna umum, ini bukan alat "siap pakai UI Web yang hanya perlu menekan tombol sekali untuk menghasilkan video indah", tetapi bagi orang-orang berikut ini adalah proyek yang sangat menarik.
Kreator & Pengembang Berbasis Mac
Insinyur yang Tertarik pada Optimisasi Inferensi Pada Perangkat
Jika ingin mempelajari pola-pola optimisasi seperti Metal 4/TensorOps, kuantisasi int8, fusi RoPE/RMS, alias aktivasi, dan encoder teks streaming melalui kode dan benchmark sebenarnya.[cite:12][cite:27]
Pengembang yang Ingin Membuat Mesin Video Mereka Sendiri
Sebaliknya, jika hanya ingin dengan cepat menghasilkan "video hasil yang bagus", tidak perlu turun ke level Metal·C, dan masih perlu dipertimbangkan bahwa Web UI dan alat Python tetap lebih nyaman dalam hal aksesibilitas dan ekosistem plugin.[cite:5][cite:14]
Imajinasi Penggunaan Pribadi
Dengan asumsi memiliki Mac kelas M5 Max + 96–128GB, jika menggunakan h3.c secara pribadi, alur kerja kurang lebih dapat diatur seperti ini.
Menyelaraskan Komposisi dan Garis Aksi dengan Cepat melalui Pratinjau Asli 256×256
Memvalidasi karakter dan pekerjaan kamera terlebih dahulu dalam mode pratinjau cepat dengan optimisasi RoPE.[cite:26][cite:27]
Menggunakan 512×512·20 langkah·lapisan 45·reuse 2 sebagai Jalur Dasar
Sambil menyalakan dan mematikan pengurangan token dan pengurangan kanvas internal (384/320) tergantung situasi, temukan titik optimal antara kualitas dan kecepatan.[cite:6][cite:27]
Validasi Kualitas Shot Akhir dengan Peramal 50 Langkah
Jalankan jalur BF16/referensi 50 langkah sekali dengan prompt, resolusi, dan jumlah frame yang sama, untuk memverifikasi bahwa mode pratinjau tidak merusak komposisi, anatomi, atau gerakan secara signifikan.[cite:26][cite:12]
Eksperimen Perpanjangan Berbasis Referensi
Masukkan shot fotografi realistis yang ada dengan --ref-silent-video, dan biarkan H3 hanya mewarisi gerakan, atau
letakkan beberapa potret dengan kondisi , Anda dapat bereksperimen dengan "morphing gaya" untuk membuat video bergaya album foto.[cite:26][cite:5][cite:27]
Untuk merangkum, h3.c lebih dekat dengan mesin eksperimental yang mengungkap internal model generasi video sambil menarik kinerja pada perangkat Mac hingga batas maksimal, daripada "alat generasi video untuk penggunaan langsung di industri".[cite:11][cite:12]
Dari perspektif itu, ada banyak wawasan yang dapat diperoleh hanya dengan membaca README dan kode, jadi bagi mereka yang tertarik pada optimisasi model LLM/video pada perangkat, proyek ini layak untuk dilihat setidaknya sekali.[cite:12][cite:27]
▶ Sumber Asli: https://github.com/antirez/h3.c