Nodes/MiniMax-H3 Tools/MiniMax H3 Split AV Latent / 拆分音视频潜空间
ComfyUI Node

MiniMax H3 Split AV Latent / 拆分音视频潜空间

MiniMax H3's AV latent is one NestedTensor too many for stock nodes — split it

By Rinne414·Created about a month ago·Updated about a month ago· 10
MiniMax H3 Split AV Latent / 拆分音视频潜空间
  • latent
  • video
  • audio

Here's the thing that trips up every first-time H3 user: MiniMax H3 doesn't hand you a normal latent. Because it generates video and synchronized stereo audio in one sampling pass, its latent is a paired NestedTensor - one object holding two tensors:

  • video: [B, 24, latent_t, H/16, W/16]
  • audio: [B, 32, 2, audio_t] (dim 2 is L/R)

Almost every stock ComfyUI latent node (LatentUpscale, LatentBlend, LatentComposite…) assumes a plain single tensor. Feed it an H3 AV pair and it either raises or silently corrupts one of the streams. Split AV Latent is the surgical tool that reaches in and pulls the two apart without disturbing either.

What it does

One input, latent, and two outputs: video and audio. Each comes out as an ordinary {"samples": tensor} dict - the shape every other node in ComfyUI expects - so from here you can run stock video-latent operations, or just inspect and recombine.

The splitter tags each output with its stream type. That's a quiet little detail that saves real pain: when you later rejoin the streams, the Join node can tell if you plugged them in backwards instead of trusting the connection order and handing you a confusing shape error.

Why you'd reach for it

Three reasons, roughly in order of how often people hit them:

  • Inspect a stream. You want to know what a latent actually holds before sampling it - decode the video side, look at the audio shape.
  • Modify one stream. The pack's Upscale Video Latent and Temporal Trim operate on the whole pair, but if you want to do something stock to just the video (or just the audio), you split, operate on the plain tensor, and rejoin.
  • Debug an unfamiliar workflow. If someone hands you an H3 graph and the shapes look wrong, splitting is the fastest way to see what each stream actually is.

One thing to be clear about: these outputs are still latents. video is not a decoded clip and audio is not a WAV - you still run them through H3's video and audio VAE decoders downstream.

Install and gotchas

Part of the MiniMax-H3 Tools pack (requires ComfyUI 0.30.0+). Install via ComfyUI Manager by searching "MiniMax H3 Tools," or:

cd ComfyUI/custom_nodes
git clone https://github.com/Rinne414/ComfyUI-MiniMaxH3-Tools.git

Restart and it's under MiniMax H3. No extra Python dependencies, no model files - this is pure tensor plumbing.

The one gotcha worth knowing: stock SaveLatent/LoadLatent cannot round-trip an H3 AV latent. The stock node calls .contiguous() on the paired NestedTensor and that fails. So if you split the pair, do your work, and rejoin it, keep the latent in the graph - don't try to save it to disk between stages. Split, modify, rejoin, and sample in one run.

Categorymodel/latent/minimax

Inputs (1)

NameTypeDefaultDescription
latentLATENT

Outputs (2)

NameTypeDescription
videoLATENT
audioLATENT