Nodes/JJMaden Random Nodes/MiniMax H3 Concat AV Latent (best-effort)
ComfyUI Node

MiniMax H3 Concat AV Latent (best-effort)

The safest of the best-effort five

By jjmaden·Created 27 days ago·Updated 23 days ago· 0
MiniMax H3 Concat AV Latent (best-effort)
  • video_latent
  • audio_latent
  • av_latent

MiniMax H3 is the open-weight omni-modal video model - one model that treats text, image, video, and audio as a single context and generates clips with native stereo sound, not an audio pass bolted on afterward. In ComfyUI its native nodes carry the combined audio+video content around as a single av_latent: a nested-tensor structure produced by EmptyMiniMaxH3LatentAV, MiniMaxH3ImageToVideo, and MiniMaxH3ReferenceToVideo.

This node is the pack's answer to one specific gap: you have a video latent and an audio latent, both already encoded, and you want to merge them into that AV structure yourself. It takes a plain video LATENT and a plain audio LATENT and packs them into the same av_latent NestedTensor the native nodes produce. That's the entire job, and it's why the pack's own model card rates it the highest-confidence of its five MiniMax H3 nodes - it's just structure packing, with very little room for the logic to be wrong.

Why would you want to build an AV latent by hand instead of using the all-in-one native nodes? Because you might want to encode video and audio with different settings, or you already have both from separate pipelines. video_latent is a plain 24-channel video latent (e.g. from a standard VAEEncode), and audio_latent is a plain 32-channel audio latent (e.g. from VAEEncodeAudio). The node validates each input's channel count before packing - a descriptive ValueError names which input is wrong if the shapes don't match - and if an already-packed AV latent is accidentally fed into either socket, it searches the component tensors for one matching the expected channel count instead of failing outright.

Inputs: video_latent and audio_latent. Output: av_latent, ready to feed an H3 sampler.

Before the how, the honest caveat: like the rest of this pack's MiniMax H3 nodes, it's a best-effort reimplementation. A privately-distributed third-party workflow referenced several MiniMaxH3* node types with no public source anywhere, and the author reconstructed them from the saved workflow graph and widget values - plus, for the math, verbatim code from ComfyUI's own real native H3 nodes, so shapes stay byte-for-byte compatible. What's real and separately installed: MiniMaxH3SigmaShift (ComfyUI core), MiniMaxH3MemoryEfficientSageAttentionPatch (ComfyUI-KJNodes), and MiniMaxH3ReferenceSplitter (the "Fantastic H3 Prompt Builder" pack). This pack adds only the five that had no public source.

Install:

cd ComfyUI/custom_nodes
git clone https://github.com/jjmaden/comfyui-jjmaden-random-nodes

Restart ComfyUI, or search "JJMaden Random Nodes" in ComfyUI Manager. You also need a ComfyUI build with native MiniMax H3 support (comfy.nested_tensor and the H3 conditioning types) - that's a current ComfyUI, since H3 got day-zero support. No extra Python packages and no model downloads come from this pack; the H3 weights themselves (~42.5GB full-precision, so most people are waiting on community quants) are a separate, large download.

The one thing to double-check if H3 video generation mysteriously fails: make sure the channel counts line up - a 24-channel expectation is specific, and VAEEncode from the wrong model will happily hand you the wrong count. Otherwise this is the node you can trust most in a pack that's refreshingly upfront about what it can't guarantee.

CategoryMiniMax H3/custom

Inputs (2)

NameTypeDefaultDescription
video_latentLATENT
audio_latentLATENT

Outputs (1)

NameTypeDescription
av_latentLATENT