Nodes/Eric_Image_Processing_Nodes/Auto-Denoise (Smart Selection)
ComfyUI Node

Auto-Denoise (Smart Selection)

Denoising that trains on your one image, not a dataset

By EricRollei·Created 9 months ago·Updated 8 months ago· 9
Auto-Denoise (Smart Selection)
  • image
  • denoised_image
  • processing_info
methodauto
deviceauto
train_epochs100
iterations3000
learning_rate0.010
analyze_imagetrue

Most of the denoisers in this pack are pretrained networks - feed them an image, get a result, fast. This one is different, and it's worth understanding why before you use it: both methods it offers actually train on the specific image you give it, right there in the graph, every single time. There's no shipped checkpoint doing the work. That makes it slower than a normal denoiser and genuinely useful for exactly one situation - noise you don't have a matching pretrained model for.

How it works

method gives you three options. Noise2Void is self-supervised, blind-spot denoising: it trains a small network directly on the noisy image, masking out each pixel from its own receptive field during training so the network learns to predict a pixel from its neighbors rather than memorizing the noise itself. Deep Image Prior goes further - it optimizes a randomly-initialized CNN's weights via gradient descent to reconstruct your image from noise, and because untrained CNN structure is itself biased toward natural-looking images, stopping the optimization early (before it starts reproducing the noise too) acts as an implicit denoiser. Neither needs paired clean/noisy training data, which is the whole point: they work on noise types no pretrained model was ever built for. auto picks between the two based on the image analysis this node runs when analyze_image is on.

The inputs and outputs that matter

  • image - required.
  • method - auto, noise2void, or deep_image_prior.
  • device - auto/cpu/cuda.
  • train_epochs (optional, default 100, 10–500) - Noise2Void's training length.
  • iterations (optional, default 3000, 500–10000) - Deep Image Prior's optimization steps; this is the "stop before it overfits to the noise" knob.
  • learning_rate (optional, default 0.01) - Deep Image Prior's step size.
  • analyze_image (optional, default true) - runs the analysis auto mode uses to choose a method.
  • Outputs: denoised_image, and processing_info telling you which method actually ran and how.

How to install it

Search Eric_Image_Processing_Nodes in ComfyUI Manager, or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Eric_Image_Processing_Nodes
cd Eric_Image_Processing_Nodes
pip install -r requirements.txt

Restart ComfyUI. This node's dependency is torch, listed as an optional extra in the pack's requirements - needed here because it's literally running a training loop, not just inference. No pretrained weights to download; there's nothing to fetch because the whole point is it trains fresh each run.

Common issues & troubleshooting

It's much slower than every other denoiser in the pack. That's not a bug, it's the trade-off - you're running a real (small) training loop per image instead of a single forward pass through a pretrained model. If you have a normal noise type (typical sensor noise, moderate JPEG artifacts), a pretrained denoiser elsewhere in this pack - SCUNet or SwinIR's color_dn/gray_dn tasks - will be dramatically faster for a similar or better result. Save this node for noise those don't handle well.

Deep Image Prior result looks like it's reproducing the noise instead of removing it. That's overfitting - you've let iterations run too long and the network has started memorizing the noisy image rather than denoising it. Lower iterations, or watch intermediate output if you can, and stop earlier next time.

On CPU, this is painfully slow. Both methods are running real optimization loops; CPU training is orders of magnitude slower than GPU. Set device to cuda if you have one - this is the node in the pack most worth having a GPU for, precision-wise, even more than the inference-only restorers.

auto picked a method you didn't expect. It's based on analyze_image's read of your image, not a fixed rule. If you know which method suits your noise, just set method explicitly rather than trusting auto - there's no downside to being direct here.

CategoryEric's Image Processing/Auto-Denoise

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
methodCOMBOauto3 options: auto, noise2void, deep_image_prior
deviceCOMBOauto3 options: auto, cpu, cuda
train_epochsoptINT10010–500
iterationsoptINT3000500–10000
learning_rateoptFLOAT0.0100.001–0.1
analyze_imageoptBOOLEANtrue

Outputs (2)

NameTypeDescription
denoised_imageIMAGE
processing_infoSTRING