RunningHub MiniMax H3 Separate AV Latent (Legacy)
Split MiniMax H3's audio-video latent into its two halves
- av_latent
- video_av_latent
- audio_av_latent
MiniMax H3 samples one joined latent that carries both the video stream and the audio stream. RHMiniMaxH3SeparateAVLatent is the utility that unpacks that combined latent into a video-only half and an audio-only half - zeroing out the other stream in each - so you can work with one modality at a time. It's a legacy node, but it's the cleanest way to see how H3's dual-stream design is represented on the wire.
Input and outputs
One input: av_latent (type MINIMAX_H3_AV_LATENT) - the joined latent that generation nodes output.
Two outputs, both the same type:
- video_av_latent - the video stream intact, audio replaced with zeros.
- audio_av_latent - the audio stream intact, video replaced with zeros.
The node preserves the target fingerprint and VAE identity on each half, so whichever half you feed onward still knows its shape and its VAEs. It's pure latent surgery - nothing is decoded or re-encoded, just channel-wise masked.
What it's for
The pack's own comment on the node sums up the purpose: "split into video-only / audio-only shells, handy for V2A recombination." In the manual video-to-audio flow, you take a generation's video latent (or an encoded source clip), separate it, keep the video half as the clean condition, and let the sampler denoise only the audio half. It's plumbing - you wouldn't reach for it in a one-node generation workflow, because RHMiniMaxH3VideoGen handles V2A internally.
Why it's legacy
The deprecation is a UI decision, not a removal: every non-recommended node in this pack is hidden from search and the node tree but still registered so old saved graphs load and run. This one is a genuinely useful utility if you're building the manual chain (Empty AV Latent → encode → Dual Sigma Sampler → decode) - you can still find it via a saved workflow that uses it, or keep it from being purged by being deliberate about your graph. But for anything new, the generation nodes do the join/split for you.
Gotchas
The outputs are still MINIMAX_H3_AV_LATENT objects, not plain tensors - you can't plug them into a normal VAE Decode or KSampler. Everything downstream has to be H3-aware (the pack's Dual Sigma Sampler and Decode nodes). And remember the "sampled" flag is carried through as false on the split shells, which matters if you're resampling one half and expecting the other to stay frozen. Both VAEs stay in the bundle either way - splitting the latent doesn't let you skip loading one.
Install
Standard pack routine:
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 have the ~95 GiB INT8 ConvRot bundle in models/MiniMax-H3-INT8-CONVROT/. It's a tiny node with zero model files of its own - everything it touches comes through the latent you feed it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| av_latent | MINIMAX_H3_AV_LATENT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video_av_latent | MINIMAX_H3_AV_LATENT | — |
| audio_av_latent | MINIMAX_H3_AV_LATENT | — |