Nodes/ComfyUI-WanActivationEditor/WanVideo Projection Booster
ComfyUI Node

WanVideo Projection Booster

When the projection layer eats your embedding differences, boost them back — after the fact

By fblissjr·Created about a year ago·Updated about a year ago· 9
WanVideo Projection Booster
  • model
  • text_embeds
  • injection_embeds
  • model
  • text_embeds
  • info
boost_factor10
preserve_normtrue

The embedding amplifier fixes differences before the model's projection layer. This node attacks the same enemy from the other side - after. Here's the underlying annoyance, and it's a genuinely interesting one: Wan's text_embedding layer (4096 → 5120 dims) normalizes embeddings by content, so two prompts that are miles apart in raw T5 space can come out only a couple percent apart post-projection. The injection still replaces context in your activated blocks either way, but the measured difference collapses, which makes tuning feel like guessing.

This node's job: if you have access to the already-projected 5120-dim embeddings, it multiplies the difference between main and injection by boost_factor (1–50×, default 10) and, with preserve_norm on (default), rescales so you don't destabilize the injection. It stores a projection_boost config on the model so the patcher can apply it during generation.

Inputs: model, text_embeds (main), injection_embeds. Outputs: model, text_embeds, and an info STRING with the before/after difference percentages.

The honest caveat (read this before you trust it)

There's a sequencing problem the author has left in the source, and you'll trip over it if nobody warns you. The booster wants the projected embeddings - in the code it looks for model._projected_context / _projected_injection, which are only populated if something upstream already projected them. In a plain workflow - WanVideoTextEncode → editor → booster - those attributes usually aren't there, so the "boost" path is skipped and the node mostly stores the config on the model. It's one of the more unfinished corners of an already-experimental pack.

What that means practically: it's the third rung of the pack's ladder for fixing weak differences, and the README is explicit about the ordering - 1) Embedding Amplifier (simple), 2) Projection Booster (better), 3) Latent Encoder + Injector (advanced), 4) Direct Injector (aggressive). If the amplifier gets you to visible effects, stop there. Reach for this one when you're deep in the weeds of projected-space debugging and understand you may need to drive the projection yourself.

Install

Pack install as usual - it needs kijai's ComfyUI-WanVideoWrapper first:

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 Manager (search "ComfyUI-WanActivationEditor") works too. The info string tells you what actually happened - if it shows a current-vs-boosted difference, projection data was available; if it's just the config line, you're in the "config only" path above and should lower your expectations or switch tools.

CategoryWanVideoWrapper/Tools

Inputs (5)

NameTypeDefaultDescription
modelWANVIDEOMODEL
text_embedsWANVIDEOTEXTEMBEDS
injection_embedsWANVIDEOTEXTEMBEDS
boost_factorFLOAT101–50
preserve_normBOOLEANtrue

Outputs (3)

NameTypeDescription
modelWANVIDEOMODEL
text_embedsWANVIDEOTEXTEMBEDS
infoSTRING