WanVideo Embedding Amplifier
Your injection has no visible effect? Make the embeddings actually different
- main_embeds
- injection_embeds
- amplified_injection
- info
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
infosays "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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| main_embeds | WANVIDEOTEXTEMBEDS | — | |
| injection_embeds | WANVIDEOTEXTEMBEDS | — | |
| target_difference | FLOAT | 6030–90 | — |
| amplification_mode | COMBO | push_apart | 3 options: push_apart, maximize_diff, orthogonalize |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| amplified_injection | WANVIDEOTEXTEMBEDS | — |
| info | STRING | — |