Passa al contenuto principale

MiniMax H3 (Hailuo 3.0): il modello video omni open-weight

Intermedio

Il 3 agosto 2026 MiniMax ha pubblicato i pesi di MiniMax-H3 (nome consumer: Hailuo 3.0) su Hugging Face — un Transformer single-stream da 33 miliardi di parametri che trasforma testo, immagini, video e riferimenti audio in clip di 4–15 secondi fino a 2K/24fps con audio stereo nativo, tutto generato in un solo passaggio. Quest'ultima parte è quella interessante: non c'è uno stage TTS separato, nessuna pipeline SFX aggiunta a posteriori. Dialoghi, rumore d'ambiente e immagine escono insieme, dallo stesso modello.

Tre giorni prima l'API a pagamento aveva aperto a $0.1625/secondo per 2K (~$9.75/minuto di video), circa metà del costo di Kling 3.0 o Seedance 2.0 a risoluzione paragonabile. Nelle classifiche Artificial Analysis i punteggi single-run mettono H3 #1 nel video editing con audio, top-tre in text-to-video e image-to-video. Quella combinazione — qualità video di livello frontier, pesi aperti e prezzo onesto sotto i $10/minuto — è ciò che ha messo H3 in ogni feed di media generativi questa settimana.

Questa pagina è quello che la maggior parte degli altri articoli si perde: le parti che determinano se H3 sia davvero utile a te.

What you'll learn
  • Capire l'architettura di H3 — Transformer single-stream, H3-VAE, MM-RoPE — e perché produce video e audio in un solo forward pass
  • Conoscere le tre insidie del self-hosting che nessuno mette sulla landing page: la licenza geo-ristretta, il tetto a 768p sulla base open e il trucco del parameter-skip AdaLN
  • Ottenere un percorso self-hosted funzionante: minimo 42.5 GB di pesi, scelte di quantizzazione e come una scheda da 12 GB lo esegue con offloading
  • Provare H3 dall'API con un cURL reale copiabile, e conoscere i limiti sulla forma dell'input (max 12 file, body ≤64 MB, solo URL pubblici)
  • Scegliere tra H3 e le alternative chiuse (Kling 3.0, Seedance 2.0, Veo, Sora) con tie-breaker chiari su prezzo, controllo e licensing

Tre cose su H3 che non sono ovvie dai titoli

1. La Community License blocca il self-hosting in USA, UE, UK e Corea del Sud

La model card su Hugging Face rimanda a un MiniMax H3 Community License Agreement il cui testo è application-gated per quattro regioni: Stati Uniti, Unione Europea, Regno Unito e Repubblica di Corea. In pratica: se tu o la tua organizzazione siete in uno di quei posti e volete eseguire H3 sull'hardware vostro (o servirlo ai vostri utenti), dovete prima completare la domanda di licenza H3 su platform.minimax.io/h3-license. La restrizione si estende agli output, non solo ai pesi — un dettaglio che la maggior parte dei repost si perde.

Se sei fuori da quelle regioni si applica la Community License standard. Se sei dentro, tratta l'API come percorso di default finché la tua domanda non viene approvata, oppure fai passare la licenza dal legal della tua org prima di spedire qualsiasi cosa che tocchi i pesi. È una restrizione reale, applicabile — non la solita clausola "per favore non fate cose brutte".

2. La base open si ferma a 768p — il 2K esiste solo dentro l'API

Ogni titolo "fino a 2K" su H3 elude un dettaglio chiave: i modelli base a pesi aperti (Base FL2VA per text-to-video / first-last-frame, Base Ref2VA per multi-reference) generano a 768p. L'output 2K che la gente ammira sull'app Hailuo viene da H3-Regenerate-2K, un upsampler in-context che gira dopo il modello base e che MiniMax non ha reso open-source. Anche H3-Context-IR, il preprocessore multimodale delle istruzioni, è solo API.

La conseguenza per i self-hoster è semplice: ottieni la stessa qualità di generazione su cui è costruito il sistema frontier, ma ti fermi a 768p a meno che tu non concateni un tuo upscaler (Topaz, ESRGAN, un upsampler di diffusione) a posteriori. Va bene per molti casi d'uso — 768p a 24fps sono più che sufficienti per clip social, storyboard e iterazione rapida — ma non è lo stesso prodotto del tier a pagamento.

3. Circa 13 B dei 33 B parametri sono branch AdaLN che puoi precomputare e saltare

La model card scompone l'H3-Omni-Transformer come un Transformer single-stream dense da 33 B di cui circa 13 B di parametri vivono in branch legati ad AdaLN. AdaLN (Adaptive Layer Norm) è il modo in cui i transformer stile diffusion assorbono i segnali di conditioning (timestep, classe, embedding testuale) — e i suoi output, per slot di conditioning, sono precomputabili. È così che i provider terzi raggiungono una configurazione di lavoro minima di 42.5 GB anche se i pesi BF16 naive sono molto più grandi: combinano un checkpoint INT8 prunato (~20 GB) con un text encoder NVFP4 AWQ (~16 GB) ed entrambi i VAE (~5.8 GB), e saltano i pesi delle branch cachate al momento dell'inferenza.

La regola pratica dall'ecosistema ComfyUI: una scheda da 12 GB può eseguire H3 con offloading CPU/RAM, al costo di tempi di rendering più lunghi per clip. Con 24 GB o più, l'offload non serve.

Cos'è davvero H3 (l'architettura in una pagina)

H3 è un Transformer single-stream, agnostico alla modalità. C'è uno stack di attention, uno stack FFN, e token video/audio/text passano tutti attraverso di esso. I quattro componenti che carichi davvero sono:

ComponenteRuoloOpen-sourced?
H3-Omni-TransformerGeneratore dense da 33 B (video + audio)✅ (BF16, INT8, INT8 prunato)
H3-EncoderEncoder testo/visione multimodale — riusa gli hidden state del layer-50 di Qwen3-VL-32B
H3-VisualVAEAutoencoder video temporal-causal, compressione f16t4d24
H3-AudioVAEAudio stereo, output 32 kHz, rate temporale 40 Hz
H3-Context-IRPreprocessore multimodale delle istruzioni❌ solo API
H3-Regenerate-2KUpscaler in-context a 2K❌ solo API

Due scelte di design meritano di essere richiamate per chi confronta H3 con altri modelli video:

  • Positional embedding 3-D MM-RoPE. Le posizioni rotative sono estese a tre assi (spaziale x, spaziale y, tempo), così la coerenza temporale è incorporata nel pattern di attention invece che aggiunta da un modulo temporale separato. È una delle ragioni principali per cui H3 mantiene stabili identità del soggetto e illuminazione su clip di 15 secondi.
  • H3-VAE dà un guadagno effettivo di 4× sulla lunghezza di sequenza. Il tokenizer custom impacchetta più pixel per token dei VAE standard usati dai precedenti modelli video open — è ciò che rende trattabile l'output 2K a questa classe di parametri.

Il passaggio audio nativo è l'altro differenziatore. Poiché dialoghi, SFX e rumore d'ambiente sono generati nello stesso forward pass dell'immagine, lip-sync e audio diegetico escono coerenti di default. L'audio di riferimento (WAV/MP3, 2–15s per clip, fino a 3 clip) abilita voice cloning; ma i riferimenti audio devono accompagnare un riferimento immagine o video — l'API rifiuta input solo audio.

La matematica del self-hosting

Se pianifichi di eseguire H3 in locale, questi sono i numeri che determinano cosa ci sta:

CheckpointModello di diffusioneText encoderEntrambi i VAEMinimo funzionante
BF16 (riferimento)61.7 GB48.0 GB5.82 GB~115 GB
INT831.7 GB25.3 GB5.82 GB~63 GB
INT8 prunato + NVFP4 AWQ TE19.5 GB14.6 GB5.82 GB~42.5 GB

VRAM: 24 GB comodamente, 12 GB con offload (più lento per clip). Le config esempio SGLang usano 4 GPU per il serving.

Guided walkthrough1 of 4
  1. Il supporto nativo H3 è stato mergiato in ComfyUI lo stesso giorno in cui sono usciti i pesi (3 agosto 2026). Fai pull dell'ultima versione e i nuovi nodi H3 compaiono automaticamente.

Chiamare H3 tramite l'API

L'API è REST + polling. Fai POST di un job, ricevi un task_id, e fai polling su un endpoint di query finché status == "succeeded". Solo URL pubblici funzionano — payload Base64 sono rifiutati, e il body totale della richiesta è cappato a 64 MB. Limiti sui riferimenti: ≤9 immagini, ≤3 clip video, ≤3 clip audio, 12 file totali, prompt ≤7 000 caratteri.

H3 text-to-video con una voice reference (Python)

import os, time, requests

headers = {"Authorization": f"Bearer {os.environ['MINIMAX_API_KEY']}"}

payload = {
  "model": "MiniMax-H3",
  "content": [
      {"type": "text",
       "text": "Wide shot: a lighthouse keeper walks onto the balcony and says, 'Follow the wind, live free.' Voice follows reference audio 1."},
      {"type": "audio_url",
       "audio_url": {"url": "https://example.com/voice-ref.mp3"},
       "role": "reference_audio"},
      {"type": "image_url",
       "image_url": {"url": "https://example.com/lighthouse.jpg"},
       "role": "reference_image"},
  ],
  "resolution": "2K",   # 2K is the only value the API accepts right now
  "duration": 8,        # seconds, 4–15
  "ratio": "16:9",
}

task_id = requests.post(
  "https://api.minimax.io/v2/video_generation",
  headers=headers, json=payload,
).json()["task_id"]

while True:
  time.sleep(10)
  task = requests.get(
      f"https://api.minimax.io/v2/query/video_generation/{task_id}",
      headers=headers,
  ).json()["task"]
  if task["status"] == "succeeded":
      print(task["video_url"])
      break
  if task["status"] == "failed":
      raise RuntimeError(task)

H3 in locale via diffusers (self-host, 768p)

from diffusers import DiffusionPipeline
import torch

pipe = DiffusionPipeline.from_pretrained(
  "MiniMaxAI/MiniMax-H3",
  dtype=torch.bfloat16,
  device_map="cuda",
)

video, audio = pipe(
  prompt="Slow dolly-in on a neon-lit ramen shop at night; steam rising; jazz sax outside.",
  num_frames=24 * 8,   # 8 seconds at 24 fps
  height=768, width=1344,
  generator=torch.manual_seed(42),
)
video.save("ramen.mp4"); audio.save("ramen.wav")

H3 vs le API video chiuse — quando vince ciascuna

MiniMax H3Kling 3.0Dreamina Seedance 2.0Sora / Veo (frontier chiuso)
Risoluzione max (API)2K/24fps1080p1080p1080p–4K (variante)
Audio nativo✅ dialogo + SFX + rumore d'ambienteStage separatoStage separato✅ (Sora 2), ✅ (Veo)
Pesi aperti✅ (Community, geo-ristretti)
Costo per minuto (tier paragonabile)~$9.75 (2K + audio)~$20 (1080p)~$22 (1080p)Più alto & rate-limited
Controllo riferimenti≤9 immagini, ≤3 video, ≤3 audioSimileMeno slotMeno slot
Migliore perMassima fedeltà output al minimo $/min; on-prem/self-host se fuori dalle regioni ristretteStabilità di stile su shot lunghiLook cinematico, fedeltà al promptQuando non puoi far uscire i prompt verso un vendor cinese e serve rifinitura frontier

Prendi H3 quando ti serve audio-in-frame a 2K, quando il tuo costo/minuto conta e le API chiuse farebbero saltare il budget, o quando la compliance ti obbliga a tenere la generazione on-prem e la tua situazione legale sblocca la Community License. Salta H3 quando il tuo team vive in una delle regioni ristrette e non hai ancora sbloccato la domanda, quando il tuo workflow dipende dal 4K nativo, o quando non puoi inviare prompt a un'API cinese (il tier a pagamento è hostato da MiniMax; non ci sono mirror in US region al lancio).

Quiz

Check yourself

0/4
  1. I checkpoint base H3 a pesi aperti su Hugging Face generano video a quale risoluzione massima?
  2. Secondo la MiniMax H3 Community License, quali regioni attualmente richiedono una domanda per fare self-host dei pesi?
  3. L'H3-Omni-Transformer ha 33 B parametri. Cosa c'è di speciale in circa 13 B di essi?
  4. Quale di questi è un limite reale dell'API H3 a pagamento oggi?
Premi Invio o Spazio per girare la carta. Usa le frecce sinistra e destra per spostarti tra le carte.Termine mostrato.
1 / 9

Fonti & approfondimenti