Nodes/ComfyUI/FreSca
ComfyUI Node Runs on cloud

FreSca

Tune your guidance in frequency space (and stop oversaturating)

By Comfy-Org·Created 4 years ago·Updated about 3 hours ago· 129,870
FreSca
  • model
  • MODEL
scale_low1.00
scale_high1.25
freq_cutoff20

FreSca is one of those nodes that fixes a complaint you didn't know had a name: high CFG makes your image look oversaturated and "deep fried," but lowering CFG makes it mushy. FreSca's trick is to stop scaling all of the guidance equally and instead treat low and high frequencies differently. It comes from the FreSca paper - "Scaling in Frequency Space Enhances Diffusion Models" (arXiv 2504.02154, University of Rochester et al.) - and the ComfyUI version is a faithful port that ships in core.

Why frequency matters. The guidance is cond − uncond, the difference the CFG formula amplifies. That difference contains structure: smooth, low-frequency content (overall shape, lighting, color) and high-frequency detail (edges, texture). Crank CFG and you amplify both - which is how you get that harsh, oversaturated, plastic look. FreSca's idea is that you don't have to amplify them together. In the node's defaults, low frequencies get scale 1.0 (untouched) and high frequencies get 1.25 (boosted), so you gain crisp detail without the color blowout that comes from boosting the whole signal.

How it works. Mechanically it's a pre-CFG hook. It takes the guidance, runs an FFT, shifts the low frequencies to the center, scales the center band by scale_low and everything else by scale_high, then transforms back and adds the unconditional prediction again. The three inputs map directly onto that:

  • scale_low (default 1.0) - scaling factor for the low-frequency band.
  • scale_high (default 1.25) - scaling factor for high frequencies.
  • freq_cutoff (default 20) - how many frequency indices around the center count as "low." At 20 it's a small band; raise it and the low-frequency region grows, so scale_low starts covering more of the image.

Output is a MODEL - wire it between your checkpoint and the KSampler.

When to use it. It needs a real unconditional pass, so it only does anything with CFG above 1 - on SD 1.5/SDXL-style models, not on guidance-distilled stuff that runs at CFG 1. If your renders are saturated and heavy-handed at the CFG you need for prompt adherence, FreSca is a subtle, training-free fix: leave scale_low alone, nudge scale_high up, and check whether the detail improves without the color shift. It's also plug-and-play across samplers, which is more than most guidance hacks can say.

Gotchas. Keep it subtle. scale_high amplifies whatever high-frequency signal is in the guidance, and if the guidance is noisy that's noise you're boosting - grain and speckle start showing up fast once you push past ~1.5. Zero or tiny freq_cutoff values shrink the low band to almost nothing, which changes the meaning of your two scales; the default is sane, change one thing at a time. And like every node in the experimental category, it can move between ComfyUI versions.

One honest note from the research: almost nobody in the community talks about it - reddit results for "fresca" are mostly a soda brand. It's a quiet node that does one thing well, not a hype train. Try it on a single stubborn seed; the A/B test takes one run.

Ships with ComfyUI core; search "FreSca" or "frequency guidance" to add it. No install.

Categoryexperimental

Inputs (4)

NameTypeDefaultDescription
modelMODEL
scale_lowFLOAT1.000–10Scaling factor for low-frequency components
scale_highFLOAT1.250–10Scaling factor for high-frequency components
freq_cutoffINT201–10000Number of frequency indices around center to consider as low-frequency

Outputs (1)

NameTypeDescription
MODELMODEL