Nodes/S42 CutFlow/Gabor Denoiser (S42)
ComfyUI Node

Gabor Denoiser (S42)

A denoiser that's really a spectral gate — useful for hiss, not for 'make it magical'

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
Gabor Denoiser (S42)
  • audio
  • AUDIO
threshold_db-45.0
atom_window_ms25
harmonic_preservation0.80

Calling this "Gabor Denoiser" sets it up as something fancier than it is. S42_GaborNoiseReduction is a spectral noise gate: it looks at the audio's frequency content and kills anything below a volume threshold. No learned model, no weights, no "AI" - just STFT thresholding with a blend knob. That's genuinely useful for one specific job (hisssy, roomy, or buzz-laden audio), and it's a poor fit for the other one (making a clean recording "magically cleaner").

The display name is "Gabor Denoiser (S42)," so if you see that in your node list, this is the one. Keep the honest framing in mind: it's a gate, and gates have a well-known failure mode - they also eat quiet, legitimate content that happens to sit below the threshold.

How it works

It takes an STFT of the audio, computes the magnitude of every time-frequency bin, and builds a hard mask: bins above threshold_db survive, bins below get muted. Then it cross-fades between the gated result and the original, controlled by harmonic_preservation:

  • harmonic_preservation at 1.0 → the gated (muted) version wins; only the "loud enough" parts remain.
  • At 0.8 (default) → mostly gated, but the original is still mixed in enough that quiet musical details don't fully vanish.
  • At 0 → effectively bypass.

So it's really a "spectral noise gate with a wet/dry blend," and atom_window_ms (default 25) sets the STFT window size - smaller windows are snappier but get mushy on low frequencies; larger windows are smoother but lag.

Inputs

  • audio - the waveform.
  • threshold_db - default -45, range -90 to 0. This is the kill line. Set it just above your noise floor and below your wanted signal. Too high and you eat real content; too low and it does nothing.
  • atom_window_ms - 5–100, default 25.
  • harmonic_preservation - 0–1, default 0.8.

Output

A single AUDIO out. No info, no meters - you're judging by ear, so A/B it against the original.

Installing it

Standard S42 CutFlow install: ComfyUI Manager → search "S42 CutFlow", or git clone https://github.com/GeekyGhost/S42-CutFlow into ComfyUI/custom_nodes/, install requirements, restart. It needs torch and torchaudio (both present in the portable build) - no model files, which is the entire point.

Gotchas

The trap is threshold placement. -45dB is fine for a quiet analog hiss, but if you have music with a real dynamic range, the quiet intro bars will get gated into silence before the gate opens. Drop harmonic_preservation to ~0.5 if you hear pumping. Also expect some "watery" artifacts on sustained low notes - that's the nature of STFT gating. And it's CPU-only per-frame math, so a long clip isn't instant; budget a little time for the first run. It's a hiss killer, not a magic wand - pair it with the pack's compressor afterward to even out what survives.

CategoryS42 CutFlow/Audio/Cleaning

Inputs (4)

NameTypeDefaultDescription
audioAUDIOThe input audio waveform.
threshold_dbFLOAT-45.0-90–0
atom_window_msINT255–100
harmonic_preservationFLOAT0.800–1

Outputs (1)

NameTypeDescription
AUDIOAUDIO