Nodes/FreeU_Advanced/FreeU (Advanced Plus)
ComfyUI Node

FreeU (Advanced Plus)

The Classic FreeU (Advanced) Node, Named Confusingly

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

First, the naming, because it will trip you up. The class FreeU (Advanced) - the one this page is about - is the original name WASasquatch shipped in the FreeU_Advanced pack. In current releases the same node registers as WAS_FreeU, so if you load an old workflow and ComfyUI yells about a missing node, that's why. Re-add it from the current pack and the rest of your graph survives.

Functionally it's FreeU, the "free lunch" UNet detail booster, with every internal knob exposed. FreeU itself needs no extra model and no training - it's a post-processing patch on the UNet's hidden features that adds detail and contrast. Where the stock ComfyUI FreeU node hardcodes its behavior, this one lets you choose which block gets patched, what the frequency shaping looks like, and how the boosted channels blend back in.

A quick recipe that works

For a plain SD1.5 or SDXL checkpoint, this is a sane starting point:

  • model - from Load Checkpoint, straight in.
  • target_block - all is fine to start; if things get weird, drop to output_block only.
  • b1 = 1.1, b2 = 1.2, s1 = 0.9, s2 = 0.2 - the paper's defaults, which are honestly a good place to begin.
  • multiscale_mode = Default, multiscale_strength = 1.0.
  • Leave slice_b1 = 640 and slice_b2 = 320 alone.
  • Wire the MODEL output to your KSampler, replacing the checkpoint's model connection. That's it.

From there, the classic tweak pattern: push b2 up toward 1.4–1.6 for more detail (it gets crunchy past that), and nudge s1/s2 down below 1 if things start looking overcooked. Community guidance from the FreeU threads has held up well: keep b1 around 1.0–1.2, b2 around 1.2–1.6, and s values at or below 1 for SD-family models.

The extras under the hood

The optional inputs are where this diverges from the stock node: b1_mode / b2_mode are blending modes (from a straight inject to bislerp, hslerp, cosine interp, and linear dodge), with b1_blend / b2_blend controlling how much of the blended result goes in. threshold sets the radius of the Fourier mask. And use_override_scales + override_scales lets you type your own radius, scale lines - #, //, and ! all start comments - instead of picking a preset.

Honestly, most people never touch those. The defaults are tuned to be good; the extra modes exist because someone will always want to know what "linear dodge" does to a UNet's channels. (Answer: it brightens. Sometimes that's what you want.)

Install and gotchas

It's part of the WASasquatch/FreeU_Advanced pack - the same one that contains FreeU V2, WAS_FreeU, and the Flux-focused Post-CFG SHIFT node. Install via ComfyUI Manager by searching FreeU_Advanced, or:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/FreeU_Advanced

Restart ComfyUI afterward. There's no requirements.txt and no model download - just torch, which you already have. The category is _for_testing, so check the test section of the node menu.

Two traps worth knowing. First, the patch only fires on UNet blocks with 1280/640-channel features, so on modern transformer-based models it does nothing silently - it's an SD1.5/SDXL tool. Second, an exotic multiscale_mode can give you flat, gray output; when that happens, switch back to a stable preset like Sharpen or Pass-Through rather than fighting the sliders.

This is the node to reach for when the built-in FreeU isn't enough control and you don't want to drop into a different pack. Just remember the class you're actually using is WAS_FreeU.

Category_for_testing

Inputs (17)

NameTypeDefaultDescription
modelMODEL
target_blockCOMBO4 options: output_block, middle_block, input_block, all
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
b1_modeoptCOMBO8 options: bislerp, colorize, cosine interp, cuberp, hslerp, inject, +2
b1_blendoptFLOAT1.0000–100
b2_modeoptCOMBO8 options: bislerp, colorize, cosine interp, cuberp, hslerp, inject, +2
b2_blendoptFLOAT1.0000–100
thresholdoptINT11–10
use_override_scalesoptCOMBO2 options: false, true
override_scalesoptSTRING# OVERRIDE SCALES # Sharpen # 10, 1.5

Outputs (1)

NameTypeDescription
MODELMODEL