Sharpen
The fix after your upscaler goes soft
- image
- IMAGE
Every upscale path ends the same way: bigger image, softer edges. Lanczos is free and fast but adds nothing back, and even a good 4x model leaves the result a little mushy if you've re-sampled at higher resolution. Sharpen is the classic finish - one node at the end of the chain that pulls the definition back out. This is a plain, unglamorous, reliable utility, and for most of my workflows it's the last node before Save Image.
How it works
Under the hood it's an unsharp-style convolution: build a kernel where every pixel is −1 and the center is the kernel size squared, so the whole thing sums to 1, then push it through a conv2d per channel. That's the textbook "subtract a blurred copy, add the difference back" sharpening, implemented as one pass. The alpha parameter just scales that whole kernel.
Two inputs matter, and both are worth understanding because this is the node where people overdo it:
- sharpen_radius (1–15, default 1) - the size of the detail you're enhancing. Radius 1 means tight, local edges. Bigger radii start grabbing halos around anything high-contrast, and by the time you're at 8+ the image has that crunchy, oversharpened look.
- alpha (0.1–5, default 1) - how hard the sharpening hits. Think of it as volume.
Output is a single IMAGE, clamped to 0–1, ready to drop straight into Save Image or whatever's next.
Install
Sharpen lives in the ComfyUI-post-processing-nodes pack, which bundles ~22 other post nodes in one clone.
- ComfyUI Manager: search "post processing nodes", install, restart.
- Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/EllangoK/ComfyUI-post-processing-nodes
Restart after. There's no requirements.txt and nothing to download - the pack leans on torch, numpy, opencv and Pillow, all already in a stock ComfyUI. You'll find it under postprocessing → Filters in the node menu.
Where people get burned
The two classic mistakes: cranking alpha past 2 "to be safe" and getting white halos around every edge, and using a big radius on an already-soft source, which sharpens the noise instead of the detail. The upscaling essay in our KB has the underlying point: if the source is genuinely soft, sharpening won't conjure detail that was never there - that's an upscaler's job, not a sharpen node's. So treat this as the final coat of varnish: radius 1–3, alpha 1–1.5, and compare against the unsharpened version before you commit. If you're doing anime, lean lower - the effect shows up fast on clean linework.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| sharpen_radius | INT | 11–15 | — |
| alpha | FLOAT | 1.00.1–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |