FFT Graphic EQ (5-band)
Five EQ sliders for your image, the way you'd mix audio
- frequency
- frequency
FFT Graphic EQ (5-band) is the node that finally makes the "treat an image like audio" fantasy literal: five sliders that boost or cut independent frequency bands, plus a sixth for DC. One FREQUENCY in, one FREQUENCY out, and you get to sculpt the image the way you'd scoop the mids on a guitar track. It's the most immediately playable node in the pack, and it's also the one that best teaches you what each part of a spectrum actually does to a picture.
The bands are octave-spaced, cut from the center out: DC, then a band from radius 0 to 0.0625, then 0.0625–0.125, 0.125–0.25, 0.25–0.5, and everything above 0.5 (the corners). Each gain_bandN slider runs 0–3 with a default of 1 (unity). Crank band 5 and the image gets sharper; kill it and you've made a soft-focus blur. Band 1 and DC control the broad tonal wash - the "bass." The pack's Lesson 3 shows a band-pass filter built from this, and honestly that's the best way to learn: sweep each band to zero one at a time, look at what vanishes, and you'll never again wonder what high frequencies are.
How it works
Each radial ring of the spectrum gets multiplied by its band's gain. The DC term is treated specially - exactly the single center pixel, not a ring - so the overall brightness of the image is a separate slider from the lowest spatial frequencies. The gains are applied as a smooth step function in radius; there's no soft transition between bands, so if you set adjacent bands very differently you'll see the boundary in the result. That's characteristic of a hard graphic EQ, and it's fine.
One real constraint: the node needs at least a 32-pixel half-extent to fit five octave bands plus DC. Feed it a smaller spectrum and it raises a clear error rather than silently doing the wrong thing. At 512×512 - the pack's native size - you're nowhere near that limit.
Where to start
Set gain_band5 to 1.5 and look at the sharpening. Set it to 0 and see the blur. Drop gain_dc to 0.5 and watch the whole image dim - that's your brightness knob, frequency-style. Once you've internalized the mapping, you can do gentle, controlled texture work: boost band 5 slightly for pop, keep band 1 for smooth color, and recombine through ImageIFFT2D. Just remember the IFFT clips at [0, 1], so stacking multiple gains above 1 will crush highlights.
How to install it
Same pack, same drill. ComfyUI Manager → search ComfyUI-FFT-2D → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/NobutakaKuroki/ComfyUI-FFT-2D
Restart ComfyUI and it's in the fft category with its siblings. No extra pip dependencies, no models to fetch. The lesson_workflows/3_BandPassFilter.json file is the intended learning path for this node, and hanging an FFTMagnitudePreview off the output while you move sliders is the fastest way to see what you're doing.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| frequency | FREQUENCY | — | |
| gain_dc | FLOAT | 1.000–3 | — |
| gain_band1 | FLOAT | 1.000–3 | — |
| gain_band2 | FLOAT | 1.000–3 | — |
| gain_band3 | FLOAT | 1.000–3 | — |
| gain_band4 | FLOAT | 1.000–3 | — |
| gain_band5 | FLOAT | 1.000–3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| frequency | FREQUENCY | — |