Nodes/ComfyUI-MiniMax-H3-Guide/MiniMax H3 Split AV Latent
ComfyUI Node

MiniMax H3 Split AV Latent

Unpack an H3 AV latent without LTX assumptions

By ethanfel·Created 22 days ago·Updated 14 days ago· 207
MiniMax H3 Split AV Latent
  • av_latent
  • video_latent
  • audio_latent
  • sync_report

MiniMax H3 stores video and audio in one nested latent, and if you want to swap one stream - keep a first pass's audio while refining only the video, say - you have to pull the streams apart. The obvious tool is ComfyUI's LTX AV-split nodes, and that's exactly the wrong tool. LTX's separator has its own timing assumptions baked in, and when it splits an H3 latent it can mangle the audio length because the two models clock audio differently. Split AV Latent is the pack's native replacement: it splits an H3 AV latent into its 24-channel video and 32-channel stereo audio latents without applying LTX timing assumptions.

The name in your workflow will appear as "MiniMax H3 Split AV Latent" under MiniMax H3/Latent.

Why LTX nodes break here

The pack's AV docs spell out the clocks, and they're worth knowing:

| Stream | Shape | Time rule | | --- | --- | --- | | Video | [B, 24, Tv, H, W] | Tv = 5k+2 represents 17k+5 frames at 24 FPS | | Audio | [B, 32, 2, Ta] | 40 latent steps per second |

The video latent count maps to pixel frames through 5k+2 (so 5k+2 video latents = 17k+5 frames), and the paired audio length is round(frames / 24 × 40). LTX nodes don't know any of this, so after splitting, the video stream comes out "plain" and the joiner downstream won't necessarily reconcile the audio length. This node does the split losslessly and tells you whether the streams are actually aligned.

What it does

One required input: av_latent, the native nested H3 latent. It validates the channel layouts (24 video / 32 audio), splits the streams, and if a noise mask is present it splits that too (rejecting masks whose temporal length no longer matches their source). Outputs:

  • video_latent - the 24-channel video stream.
  • audio_latent - the 32-channel stereo audio stream.
  • sync_report - video latents, derived frame count and duration, actual vs. expected audio length, and whether they're aligned. Read this; it's your early warning that a stream is the wrong length.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide

Restart, look under MiniMax H3/Latent. No extra dependencies. The pack is cross-checked against ComfyUI's native H3 grid formulas, which is worth knowing because it means the node is validated against the real implementation, not just the README's description.

When you'd reach for it

The canonical use: split the first-pass AV latent and a refined AV latent, take audio from one and video from the other, then recombine with Pack AV Latent (Frame-Locked). That's a real workflow - keeping first-pass audio after a video-only refinement pass - and it's the exact case where the LTX route silently misbehaves.

One gotcha: this node rejects plain (non-nested) latents and non-H3 channel layouts on purpose. If you feed it a normal latent from another model, you get a validation error, not garbage. That's a feature - the error is telling you the tensors aren't what H3 expects.

CategoryMiniMax H3/Latent

Inputs (1)

NameTypeDefaultDescription
av_latentLATENTNative MiniMax H3 AV latent containing nested video and audio streams.

Outputs (3)

NameTypeDescription
video_latentLATENT
audio_latentLATENT
sync_reportSTRING