RunningHub MiniMax H3 Encode Video → AV Latent (Legacy)
The Door to MiniMax H3 Video-to-Audio
- h3_vae_bundle
- av_latent
- frames
- av_latent
This is the node that turns video-to-audio from a neat idea into a graph you can actually run. MiniMax H3 generates audio and video jointly in one shared latent space, so if you want to add sound to footage you already have, you can't just feed the sampler a video file - you have to encode your frames into H3's video latent first, then let the sampler treat that video latent as clean and denoise only the audio. That's exactly what this node does, and it's the only thing it does.
Inputs
- h3_vae_bundle - the dual VAE bundle from one of the pack's VAE loaders. This is the video VAE doing the encoding; the audio VAE rides along in the bundle.
- av_latent - the AV latent to fill. In practice that's an
RHMiniMaxH3EmptyAVLatentoutput: you build the blank vessel from your target, then fill its video half here. The node returns a new av_latent rather than mutating in place. - frames - the
IMAGEbatch you want as the video condition. Load a video, decode frames, whatever - as long as it's a standard IMAGE tensor. - seed - used for the encoding's noise handling. Same seed discipline as everywhere in ComfyUI: keep it fixed to reproduce a run.
Output: av_latent - the same vessel, now with the video stream filled with an encoding of your footage.
How V2A uses it
The tooltip on the Dual Sigma Sampler spells out the contract: set denoise_video=False there, and the sampler treats av_latent.video as a clean visual condition (a timestep floor) and only denoises the audio stream. This node is how the video gets in. The full chain:
VAE Loader → Encode Video → AV Latent (or Separate AV Latent) → Sampler (denoise_video=False) → Decode AV → audio
Honest note
It's a legacy node, marked accordingly, and the modern RHMiniMaxH3VideoGen wraps this whole dance. But if you want to understand what that modern node does - or you're keeping an old V2A workflow alive - this is the piece that makes V2A work at all, and it's worth recognizing.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI-RH-MiniMax-H3.git
pip install -r ComfyUI-RH-MiniMax-H3/requirements.txt
Restart, and pull the ~95 GiB INT8 ConvRot bundle into ComfyUI/models/MiniMax-H3-INT8-CONVROT/ (hf download Gluttony10/MiniMax-H3-INT8-CONVROT --local-dir ./models/MiniMax-H3-INT8-CONVROT, ModelScope in China). ComfyUI 0.27+ and CUDA PyTorch are the floor. License as pack-wide: H3's Community License excludes the US, EU, UK and South Korea from local-weights use.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_vae_bundle | MINIMAX_H3_VAE_BUNDLE | — | |
| av_latent | MINIMAX_H3_AV_LATENT | — | |
| frames | IMAGE | — | |
| seed | INT | 420–9223372036854776000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| av_latent | MINIMAX_H3_AV_LATENT | — |