LC Image Denoise
Smooth the flat bits, keep the edges
- image
- image
Blurring an image to clean it up has one fatal flaw: the edges you want to keep are exactly the parts the blur destroys. LC Image Denoise (LCImageDenoise) is the LC123 pack's edge-preserving answer - it blurs the flat regions and leaves the boundaries alone, which is the difference between "denoised" and "smudged."
The mechanism is a classic: Gaussian-blur a copy, measure how much detail was lost, and only apply the blur where there wasn't any detail to lose. That's the whole secret, and it's the same family as the bilateral/guided filters the post-processing docs describe - smoothing flat areas while keeping boundaries crisp, which is what you want for cleaning up a render without turning it to mush.
The inputs
Four, all simple:
- blur_strength (sigma, 0.001–8, default 1) - how strong the Gaussian is. This is the "how much smoothing" knob.
- edge_preservation (0.001–0.25, default 0.05) - the threshold that decides what counts as an edge. Higher = more detail survives (fewer things treated as noise); lower = more aggressive smoothing.
- radius_multiplier (0–3, default 1) - scales the kernel radius relative to blur strength. A big radius smooths larger structure, not just pixel noise.
- strength (0–1, default 0.75) - the blend between original and denoised. 0 is the original, 1 is fully denoised.
One output: image, with the pack's signature on-node before/after wipe when you hover.
How to actually use it
The defaults are sensible (0.75 strength, 1 sigma, 0.05 edge) for a light clean-up. Where it earns its keep:
- Cleaning up after an aggressive sampler - a slightly crunchy render smooths out without the hair and fabric going plastic.
- Before a sharpen pass - denoise then sharpen is a classic combo; you kill the noise, then the sharpener only has real edges left to work on, so you get crispness without amplifying grain.
- On real photos - shot-on-phone noise on flat surfaces (walls, skies, skin) flattens out while text, eyes, and fine detail survive.
It's pixel math - instant, deterministic, no model. Put it after the sampler and before Save Image, and it plays well with the rest of the LC123 FX chain since everything passes IMAGE.
Install
Part of ComfyUI_LC123_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
or ComfyUI Manager, then restart. Pure torch - no pip extras, no model files.
Where people get burned
Two failure modes, both understandable. If you crank blur_strength way up expecting a stronger denoise, you'll instead start eating real detail - keep sigma under ~3 and compensate with strength instead. And if you find faces going waxy, your edge_preservation is too low; raise it toward 0.1 and only the flat regions get smoothed. This is a quiet niche pack with no community lore to consult, so those two knobs are the whole tuning story - the source in lc_image_tools.py is short and honest about it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| blur_strength | FLOAT | 1.0000.001–8 | Gaussian blur strength (sigma) |
| edge_preservation | FLOAT | 0.0500.001–0.25 | Higher keeps more edges/detail |
| radius_multiplier | FLOAT | 1.000–3 | Kernel radius scale relative to blur strength |
| strength | FLOAT | 0.750–1 | Blend between original (0) and denoised (1) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |