Sharpening Pro
Sharpening Pro — Lightroom-style sharpening that doesn't wreck your colors
- image
- image
Sharpening Pro is the pack's answer to "my image looks soft after upscaling." It's an unsharp-mask node with the Lightroom control set - Amount, Radius, Detail, and edge-aware Masking - but the implementation detail that matters is that it sharpens luminance only, then reapplies that detail to RGB with a ratio method. Sharpening in full RGB is how you get ugly color fringes on edges; this node doesn't do that, which makes it one of the few sharpeners I'll run on faces and foliage without holding my breath.
In the photorealism context it earns its place at the very end of the pipeline. Real photos have edge detail and micro-contrast that diffusion outputs flatten; a light sharpen after upscaling is the last step that makes a render read as captured. But it's also the easiest way to ruin realism - over-sharpening makes skin plastic and bakes in halos, which is precisely the "too-smooth, too-crisp" look that outs AI images. Use it late, use it lightly.
How it works
It converts to Rec.709 luminance, blurs it with a gaussian at your radius, and subtracts to get a detail layer - that's the unsharp mask. A second, finer pass at half the radius adds detail emphasis back for small structures. The result is scaled by amount, then (if you've set masking above 0) gated by an edge mask so flat areas like sky and skin are protected. The sharpened luminance is applied back as a ratio, clamped to avoid blowing up in dark regions - so colors stay intact while edges get the contrast bump.
The inputs that matter
- amount (0–150, default 40) - how much sharpening. 40 is a gentle, safe default; past ~80 you're in stylized territory.
- radius (0.5–3, default 1) - the scale of detail you're enhancing. Small radii (0.5–1) hit fine texture; large radii (2–3) are for soft, wide edges and will produce visible halos fast.
- detail (0–100, default 25) - the fine-detail emphasis pass. Higher sharpens fine textures more.
- masking (0–100, default 0) - the edge-aware gate. At 0 it sharpens everything, noise and smooth gradients included; crank it up and only strong edges get the treatment. On portraits, this is the slider that saves skin.
- strength (0–1) - global blend between original and sharpened.
Output is image. It's spatial, so keep it out of the LUT bake chain - apply after Extract.
Install & notes
Standard Darkroom install: Manager → search "Darkroom", or git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom + pip install -r requirements.txt + restart. It leans on scipy's gaussian filter - CPU-only, instant.
The trap is masking left at 0. On a portrait that means sharpening skin texture and any chroma noise right along with the eyes, and it'll look worse than not sharpening. My workflow: amount 40–60, radius 1, detail 25, masking 50+, and inspect at 100% before committing. If you see halos on edges, drop radius before you drop amount.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| amount | FLOAT | 400–150 | Sharpening amount (0-150). How much sharpening to apply |
| radius | FLOAT | 1.00.5–3 | Sharpening radius. Larger = coarser detail enhancement |
| detailopt | FLOAT | 250–100 | Fine detail emphasis. Higher = sharpen finer textures more |
| maskingopt | FLOAT | 00–100 | Edge-aware masking. Higher = sharpen only edges, protect smooth areas |
| strengthopt | FLOAT | 1.000–1 | Blend between original (0) and sharpened (1) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |