Nodes/ComfyUI_LC123_nodes/LC Image Denoise
ComfyUI Node

LC Image Denoise

Smooth the flat bits, keep the edges

By lonecatone23·Created 2 months ago·Updated about 12 hours ago· 19
LC Image Denoise
  • image
  • image
blur_strength1.000
edge_preservation0.050
radius_multiplier1.00
strength0.75

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.

CategoryLC123/image

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
blur_strengthFLOAT1.0000.001–8Gaussian blur strength (sigma)
edge_preservationFLOAT0.0500.001–0.25Higher keeps more edges/detail
radius_multiplierFLOAT1.000–3Kernel radius scale relative to blur strength
strengthFLOAT0.750–1Blend between original (0) and denoised (1)

Outputs (1)

NameTypeDescription
imageIMAGE