Nodes/ComfyUI_MiniMaxH3_Director/MiniMax H3 Director Semantic Bridge
ComfyUI Node

MiniMax H3 Director Semantic Bridge

An 11 MB nudge to who's doing what

By AIMixer·Created 2 months ago·Updated about 5 hours ago· 1,952
MiniMax H3 Director Semantic Bridge
    • semantic_bridge
    adapter(将 Semantic Bridge 权重放入 models/semantic_bridge)
    alpha0.15
    magnitude_matchtrue

    Three widgets, one socket - and it does something subtler than anything else in the pack: it edits the conditioning the video model actually reads.

    What it is, and when you'd reach for it

    MiniMax H3 Director is a third-party console for MiniMax H3, the 33B omni-modal model that generates video with native stereo audio in a single pass. You give it the official H3 UNET, a Qwen3-VL text encoder (CLIPLoader type minimax) and both VAEs, and it runs the official H3 chain over a timeline of shots.

    MiniMax H3 Director Semantic Bridge wires into the Director's semantic_bridge input, which sits above selflift and refine. Unconnected, the Director is identical to stock. Connected, every segment's conditioning tokens get rewritten by a tiny student network before sampling.

    It's not a strength slider, and it isn't CFG's job. It's a distilled nudge toward a particular reading of your prompt. The published adapter leans static - layout, spatial relations, counting. The BUNNY adapter leans action ownership and crowded multi-character scenes, the failure mode where your hero's punch lands on the wrong person. If your prompts keep failing on who is doing what to whom, that's the itch.

    The mechanism, since it's short

    The node takes CONDITIONING[0][0] - the [B, T, 5120] token tensor - and leaves keyframe and reference metadata alone. The student is three linear layers, 5120 → 512 → 512 → 5120 with SiLU, about 11 MB of weights. RMS-norm in, residual blend out:

    C = H + alpha * (S' - H)
    

    alpha is how far you slide toward the student's opinion, and 0.15 is the original workflow's calibrated default. Applying it twice would wreck the tokens, so the rewrite stamps the conditioning metadata and skips if it's already been touched.

    Inputs and output

    • adapter - the student weights, listed out of ComfyUI/models/semantic_bridge/. At alpha=0 the mix is literally C = H, which is a decent way to prove the wiring before judging output.
    • alpha (0.15) - the blend. Nudge in 0.05 steps. Cranked, it mostly replaces H3's own conditioning with the student's guess, and everything else those tokens carried stops mattering.
    • magnitude_match (on) - aligns the student output's norm to the original hidden. Off, the student also changes magnitude, which is a bigger intervention than a blend.

    One output, semantic_bridge, into the Director's semantic_bridge input. It samples nothing on its own.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/AIMixer/ComfyUI_MiniMaxH3_Director.git
    pip install -r ComfyUI_MiniMaxH3_Director/requirements.txt
    

    Or Manager → Install via Git URL. Needs ComfyUI 0.30.0+ (the official H3 nodes came in PR #15224 / #15228). Requirements pull opencv-python-headless, imageio-ffmpeg, scenedetect and ultralytics; the H3 stack is the usual pruned int8-convrot UNETs (fl2va for t2v/i2v/fl2v, ref2va for r2v/v2v/rv2v), a ~32B Qwen3-VL text encoder, and the video and audio VAEs.

    Then the node-specific part: the pack does not ship the bridge weights.

    mkdir -p ComfyUI/models/semantic_bridge
    # copy your adapter safetensors here, then restart ComfyUI
    

    The pack auto-registers that folder, but the dropdown is built when node definitions register, so a fresh file won't appear until you restart or refresh. Weights come from speach1sdef178/MiniMax-H3-Semantic-Bridge (original) or JOKER141/BUNNY_H3_Conditioning_Bridge (BUNNY). The student math is the original author's; this pack implements it, credits both, and is Apache-2.0 itself.

    Where people get burned

    r2v, v2v and rv2v are forced-compat territory. The adapter was distilled on FL2VA - t2v, i2v, fl2v. Ref2VA was never distilled; the same full-tensor math runs anyway and the run report appends a warning. It doesn't error, it just isn't vetted, and "it didn't crash" is not evidence it helped. If everything you do is reference-to-video, skip this node.

    One bridge, not two. Move between original and BUNNY by swapping adapter. Stacking two bridges slides the same tokens twice.

    Failures are silent. Point adapter at the placeholder, an empty folder or a state dict with the wrong keys and you get Semantic Bridge skipped: adapter not found in the log while the original conditioning passes through untouched. Loads are strict - exactly fc1/fc2/fc3 weight plus bias - so a mismatched checkpoint degrades to a no-op. Read the run report.

    Changing a widget re-renders your timeline. Adapter, alpha and magnitude_match are part of the pack's first-pass fingerprint, so twiddling alpha invalidates the cached first pass and every segment re-samples. Correct behaviour, but plan for it.

    And keep expectations sane. An 11 MB student at 0.15 is a nudge. The point is fewer mangled counts and fewer swapped characters across a shot list, not a new look.

    CategoryMiniMaxH3

    Inputs (3)

    NameTypeDefaultDescription
    adapterCOMBO(将 Semantic Bridge 权重放入 models/semantic_bridge)Student MLP 权重(约 11MB)。放到 ComfyUI/models/semantic_bridge/。原版蒸馏于 FL2VA;不随本插件分发。
    alphaFLOAT0.150–1残差混合强度。C = H + alpha*(S'−H)。原版工作流默认 0.15。
    magnitude_matchBOOLEANtrue把 student 输出的向量模长对齐到原 hidden。原版默认开。

    Outputs (1)

    NameTypeDescription
    semantic_bridgeMMX_DIR_SEMANTIC_BRIDGE