FFT

Filter an image in the frequency domain using a Fast Fourier Transform.

What it does

FFT filters an image in the frequency domain. The image is transformed into a frequency spectrum, bands of that spectrum are cut, kept or reshaped, and the result is transformed back. Low Pass keeps smooth, low-frequency content and drops fine detail. High Pass keeps edges and texture and drops the smooth content. Band Pass and Band Reject work on the range between a low and a high cutoff. Phase Only rebuilds the image from spectral phase alone, which reads as a strong edge detect. Analyze runs the forward transform only, with no filtering.

Every FFT node drives two outputs at once: the filtered image, and a magnitude-spectrum visualisation showing what the current cutoffs are doing to it.

When to use it

ParameterTypeDefault
content_inOneOf([FieldOf(Raster)])
modeString"Low Pass"
cutoffNumber0.500
cutoff_highNumber0.800
falloffString"Butterworth"
falloff_widthNumber0.100
db_floorNumber-80
spatial_strengthField
strengthNumber1

Gotchas

Cutoff High affects Band Pass and Band Reject only. In every other mode it stays on the graph with no effect on the result.

Db Floor reshapes the contrast of the spectrum visualisation, controlling how much dim, high-frequency detail becomes visible. It does not change the filtered image.

FFT always drives both content_out and spectrum_out, whichever mode is active. In Analyze mode content_out is not a passthrough of the source: it is the same log-magnitude spectrum view as spectrum_out. Split off content_in before the FFT node to keep the untouched source alongside the spectrum.

Falloff sets how hard the cutoff edge is. Sharp is a brick-wall cut and can ring or ghost on high-contrast images, Gaussian is the smoothest transition, Butterworth sits between them. If a Low Pass or High Pass result looks ringy, switch Falloff to Gaussian or widen Falloff Width before lowering the cutoff further.

Worked example

  1. Add an FFT node and wire an image into Content.

  2. Set Mode to Low Pass and drag Cutoff down to the softness you need, watching spectrum_out as the cutoff ring shrinks toward the centre.

  3. If the result looks ringy, switch Falloff from Sharp to Gaussian, or raise Falloff Width.

  4. Switch Mode to Band Reject and set Cutoff and Cutoff High around a repeating pattern's frequency to suppress that band alone.

See also

Blur · Convolve · effect.edge_detect · Rasters (images)