CineStack H3 Director Semantic Bridge
An 11MB Adapter That Nudges the Prompt Tokens — That's the Whole Node
- semantic_bridge
Most of the nodes in this pack do something you can see in the output. Semantic Bridge does something you have to look for. It rewrites the conditioning tokens H3 is about to sample from, using a small student network trained to produce a "better behaved" version of them, and blends the result in gently. Unconnected, it is a no-op - the Director's own tooltip says so: identical.
So this is a taste-and-see node, not a switch you flip for a free upgrade. Here's what it's actually doing.
The mechanism
H3's conditioning is a [B, T, 5120] token tensor. Semantic Bridge loads a tiny MLP - 5120 → 512 with SiLU, 512 → 512 with SiLU, 512 → 5120, six tensors in total, about 11MB - runs the tokens through it, optionally rescales the student output so its vector magnitude matches the original hidden states, and then mixes:
C = H + alpha * (S' - H)
With alpha at its default 0.15, you're moving 15% of the way toward the student's reading of your prompt and keeping 85% of H3's own encoding. magnitude_match on (the default) prevents the student from changing the overall scale of the conditioning, which is the difference between "subtly reworded" and "burned".
Only the token tensor is touched. Keyframe and reference metadata are left alone, which matters because that's where fl2v and r2v get their structure.
The one caveat you need to read
The published adapter was distilled on FL2VA - the first/last-frame audio-video task. The pack runs full-tensor math on r2v, v2v and rv2v anyway and calls it "forced-compat", with a warning in the report. That's the author being straight with you: the student was not trained for reference conditioning, and applying it there is an extrapolation. If your r2v output gets weird, disconnect this before you blame anything else.
Also, the weights do not ship with the plugin. You supply the ~11MB file, and the original student math comes from speach1sdef178's MiniMax-H3-Semantic-Bridge.
Inputs and outputs
Three required fields, no optional ones, one output.
adapter is the weight file, read from ComfyUI/models/semantic_bridge/. The dropdown shows a placeholder telling you to put the weight there until you do. alpha is the blend strength, 0–1 in 0.01 steps, default 0.15 - the value the original workflows shipped with. magnitude_match toggles the magnitude alignment described above.
Output: semantic_bridge, type MMX_DIR_SEMANTIC_BRIDGE, into the Director's semantic_bridge socket. In the Director's optional chain, it sits above SelfLift - rewrite the tokens first, then do progressive sampling.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/guomenghao/ComfyUI-CineStack-H3.git
python -m pip install -r ComfyUI-CineStack-H3/requirements.txt
Then create ComfyUI/models/semantic_bridge/ (the node registers the folder path itself, but the file has to be there) and drop the adapter in. Restart, and it's under CineStack/H3 as "CineStack H3 Director Semantic Bridge".
When to bother
Honest answer: rarely, and never as a first move. The blend is 15% of a 5120-dimensional token sequence - if you're already getting good results from the Director, this is a small directional nudge, and "better" is a judgement call you make by rendering the same seed twice. Which is worth doing once, properly: same seed, same prompt, switch only this node, compare images. If you can't see it at viewing size, you've learned the thing that matters.
Where it plausibly earns its place is prompt-adherence cases - the clip that keeps drifting from what you asked for. Turn alpha up past 0.3 and be prepared for the whole frame to shift character, because you're now substantially replacing H3's own text encoding with a small network's opinion of it. There's no free fidelity here, just a different balance.
The empty dropdown is the failure you'll actually hit - that's a missing weight file, not a broken node, and the placeholder text is the diagnosis. And per the README's general advice: the file ends up as another thing whose presence changes your first-pass fingerprint, so if "second pass only" suddenly refuses to skip the first pass, check whether you wired this in after the cache was written.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| adapter | COMBO | (将 Semantic Bridge 权重放入 models/semantic_bridge) | Student MLP 权重(约 11MB)。放到 ComfyUI/models/semantic_bridge/。原版蒸馏于 FL2VA;不随本插件分发。 |
| alpha | FLOAT | 0.150–1 | 残差混合强度。C = H + alpha*(S'−H)。原版工作流默认 0.15。 |
| magnitude_match | BOOLEAN | true | 把 student 输出的向量模长对齐到原 hidden。原版默认开。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| semantic_bridge | MMX_DIR_SEMANTIC_BRIDGE | — |