Nodes/MiniMax-H3-Semantic-Bridge/MiniMax H3 Image to Video + Semantic Bridge
ComfyUI Node

MiniMax H3 Image to Video + Semantic Bridge

H3 Image-to-Video With the Semantic Nudge Already Wired In

By Speach1sdef178·Created a day ago·Updated a day ago· 0
MiniMax H3 Image to Video + Semantic Bridge
  • clip
  • vae
  • first_frame
  • last_frame
  • positive
  • latent
prompt
distilled_adapter
alpha0.10
magnitude_matchper_token
width1344
height768
length124

What this is for

If you already have MiniMax H3 generating video and you want to try this pack's semantic bridge on a fresh clip, this is the node you reach for. It does what two nodes do by hand - the text encode and the native image-to-video conditioning builder - and applies the bridge on the way out. Prompt in, conditioning and latent out, sampler next.

Context, because it explains the defaults: MiniMax H3 is the 33B omni-modal video model from August 2026 - the first open-weights answer to Veo's native-audio trick, 4–15 second clips at up to 2K/24fps with the stereo sound generated in the same pass. The bridge is not MiniMax's. It's an independent experimental adapter by Speach1sdef178, distilled from a cross-architecture semantic mapping, and it merges nothing into the H3 weights. A nudge on the conditioning, not a fine-tune.

How it works

It's a wrapper around ComfyUI's own core H3 plumbing: it calls _empty_av_latent and _resize from comfy_extras.nodes_minimax_h3, tokenizes your prompt with the frames attached (clip.tokenize(prompt, images=images)), and runs any frames you supplied through the VAE, attaching them as minimax_keyframes plus a frame count. The "av" in that latent helper is audio + video - the sound comes out of the same sampler pass, so don't go hunting for a separate audio node.

Then the bridge. The adapter is a small MLP (5120 → 512 → 512 → 5120, SiLU) that predicts an alternative representation for every token in the conditioning, and the node blends it in with a straight interpolation:

hybrid = native + alpha * (projected - native)

That 5120 is not arbitrary - it's the hidden width of H3's text encoder, which the pack's own upstream notes identify as Qwen3-VL-32B. It's also why the bridge only works on H3 conditioning: feed it anything else and it refuses.

The inputs that actually matter

Most of it is one-shot setup, not per-generation tuning. The knobs you'll touch:

  • alpha - 0.10 is the starting point, 0.15 is what the author used in the published A/B examples. Because the blend is a lerp, alpha = 0 is an exact no-op. Same seed, three queue runs at 0 / 0.10 / 0.15, and you know whether the bridge helps your prompt instead of trusting a demo.
  • magnitude_match - per_token (recommended), global, or none. It controls how the predicted representation's scale is reconciled with the native one before blending. Leave it on per_token unless you're deliberately experimenting; none hands you the MLP's raw output scale, which changes what a given alpha means.
  • distilled_adapter - the dropdown, populated from ComfyUI/models/semantic_bridge. If it only ever shows NO_DISTILLED_ADAPTER_FOUND.safetensors, that's the pack telling you it can't see an adapter file, not a bug.
  • width / height / length - 1344×768 is H3's 768p tier, and 124 frames is roughly five seconds at 24fps. Length moves in steps of 17 up from a minimum of 5; stay on that grid.

The rest - clip, vae, prompt, and the optional first_frame / last_frame - is what you'd wire into any H3 image-to-video graph. first_frame is cropped "disabled" (aspect preserved as far as it goes), last_frame "center", which matters when your stills aren't already 1344×768.

Outputs are positive (CONDITIONING, into your sampler's positive input) and latent (LATENT, into the sampler at denoise 1.0). There's no negative output - if you're sampling at CFG above 1, keep feeding the negative from wherever your workflow already got it, encoded with the same H3 CLIP.

Installing it

ComfyUI Manager: search MiniMax H3 Semantic Bridge and restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Speach1sdef178/MiniMax-H3-Semantic-Bridge
pip install -r MiniMax-H3-Semantic-Bridge/requirements.txt

That requirements file is one line - safetensors - so it almost certainly already resolves for you. The real dependency isn't in it: the pack imports comfy_extras.nodes_minimax_h3, so you need a ComfyUI new enough to ship native H3 support, plus the H3 weights themselves.

The adapter is separate, on Hugging Face: MiniMaxH3_SemanticBridge_v1.safetensors, into ComfyUI/models/semantic_bridge/. Restart or refresh model lists after copying, or the dropdown won't see it.

Where people get burned

  • A red import error on startup. The core H3 import is at module level, so if your ComfyUI predates comfy_extras/nodes_minimax_h3, the whole pack fails to load - no nodes, just an error in the console. Update ComfyUI first.
  • The same failure, delayed. The node borrows two private, underscore-prefixed core helpers. When ComfyUI refactors those, this breaks with no warning and nothing saying "upstream changed" - the standard fate of packs bent to core internals.
  • An empty adapter folder. Solved by putting the file in models/semantic_bridge/ and restarting, not by fiddling with the widget.
  • "Expected MiniMax H3 conditioning [B,T,5120]" or ValueError: Prompt is empty. - the bridge got conditioning that isn't H3's (a different encoder, a stale workflow mixing models), or you queued a half-edited template. Unusually clear messages, both of them.

The author is blunt that the bridge can help a prompt, do nothing, or make a clip worse - representation-space similarity is not perceptual quality - and there's no community footprint for it yet, so trust your own A/B over the demo. Licensing travels with it too: the adapter is a model-derived H3 artifact, so the upstream MiniMax H3 Community License applies, which is why the pack declines to relabel it MIT or Apache. Not legal advice.

And the scope note: v1 doesn't cover Ref2VA or reference-conditioned workflows, and the author's tests showed worse vocal articulation when the bridge was applied to reference-audio lip-sync. If that's your use case, skip this one.

CategoryMiniMax H3/Semantic Bridge

Inputs (11)

NameTypeDefaultDescription
clipCLIP
vaeVAE
promptSTRING
distilled_adapterCOMBO1 options: NO_DISTILLED_ADAPTER_FOUND.safetensors
alphaFLOAT0.100–1
magnitude_matchCOMBOper_token3 options: per_token, global, none
widthINT134432–16384
heightINT76832–16384
lengthINT1245–3600
first_frameoptIMAGE
last_frameoptIMAGE

Outputs (2)

NameTypeDescription
positiveCONDITIONING
latentLATENT