MiniMax H3 Audio Conditioning (T8)
The one conditioning node that runs every MiniMax H3 video task
- clip
- video_vae
- audio_vae
- drive_audio
- final_audio
- first_frame
- last_frame
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- positive
- av_latent
- mux_audio
- conditioned_prompt
- media_map_json
- report
If you run MiniMax H3 in ComfyUI at all, this is the node you'll wire up first. MiniMaxH3AudioConditioningT8 is the unified front door for every task type H3 supports - T2VA, I2VA, FL2VA, L2VA, Ref2VA and hybrid - plus the thing that makes H3 different from every other video model: the audio isn't an afterthought. It's generated in the same transformer pass as the picture, and this node is where you tell it what to do with sound.
MiniMax H3 is the 33B open-weight omni-modal model MiniMax dropped in August 2026, generating 4–15 second clips with native stereo audio at up to 2K/24fps. One conditioning node handles all of it because all six tasks are the same joint audio-video latent, just with different reference inputs attached. That's the design win: one node, one interface, six workflows.
The inputs that matter
- clip / video_vae / audio_vae - the native Qwen3-VL CLIP plus the two H3 VAEs. There's no way around having all three; H3 keeps video and audio in separate VAE spaces inside one joint latent.
- prompt - plain text with H3's media tags. Reference a sound as
<Audio 1>, a picture as<Picture 1>, a clip as<Video 1>. Numbering must match what you actually connect, or strict mode throwsprompt media tag validation failedinstead of guessing. - task_type - leave it on
autoand the node infers T2VA vs I2VA vs Ref2VA from which optional inputs you've connected. - audio_mode - the setting that decides your whole sound strategy.
lock_source(default) preserves the source audio latent so H3 keeps your original sound;remix_sourcedenoises and rebuilds it;reference_onlyandnativegenerate brand-new target audio. Want a character to say the exact line from your reference?lock_sourceplusadd_source_as_referenceis the recipe. - length - frames at 24fps, and it snaps up to the H3
17n+5grid (22, 124, 362…). Don't fight the grid; pick a number and let it snap.
The outputs - and the trap
It outputs positive conditioning, the av_latent, mux_audio, plus a conditioned_prompt and media_map_json you can eyeball to confirm your tags bound correctly.
Here's the trap the README hammers on: after sampling, save audio from the mux_audio output of this node - not generated_audio from the AV decode node. mux_audio carries your locked/clean source track through to the final file; generated_audio is whatever the joint transformer happened to produce, which in native or remix modes can be a different voice. One wrong wire and you get a character who swapped voices mid-clip. Also note: drive_audio is a generation condition, not a deterministic lip-sync guarantee. If you need broadcast-grade mouth sync, H3 gives you the base and you finish it with a dedicated lip/face tool.
Install
ComfyUI Manager → search MiniMax H3 Audio T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart, then start from examples/workflows/01-basic-generation - the README's own advice is 22 frames on a small canvas first. No forced pip dependencies, no automatic weight downloads; the H3 model, CLIP and VAEs are yours to place. And if you're in the US, EU, UK or Korea, remember the H3 Community License excludes those territories even though the weights are on HuggingFace - the API route is the licensed path there.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | Native MiniMax H3 Qwen3-VL CLIP. | |
| video_vae | VAE | MiniMax H3 video VAE. | |
| audio_vae | VAE | MiniMax H3 audio VAE. | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | 24fps; snapped up to the 17n+5 H3 grid. |
| task_type | COMBO | auto | 7 options: auto, T2VA, I2VA, FL2VA, L2VA, Ref2VA, +1 |
| audio_mode | COMBO | lock_source | lock_source preserves source latent; remix_source denoises it; reference_only/native generate target audio. |
| audio_denoise_strength | FLOAT | 0.350–1 | — |
| add_source_as_reference | BOOLEAN | true | Presents drive_audio to Qwen/DiT as an official <Audio N> reference. |
| prompt_primary_audio_ordinal | INT | 10–9 | Prompt audio ordinal intended as the primary source; remapped after video soundtracks. Use 0 to disable. |
| strict_prompt_tags | BOOLEAN | true | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| reference_video_policy | COMBO | official_2_to_15s | 2 options: official_2_to_15s, model_minimum |
| drive_audioopt | AUDIO | — | |
| final_audioopt | AUDIO | Optional clean/stem track passed through for final mux; defaults to drive_audio. | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — | |
| allow_above_reference_areaopt | BOOLEAN | false | Allows an explicitly requested canvas above the 1920x1088 reference area. Intended for learned two-pass high-resolution workflows; no VRAM guarantee is implied. Old workflows remain false by default. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| av_latent | LATENT | — |
| mux_audio | AUDIO | — |
| conditioned_prompt | STRING | — |
| media_map_json | STRING | — |
| report | STRING | — |