Auto-Denoise (Smart Selection)
Denoising that trains on your one image, not a dataset
- image
- denoised_image
- processing_info
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, ordeep_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 analysisautomode uses to choose a method.- Outputs:
denoised_image, andprocessing_infotelling 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| method | COMBO | auto | 3 options: auto, noise2void, deep_image_prior |
| device | COMBO | auto | 3 options: auto, cpu, cuda |
| train_epochsopt | INT | 10010–500 | — |
| iterationsopt | INT | 3000500–10000 | — |
| learning_rateopt | FLOAT | 0.0100.001–0.1 | — |
| analyze_imageopt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| denoised_image | IMAGE | — |
| processing_info | STRING | — |