MiniMax H3 Join AV Latent / 合并音视频潜空间
Put MiniMax H3's video and audio latents back together — with a guardrail
- video
- audio
- LATENT
MiniMax H3's latent is a paired NestedTensor: one video stream and one audio stream packed together, generated in a single sampling pass. If you've split it apart with MiniMax H3 Split AV Latent - say, to run a stock operation on just the video - you eventually need to put it back together before sampling. That's this node's entire job, and the reason it exists is that you cannot do it safely with stock nodes, which expect one plain tensor and will happily produce garbage if you force an AV pair back together.
What it does
Two inputs, video and audio, one LATENT output that is a properly packed H3 AV latent again.
The interesting part is strict, which defaults to on and acts as the guardrail. Before constructing the pair it validates:
- channel layout - video must have 24 channels, audio 32 with an L/R dim of 2
- the video
latent_tsits on H3's17k+5grid (2, 7, 12, 17…) - the audio length matches what that frame count implies (
round(frames / 24 * 40))
If any check fails, you get an explicit error instead of a latent that's doomed to render wrong. If you're deliberately building an irregular pair, flip strict off - but the tooltip's own advice is that this is only for when you know what you're doing.
It also catches a mistake that is embarrassingly easy to make: plug the video into the audio input and it tells you "the 'video' input received a latent tagged as 'audio' - the two inputs look swapped." Both split outputs carry a stream tag precisely so Join can spot reversed wiring before it becomes a confusing shape error.
How it fits a workflow
The canonical pattern is the pack's AV-latent tooling loop: split → modify one stream with stock nodes → join → sample. Join is the step that keeps the two streams honest - because a split-and-join round trip is tested to be bit-identical, it's safe to route an H3 latent through stock video operations as long as you put it back together here.
Worth repeating the one limitation that bites everyone: stock SaveLatent/LoadLatent cannot round-trip an H3 AV latent (the .contiguous() call fails on a NestedTensor pair), so keep split-modified-rejoined latents in the graph and don't persist them to disk mid-run.
Install
Part of the MiniMax-H3 Tools pack. ComfyUI 0.30.0+, then search "MiniMax H3 Tools" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Rinne414/ComfyUI-MiniMaxH3-Tools.git
Restart, find MiniMax H3 Join AV Latent under MiniMax H3. No extra dependencies, no model files - it's pure tensor validation and packing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video | LATENT | — | |
| audio | LATENT | — | |
| strict | BOOLEAN | true | Reject streams whose latent_t and audio_t disagree, or whose latent_t is off the 17k+5 grid. Turn off only when deliberately building an irregular pair. / 拒绝时长不一致或不符合 17k+5 网格的流;仅在有意构建非标准组合时关闭。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |