🪠️ WWAA Gaussian Denoise Filter
Clean up an image without an AI — plain Gaussian smoothing done right
- image
- denoised_image
The WWAA Gaussian Denoise Filter is a classic signal-processing node hiding in an AI tool: it blurs away noise with a Gaussian kernel, with a few genuinely thoughtful controls. It's not an AI denoiser - there's no model, no "recover detail from thin air." It's the image-processing equivalent of a noise gate: smooth the high-frequency junk, optionally sharpen back what's left. For pre-processing a noisy source before upscaling or feeding it into a vision model, it's the right tool.
It's part of WWAA-CustomNodes from WeirdWonderfulAI.Art. Where it differs from a stock "blur" node is the set of tuning options that acknowledge real trade-offs instead of hiding them.
How it works
The implementation uses OpenCV's GaussianBlur on each image. The two knobs that matter most:
sigma(0.1–20, default 1.5) - the Gaussian spread. Low = gentle denoise that keeps edges; high = heavy smoothing that melts detail. The tooltip says it plainly: low is subtle, high is heavy.kernel_size(0–51) - set it to0(default) and the node auto-derives an odd kernel from sigma (theceil(6·sigma)rule of thumb). Leave it at 0; manually forcing a big kernel with a small sigma is how you get weird smearing.
Two refinements are worth highlighting. passes (1–10) applies the blur repeatedly, which approximates stronger denoising without a monster kernel. sharpen_strength (0–3, default 0) runs an unsharp mask after denoising - original + strength·(original − blurred) - so you can smooth the noise and then pull edge definition back. That's the difference between "the image looks soft" and "the image looks clean but still sharp," and it's a rare convenience in a utility node.
The color_space choice is the clever bit: RGB blurs all three channels equally, which can smear color. LAB (luminance only) converts to LAB and blurs just the L (luminance) channel, leaving chroma untouched - the output keeps color fidelity at the cost of slightly more computation. For color photos, LAB is usually the better default.
Inputs that matter
sigma- the main strength dial.sharpen_strength- pair this with denoising to avoid a soft result.color_space-LABwhen color accuracy matters.kernel_size- leave at 0 unless you know why.
Installing it
It's in the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/hgabha/WWAA-CustomNodes
Restart ComfyUI. Or ComfyUI Manager → search "WWAA Custom Nodes" → install → restart. It's under 🪠️ WWAA/image. No models to download.
Gotchas
The one real trap: this is OpenCV-backed, and the pack's image nodes import OpenCV at module load - if your ComfyUI Python environment lacks opencv, the whole 🪠️ WWAA/image menu fails to register. Install opencv-python into the same environment ComfyUI uses and restart. And remember what it isn't: for the "invent missing detail" kind of denoising you'd pair a real AI upscaler with a tile-ControlNet pass; this node is for smoothing, not reconstruction. Used as a front-end cleaner before an upscale pipeline, it earns its keep.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| sigma | FLOAT | 1.50.1–20 | Gaussian spread. Low = subtle denoising, High = heavy smoothing. |
| kernel_size | INT | 00–51 | Kernel size (must be odd). Set to 0 to auto-calculate from sigma (recommended). |
| passes | INT | 11–10 | Number of filter passes. More passes = stronger denoising effect. |
| sharpen_strength | FLOAT | 0.000–3 | Unsharp-mask strength applied after denoising. 0 = disabled. Recovers edge sharpness. |
| color_space | COMBO | RGB processes all channels equally. LAB only smooths luminance, preserving colour fidelity. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| denoised_image | IMAGE | — |