FreeU (Advanced Plus)
The Classic FreeU (Advanced) Node, Named Confusingly
- model
- MODEL
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 -
allis fine to start; if things get weird, drop tooutput_blockonly. - 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.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| target_block | COMBO | 4 options: output_block, middle_block, input_block, all | |
| 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 | — |
| b1_modeopt | COMBO | 8 options: bislerp, colorize, cosine interp, cuberp, hslerp, inject, +2 | |
| b1_blendopt | FLOAT | 1.0000–100 | — |
| b2_modeopt | COMBO | 8 options: bislerp, colorize, cosine interp, cuberp, hslerp, inject, +2 | |
| b2_blendopt | FLOAT | 1.0000–100 | — |
| 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 | — |