Nodes/ComfyUI-Easy-Media/Easy MiniMax H3 Audio Lock
ComfyUI Node

Easy MiniMax H3 Audio Lock

Lock the audio you already have and let H3 animate to it

By yolain·Created 4 months ago·Updated about 23 hours ago· 184
Easy MiniMax H3 Audio Lock
  • latent
  • audio_vae
  • audio
  • latent
remix_strength1.00
short_audio_modesilence
prepend_frames0
frame_rate24.00

Most video models regenerate whatever audio they feel like. MiniMax H3 generates sound jointly with the picture, which is great - until you have a specific soundtrack, a voiceover, or a music bed you need in the output. easy minimaxH3AudioLock is the node that says "no, this audio is final; make the video fit it." In the MultiTrack pipeline this is the "Lock audio" feature on the audio track; used standalone, it's how you force H3 to animate to audio you bring.

What "lock" actually means here

The trick is the H3 per-stream noise mask. The node takes your joint audio/video latent, splits off the video and audio streams, encodes your supplied audio with the H3 audio VAE, and splices it into the audio stream of the latent. Then it sets the audio stream's mask so the sampler is told "this part is given - don't denoise it" (hard-locked), while the video stream stays free to denoise. The video is generated to accompany the locked audio. At remix_strength = 1.0 the audio is fully locked; at 0.0 it's ignored and H3 regenerates audio freely, with values between doing a partial mix.

Mechanically, a few things happen before encoding:

  • Audio is resampled to the audio VAE's sample rate - via torchaudio, which is a runtime requirement if your input isn't already at that rate. If torchaudio isn't installed you get an explicit error, not a silent wrong-speed result.
  • Short audio is handled by short_audio_mode: silence pads the tail with silence; loop repeats the clip to fill the segment. (The H3 audio latent runs at 40fps internally, so "fill the duration" is a precise frame-counting job.)
  • prepend_frames inserts silent video frames before the locked audio - it exists to realign audio after context-prefix trimming, and it's mostly relevant inside the project pipeline. You'll rarely touch it by hand.

The inputs that matter

  • latent - the H3 joint audio/video latent (from an encode node). Shape-validated: video [B,24,T,H,W], audio [B,32,2,T].
  • audio_vae - the MiniMax H3 audio VAE, not the video one.
  • audio - the AUDIO you're locking in.
  • remix_strength - 1 hard-locks, 0 fully regenerates. The dial between is where the interesting half-referenced results live.
  • short_audio_mode - silence or loop.
  • frame_rate - the video frame rate your timeline uses (default 24).

One output: latent - the joint AV latent with your audio locked in, ready for the sampler.

Installation

Same pack as the rest of Easy-Media:

# FFmpeg first (the README's hard requirement)
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Media

Restart ComfyUI or install via Manager (search "ComfyUI-Easy-Media"). If your source audio isn't already at the audio VAE's sample rate, you need torchaudio in the environment (pip install torchaudio inside ComfyUI's Python). The H3 model and its audio VAE are the big downloads, as always.

Troubleshooting

  • "torchaudio is required to resample MiniMax H3 lock audio" - install torchaudio, or feed audio already at the VAE's sample rate.
  • Audio is there but the video ignores it - check remix_strength; at 0 the audio is deliberately not locked. Also make sure you connected the audio VAE, not the video one.
  • Timing drift / audio starts late - that's prepend_frames territory: after context trimming the audio alignment shifts by the trimmed prefix, and this node's prepend compensates. Inside the pipeline the project node handles it; standalone, you may need to set it yourself.
  • "Invalid H3 audio latent shape" - the latent input isn't a real joint AV latent (or has batch size > 1). It must come from H3's encoder, not a generic latent source.

This node is why "H3 with my own audio" stops being a workaround and becomes a setting. It's also quietly the difference between a MultiTrack project that keeps your music intact and one that re-composes it every segment.

CategoryEasyUse/Audio

Inputs (7)

NameTypeDefaultDescription
latentLATENTMiniMax H3 joint audio/video latent.
audio_vaeVAEMiniMax H3 audio VAE.
audioAUDIOAudio to lock into the H3 latent.
remix_strengthFLOAT1.000–10 fully regenerates audio; 1 hard-locks the supplied audio.
short_audio_modeCOMBOsilencePad short audio with silence or loop it before encoding.
prepend_framesINT00–3600Silent video-frame duration inserted before locked audio. Used to align audio after context-prefix trimming.
frame_rateFLOAT24.001–240

Outputs (1)

NameTypeDescription
latentLATENT