Nodes/ComfyUI-WanActivationEditor/WanVideo Embedding Amplifier
ComfyUI Node

WanVideo Embedding Amplifier

Your injection has no visible effect? Make the embeddings actually different

By fblissjr·Created about a year ago·Updated about a year ago· 9
WanVideo Embedding Amplifier
  • main_embeds
  • injection_embeds
  • amplified_injection
  • info
target_difference60
amplification_modepush_apart

Here's the #1 reason activation injection "doesn't work": your two prompts are too similar. The block editor replaces the context at your chosen blocks with the injection prompt's conditioning - but if the injection embeddings are nearly identical to the main ones, replacing one with the other changes nothing. You injected perfectly and got a render that looks exactly like a normal generation.

This node is the fix for that specific failure. It takes your main and injection embeddings, measures how different they are, and if they're under your target, pushes them apart in embedding space. Wire its amplified_injection output into the injection_embeds input of WanVideoActivationEditor (or WanVideoAdvancedActivationEditor) and suddenly the injection has something to say.

It matters even more if you're running an FP8-quantized Wan checkpoint. Quantization crushes the subtle differences between similar prompts, which is exactly why the README calls this "the simple solution" - it's the first thing to try when effects are invisible.

The modes

  • push_apart (default) - the gentle one. Amplifies the difference vector between injection and main until it hits target_difference. Keeps the embedding structure intact, just farther apart.
  • maximize_diff - more aggressive. Finds the dimensions where the difference has the most variance and amplifies those hardest.
  • orthogonalize - the mathematical one. Projects out the component of the injection that's parallel to the main embedding, leaving a more orthogonal (independent) injection, then blends to the target.

All three preserve the injection's overall norm afterward, so you don't blow up the scale. target_difference runs 30–90%, default 60% - the author found that's the sweet spot for visible effects.

Inputs: main_embeds and injection_embeds (both WANVIDEOTEXTEMBEDS). Outputs: amplified_injection (feed this to the editor) and info (a STRING report showing original vs amplified difference percentage - worth a glance the first time).

Install

Same pack, same steps. ComfyUI Manager: search "ComfyUI-WanActivationEditor". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper   # required first
git clone https://github.com/fblissjr/ComfyUI-WanActivationEditor
cd ComfyUI-WanActivationEditor && pip install -r requirements.txt

Restart ComfyUI. Deps are torch, numpy, duckdb, zstandard.

Troubleshooting

  • If info says "Already at target! No amplification needed," your prompts are already different enough - the node just passes your injection through untouched. That's not a bug.
  • If your main and injection embeddings are different shapes (raw 4096-dim T5 vs projected 5120-dim), the amplifier pads or truncates to match. Mixing raw and projected embeddings across the pack is a recurring source of weirdness - keep both sides at the same stage (both from WanVideoTextEncode, or both post-projection).
  • It won't fix a broken pipeline - verify the amplifier is actually feeding the editor's injection_embeds, and check the editor's log level for the "Percent changed" readout to confirm the injection is landing at all.
CategoryWanVideoWrapper/Tools

Inputs (4)

NameTypeDefaultDescription
main_embedsWANVIDEOTEXTEMBEDS
injection_embedsWANVIDEOTEXTEMBEDS
target_differenceFLOAT6030–90
amplification_modeCOMBOpush_apart3 options: push_apart, maximize_diff, orthogonalize

Outputs (2)

NameTypeDescription
amplified_injectionWANVIDEOTEXTEMBEDS
infoSTRING