Nodes/ComfyUI-Easy-Media/Easy MiniMax H3 Reference Bridge
ComfyUI Node

Easy MiniMax H3 Reference Bridge

The H3 Reference Node That's Really a Plumbing Shuffle

By yolain·Created 3 months ago·Updated about 17 hours ago· 158
Easy MiniMax H3 Reference Bridge
  • clip
  • vae
  • audio_vae
  • ref_image_0
  • ref_image_1
  • ref_image_2
  • ref_image_3
  • ref_image_4
  • ref_image_5
  • ref_image_6
  • ref_image_7
  • ref_image_8
  • ref_video_0
  • ref_video_1
  • ref_video_2
  • ref_video_audio_0
  • ref_video_audio_1
  • ref_video_audio_2
  • ref_audio_0
  • ref_audio_1
  • ref_audio_2
  • positive
  • latent
prompt
width1344
height768
length124
ref_image_sizematch

Meet the node you'll probably never add by hand

MiniMax H3's reference-to-video mode is where the model shines: feed it up to nine reference images, a few reference videos with their audio, and it generates a clip that holds characters and sounds across the scene - the "like Kling" motion transfer people raved about at launch. The ComfyUI plumbing for that is genuinely awkward though, because the core MiniMaxH3ReferenceToVideo node uses an Autogrow-style input that doesn't play nicely when it's constructed inside an expanded/looped graph.

This node is the pack's workaround: a fixed-slot wrapper that calls the core H3 reference node directly, with every reference input spelled out as an individual socket. Hence "bridge."

What it actually does

The source is a routing exercise, not a new algorithm:

target = getattr(comfy_nodes, "NODE_CLASS_MAPPINGS", {}).get(
    "MiniMaxH3ReferenceToVideo", MiniMaxH3ReferenceToVideoFallback)
return target.execute(clip=clip, vae=vae, audio_vae=audio_vae,
                      prompt=prompt, width=width, height=height,
                      length=length, ref_image_size=ref_image_size,
                      **grouped_inputs)

It takes whatever reference slots you've filled, groups them by prefix (ref_image_, ref_video_, ref_video_audio_, ref_audio_), and hands them to ComfyUI's native H3 reference node. If your ComfyUI build somehow doesn't have it, a pack-internal fallback kicks in. That's the entire mechanism - and it's marked dev-only, which should tell you its audience.

Inputs and outputs

The surface is one big socket sprawl:

  • clip, vae, prompt, width (1344), height (768), length (124), ref_image_size (match/max) - the generation settings, same as the parent node.
  • audio_vae - required the moment you connect any reference audio.
  • ref_image_0ref_image_8 - up to 9 still references.
  • ref_video_0ref_video_2 - up to 3 reference videos, each with a paired ref_video_audio_0…2 socket.
  • ref_audio_0ref_audio_2 - up to 3 standalone audio references.

Outputs are positive (CONDITIONING) and latent (LATENT), ready for your H3 sampler.

When you'd reach for it (and when you wouldn't)

Honestly? Most people shouldn't. The pack's own easy minimaxH3ToVideo node does the same thing with a friendlier interface - it takes plain images/videos/audios inputs, auto-expands them, and wires this bridge internally. You only need this node directly if you're building a workflow that must pass references through a loop or an expanded subgraph where Autogrow inputs break down - the exact scenario this bridge exists for.

Install-wise it's just part of Easy-Media (Manager or git clone, restart). Two practical traps:

  • Reference audio without audio_vae → hard error. If you connect ref_audio_0 or ref_video_audio_0, you must provide audio_vae.
  • Paired sockets. ref_video_audio_0 belongs to ref_video_0, not ref_video_1. It's an easy mismatch to make when the graph gets busy, and you'll see it as audio being silent or attached to the wrong clip.

If you're doing serious H3 reference work with loops, this node is the load-bearing part of the pack's H3 machinery. If you're new to H3, use the parent node and let this one stay hidden where it belongs.

CategoryEasyUse/MiniMax

Inputs (26)

NameTypeDefaultDescription
clipCLIP
vaeVAE
promptSTRING
widthINT134432–16384
heightINT76832–16384
lengthINT1245–3600
ref_image_sizeCOMBOmatch2 options: match, max
audio_vaeoptVAE
ref_image_0optIMAGE
ref_image_1optIMAGE
ref_image_2optIMAGE
ref_image_3optIMAGE
ref_image_4optIMAGE
ref_image_5optIMAGE
ref_image_6optIMAGE
ref_image_7optIMAGE
ref_image_8optIMAGE
ref_video_0optIMAGE
ref_video_1optIMAGE
ref_video_2optIMAGE
ref_video_audio_0optAUDIO
ref_video_audio_1optAUDIO
ref_video_audio_2optAUDIO
ref_audio_0optAUDIO
ref_audio_1optAUDIO
ref_audio_2optAUDIO

Outputs (2)

NameTypeDescription
positiveCONDITIONING
latentLATENT