MiniMax H3 • Stream Denoise Controls
Keep the audio, regenerate the picture — H3 streams on separate dials
- av_latent
- av_latent
Here's the trick that makes H3's joint video+audio latent actually feel like a superpower: you can regenerate the picture while the soundtrack stays exactly where it was, or vice versa, with two sliders. MiniMaxH3LatentLabStreamDenoise gives the video stream and the audio stream independent denoise strengths, expressed through ComfyUI's stock noise_mask path - so the sampler you already have understands it.
The rule is simple and it's straight from the node's own description: 0 preserves a stream, 1 fully regenerates it.
video_denoise(FLOAT, default 1.0) - how much of the video gets re-rolled.audio_denoise(FLOAT, default 1.0) - how much of the audio gets re-rolled.merge_mode- how these new per-stream masks combine with any mask already on the latent:replace,multiply,minimum, ormaximum.
One av_latent in, one av_latent out, and the node is done - the actual regen happens downstream in the sampler that reads the noise mask.
The workflows this unlocks
- "Keep my performance, fix the visuals" - set
audio_denoiseto 0 andvideo_denoiseto 1. The model re-samples the picture with the audio latent frozen as context. This is the core of the pack's lip-sync path. - "Swap the sound, keep the shot" - the reverse. If your video is exactly what you want but the room tone is wrong, pin video at 0 and let audio regenerate.
- Gradient control - a value of 0.5 isn't a blend in the frame sense; it's how much of the stream's noise gets re-added. Think of it as "how much do I trust this pass" rather than an opacity mixer.
merge_mode matters once other nodes (like the Video Inpaint mask) have already written a noise mask. replace overwrites the mask wholesale - usually what you want at the top of a branch; multiply/minimum/maximum let you intersect a stream-level mask with a spatial one. For a beginner, replace is the safe default until you hit a case where you're combining masks deliberately.
Install
Part of the one-pack setup, with no extra Python dependencies:
cd ComfyUI/custom_nodes
git clone https://github.com/vizart-vj/ComfyUI-MiniMax-H3-LongMedia
Restart ComfyUI, or search "MiniMax H3 LongMedia" in ComfyUI Manager. The H3 checkpoint, video VAE and audio VAE live in ComfyUI's model folders via its native H3 support - the pack itself is pure code.
Gotchas
- Denoise values are clamped to [0, 1]; the node raises if you feed it out-of-range numbers.
- If
audio_denoise = 0doesn't seem to freeze the audio, check that nothing downstream (like a Replace Stream node) is stomping the mask with areplacemerge mode. - The MiniMax H3 weights are excluded from the US, EU, UK and South Korea under the community license - a pack-wide caveat, not specific to this node.
Two sliders and a merge mode, and you've got per-stream control over one of the most advanced open video models there is. It's the node you'll reach for every time someone says "love the clip, hate the audio" - or the reverse.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| av_latent | LATENT | — | |
| video_denoise | FLOAT | 1.000–1 | — |
| audio_denoise | FLOAT | 1.000–1 | — |
| merge_mode | COMBO | 4 options: replace, multiply, minimum, maximum |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |