Imgutils Restore (SCUNet)
Denoise anime art with a real restorer
- image
- image
Grain, JPEG blockiness, scan noise, that faint "everything has a texture" fuzz on old sources - diffusion models won't fix it by re-rolling the seed, because the noise is in the pixels, not the prompt. Imgutils Restore (SCUNet) is a proper restoration network for exactly that job: it runs a trained denoiser over the image and hands back a cleaner version at the same resolution. It's part of the xiaden/comfyui-imgutils pack wrapping the deepghs/imgutils library.
SCUNet is a CNN for blind image restoration - "blind" meaning it doesn't need to be told what kind of noise it's removing; it figures out the degradation from the image itself. This node exposes two trained variants via the mode dropdown:
- GAN (default) - trained adversarially. Perceptually sharper and more detailed, better at restoring texture, at the cost of occasionally inventing detail or plastic-looking output. This is the default and usually the right first pick for art.
- PSNR - trained purely for pixel fidelity (higher PSNR = closer to ground truth). Cleaner, more conservative, slightly softer; better when you want the safest possible output - say, a source you can't afford to have embellished.
The other input is tile_size (default 128, range 64–512, step 64) - processing happens in tiles to bound VRAM. The tooltip says it plainly: larger = more VRAM. If you see tile seams, raise it; if you're on a tight GPU, keep it small. The single output is the restored image, same dimensions as the input - this node does not upscale.
Where it fits
Use it before an upscale pass: a clean input gives an upscaler much less artifact to amplify, and SCUNet is the right tool when the problem is noise rather than blur. Blur is NAFNet's job - that node is also in this pack, and the two are a natural stack (denoise, then deblur if needed, then upscale). One honest limit: a heavy, model-trained GAN mode can "clean" away fine detail you wanted - flat anime color survives fine, but delicate screentone or hatching can get smoothed into mush. If you see that, flip to PSNR mode rather than lowering tile size; that's the knob that trades detail for safety.
Install & gotchas
cd ComfyUI/custom_nodes/
git clone https://github.com/xiaden/comfyui-imgutils.git
cd comfyui-imgutils
pip install -r requirements.txt
Restart ComfyUI. Requires ComfyUI 0.25.0+ - the pack is written against the newer V3 node API, so older installs won't register it. SCUNet's weights download from HuggingFace Hub on first run into ~/.cache/huggingface/hub/; the first execution is slow and offline runs fail. As with the other image-to-image nodes here, it shows a live preview in the node, so you can A/B GAN vs PSNR before committing the whole workflow.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image to restore/denoise. | |
| mode | COMBO | GAN | SCUNet model variant: GAN or PSNR. |
| tile_size | INT | 12864–512 | Processing tile size. Larger = more VRAM. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |