H3 Concat AV Latent
Gluing the video and audio halves back together
- video_latent
- audio_latent
- av_latent
MiniMax H3 is the rare open model where audio and video live in the same latent. But "same latent" isn't one blob - it's a nested AV structure, video and audio streams packed together in a specific arrangement the model expects. The problem is that a lot of tooling (and every ComfyUI node that isn't H3-aware) only knows how to produce or consume one stream at a time. So you end up with a video latent here, an audio latent there, and no way to hand H3 the thing it actually wants.
H3 Concat AV Latent is that way. It takes a video_latent and an audio_latent and merges them into H3's native nested AV latent, ready to feed the sampler.
How it works
The pack keeps the video and audio streams in a structured AV latent with their own shapes, and this node assembles them into the nested form the model consumes. Two details make it more than a naive stack:
- It preserves matching video/audio noise masks, so a partial-denoise or masked workflow doesn't lose its mask structure in the merge.
- If the
video_latentyou feed it is already an AV latent, it keeps that video stream and just swaps in your new audio - useful when you've re-generated audio separately and want to drop it into an existing video.
So the workflow shapes it enables are: encode video frames and audio separately (or generate audio in its own pass), then merge here and sample once. That's the "generate a silent clip, make the audio separately, combine" pattern that H3's design finally makes sane.
The inputs that matter
- video_latent - a standalone H3 video latent, or an existing AV latent whose video stream you're keeping.
- audio_latent - the H3 audio latent to merge in (replacing the audio stream if video_latent was already AV).
Output: a single av_latent, straight into the sampler.
How to install
It ships with ComfyUI Turing Utils ("comfyui-svdint4" in Manager):
cd ComfyUI/custom_nodes
git clone https://github.com/wjie98/comfyui-svdint4
cd comfyui-svdint4
python -m pip install -v --no-build-isolation -e ./kernel
The H3 nodes share the pack's compiled kernel, so run the build once and restart. No extra model downloads - this is pure latent plumbing.
The honest take
You'll know you need this node because the error message will tell you: some sampler or model wrapper will complain that your latent isn't in H3's native nested form. That's the moment - grab this node, wire both streams in. And keep its twin, H3 Separate AV Latent, in mind for the reverse trip: when you want to decode, inspect, or process one stream independently, you split first and concat back. They're the hinge of any H3 audio-video workflow, and you'll use them more than you expect once you're doing serious H3 work.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| video_latent | LATENT | — | |
| audio_latent | LATENT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |