FreeU V2 (Advanced Plus)
Why V2 Beat V1
- model
- MODEL
This is the page people actually land on when they search for "FreeU V2 advanced," so let's get straight to it. The class is FreeU_V2 (Advanced) - the older registered name of the node that current versions of the pack expose as WAS_FreeU_V2. Same node, same inputs, same output. If a workflow you downloaded references the old name and ComfyUI complains about a missing node, just swap in the current one; everything else wires up identically.
FreeU V2 is the smarter FreeU. V1 multiplies a slice of the UNet's channels by a flat gain, which doesn't care where detail actually lives in the features. V2 multiplies by a normalized mean activation of the channels instead - the parts of the feature map that are already active get boosted, the dead zones stay put. You get the same detail-and-contrast lift with a lot less crunch, and you can push the b values further before things go wrong.
Why you'd use this one
If you're on SDXL and you want the "free lunch" quality boost without babysitting artifacts, this is the version to pick. The three things that make it better than stock FreeU:
- Activation-weighted gain - more detail where it belongs, less blowout where it doesn't.
- Per-block toggles -
input_block,middle_block, andoutput_blockbooleans instead of a single dropdown, so you decide exactly which stage of the UNet gets patched. - Frequency shaping presets - the
multiscale_modelist (Default, Bandpass, Low/High-Pass, Gaussian-Blur, Edge-Enhancement, Sharpen, plus the "Multi-" variants) shapes the Fourier mask, scaled bymultiscale_strength.
The paper defaults are the sane starting point: b1 = 1.1, b2 = 1.2, s1 = 0.9, s2 = 0.2, with slice_b1 = 640 and slice_b2 = 320 channels affected per stage. For more detail, nudge b2 up toward 1.4–1.6; for a cleaner look, take it down.
Inputs and output, fast
Required: model (from Load Checkpoint), the three block toggles, multiscale_mode, multiscale_strength, slice_b1, slice_b2, b1, b2, s1, s2. Optional: threshold (Fourier mask radius), use_override_scales / override_scales for hand-written radius, scale lines (#, //, ! start comments).
The output is a single patched MODEL - wire it into your KSampler's model input, replacing the checkpoint's output. Your checkpoint file is never modified; the node clones it in memory.
Install and the one trap
It ships in the WASasquatch/FreeU_Advanced pack with WAS_FreeU, FreeU (Advanced), and the Flux-focused Post-CFG SHIFT node. Install via ComfyUI Manager (search FreeU_Advanced) or:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/FreeU_Advanced
Restart ComfyUI. No requirements.txt, no model downloads - torch FFT only. It shows up under _for_testing, so look in the test section of the node menu if search doesn't find it.
The trap, and it's a real one: all three block toggles default to false, so the node silently does nothing until you flip at least one. Enable output_block first. And if you're on a transformer-based model (Flux and friends), the 1280/640 channel hooks don't exist, so V2 won't do anything there - the pack's Post-CFG SHIFT node covers that territory instead.
Gray or flat output with an unusual multiscale_mode? Switch to Sharpen or Pass-Through, or lower threshold / s1 / s2. That's the whole troubleshooting guide, really - the defaults are good, the sliders are forgiving, and V2 is the version you'll probably stop fiddling with.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| input_block | BOOLEAN | false | — |
| middle_block | BOOLEAN | false | — |
| output_block | BOOLEAN | false | — |
| multiscale_mode | COMBO | 15 options: Default, Bandpass, Low-Pass, High-Pass, Pass-Through, Gaussian-Blur, +9 | |
| multiscale_strength | FLOAT | 1.0000–1 | — |
| slice_b1 | INT | 64064–1280 | — |
| slice_b2 | INT | 32064–640 | — |
| b1 | FLOAT | 1.1000–10 | — |
| b2 | FLOAT | 1.2000–10 | — |
| s1 | FLOAT | 0.9000–10 | — |
| s2 | FLOAT | 0.2000–10 | — |
| thresholdopt | INT | 11–10 | — |
| use_override_scalesopt | COMBO | 2 options: false, true | |
| override_scalesopt | STRING | # OVERRIDE SCALES # Sharpen # 10, 1.5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |