Nodes/FreeU_Advanced/FreeU V2 (Advanced Plus)
ComfyUI Node

FreeU V2 (Advanced Plus)

Why V2 Beat V1

By WASasquatch·Created 3 years ago·Updated 11 months ago· 123
FreeU V2 (Advanced Plus)
  • model
  • MODEL
input_blockfalse
middle_blockfalse
output_blockfalse
multiscale_mode
multiscale_strength1.000
slice_b1640
slice_b2320
b11.100
b21.200
s10.900
s20.200
threshold1
use_override_scales
override_scales# OVERRIDE SCALES # Sharpen # 10, 1.5

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, and output_block booleans instead of a single dropdown, so you decide exactly which stage of the UNet gets patched.
  • Frequency shaping presets - the multiscale_mode list (Default, Bandpass, Low/High-Pass, Gaussian-Blur, Edge-Enhancement, Sharpen, plus the "Multi-" variants) shapes the Fourier mask, scaled by multiscale_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.

Category_for_testing

Inputs (15)

NameTypeDefaultDescription
modelMODEL
input_blockBOOLEANfalse
middle_blockBOOLEANfalse
output_blockBOOLEANfalse
multiscale_modeCOMBO15 options: Default, Bandpass, Low-Pass, High-Pass, Pass-Through, Gaussian-Blur, +9
multiscale_strengthFLOAT1.0000–1
slice_b1INT64064–1280
slice_b2INT32064–640
b1FLOAT1.1000–10
b2FLOAT1.2000–10
s1FLOAT0.9000–10
s2FLOAT0.2000–10
thresholdoptINT11–10
use_override_scalesoptCOMBO2 options: false, true
override_scalesoptSTRING# OVERRIDE SCALES # Sharpen # 10, 1.5

Outputs (1)

NameTypeDescription
MODELMODEL