H3 Turbo Mixed Reference Fix (3-to-2)
The One-Wire Fix for MiniMax H3 Turbo's 3-vs-2 Tensor Error
- conditioning
- conditioning
MiniMax H3 is the 33B omni-modal video model that finally gave open weights a native-audio answer to Veo, and it landed in ComfyUI with day-zero support. The catch is the fast path. Run H3 in Turbo/Fast mode with both a visual reference (an image or a video) and a separate audio reference, and the Turbo adapter can blow up over a tensor size mismatch - 3 versus 2. That is all this node exists for: a two-line fix you insert into one wire.
When you actually reach for it
Only when all three are true at once:
- H3 is in Turbo/Fast mode (the distilled speed path - 6 steps in the author's verified runs, the same "distilled adapters want their own settings" logic that applies to every Lightning/Turbo/DMD tune out there).
- Your H3 node has a visual reference and an independent audio reference.
- The adapter reports the
3vs2mismatch.
Anything else, and this node is dead weight. The README says it plainly: in Quality/original mode, wire conditioning straight into BasicGuider. Image-only or audio-only? The author's routing tests confirm the node is inert there - the right design for a compatibility shim.
How it works
Reference-to-video conditioning carries condition-time rows: target, visual reference, audio reference. Three. The Turbo adapter wants the two-row layout.
apply_fix doesn't touch a pixel. It calls ComfyUI's node_helpers.conditioning_set_values and writes the same value into two conditioning metadata keys - minimax_visual_cond_noise_aug and minimax_audio_cond_noise_aug. Giving the visual and audio reference rows a shared condition time merges them into a single reference row, so three becomes two and the adapter stops complaining. That's the whole trick, and it's why the display name says "3-to-2".
Worth internalizing: it doesn't modify your source image, video, or audio, and it doesn't patch ComfyUI or the third-party Turbo extension - it only rewrites the conditioning dictionary the H3 sampler is about to read. Which is also why it's inert anywhere else. Plumbing in the strict sense: it touches no pixels. You won't build a workflow around it, you'll unblock one.
The inputs and output that matter
Two inputs, one output, and you'll only ever think about one of them:
- conditioning - the
CONDITIONINGfromMiniMaxH3ReferenceToVideo. This is the socket the node repairs. - shared_reference_time - a float, 0 to 1, default
1.0. The author's own tooltip: "Use 1.0 for MiniMax H3 Turbo mixed visual and audio references." Set it and forget it; the range exists so the merge point is adjustable, not because you'll tune it mid-error. - conditioning (output) - feeds
BasicGuider.
MiniMaxH3ReferenceToVideo
-> H3 Turbo Mixed Reference Fix (3-to-2)
-> BasicGuider
That's the entire graph change. Nothing else in the workflow moves.
Installing it
There's no model to download and no Python packages at all - pyproject.toml lists dependencies = [] and there's no requirements.txt in the repo. One of the few packs that can't contribute to dependency hell.
cd ComfyUI/custom_nodes
git clone https://github.com/hong87LH/Hongs-node.git Hongs-node
Restart ComfyUI and it shows up under Hongs Nodes/MiniMax H3. If the pack is indexed, ComfyUI Manager can do the same thing by searching "Hongs-node"; the clone is the guaranteed path either way. The pack is one node at version 0.1.0, "Hongs" being the author in the pyproject metadata.
One maintenance note from the README: saved workflows store the node's registration key (H3TurboMixedReferenceFix), so don't rename things in a forked copy unless you want every workflow using it to report a missing node.
Where people get burned
It's in the wrong spot. It has to sit between the reference-to-video node and BasicGuider. Dropping it after the guider does nothing - that conditioning is already consumed.
Video references are expensive. The author verified the combos at 360P, 3:4, 3 seconds, 6 steps - 1 image + 1 audio, 2 images + 1 audio, 1 video + 1 audio, 1 image + 1 video + 1 audio, and 1 image + 2 audio all passed. Image-plus-audio is cheap; anything with a video reference eats substantially more time and memory. Start at the lightest combination that does the job.
Fault failed: 2 in the audio VAE after a few heavy jobs is not this. The README is explicit: that's a model paging/offload state failure, not the row mismatch, and a clean ComfyUI restart recovered the tested tri-modal job. If you've been hammering video-reference combos back to back, restart before you start rewiring the graph.
Check whether you still need it. The moment the Turbo adapter or H3's own ComfyUI support accepts the three-row layout, this node becomes a permanent bypass - check the pack's changelog. And check you're genuinely in Turbo/Fast mode before blaming it: that mismatch doesn't happen in Quality mode at all.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| shared_reference_time | FLOAT | 1.0000–1 | Use 1.0 for MiniMax H3 Turbo mixed visual and audio references. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |