RC Sharpen
Sharpen that doesn't blow out the noise
- image
- IMAGE
Every AI image is soft in its own way, and the standard fix - "just apply a sharpen filter" - is usually a one-way ticket to crunchy halos. RC_Sharpen is the RC Image Compositor pack's answer: a sharpen node with three methods, a strength that goes past 1.0 when you're brave, and a threshold control that exists specifically so you don't amplify noise into confetti. It lives under RC/Filters.
How it works
Three sharpening approaches, all familiar from classic image processing:
- unsharp_mask (default) - the classic: blur a copy, subtract it from the original, add the difference back scaled by strength. It sharpens edges without touching flat areas much. This is the one to start with for photography and portraits.
- high_pass - takes the high-frequency detail (the blurred copy subtracted) and adds it back harder. Punchier, and it amplifies whatever's already there - including grain.
- edge_enhance - PIL's edge-enhance filter. Simplest, coarsest, best for line art and text where you want visible edges.
The controls:
- strength (0–5) - the tooltip frames 1.0 as "normal," and >1.0 is "sharper." For reference, most photos want 0.3–1.5; past ~2.0 you're in stylized-territory.
- radius (0.1–10) - how wide an edge the sharpen sees. Big radius = halos; small radius = detail. This is where "unsharp" gets its name.
- threshold (0–1) - the noise guard. Only differences above the threshold get sharpened, so low-contrast noise stays untouched. If your image is noisy, this is the control that saves it.
Output is a single IMAGE, same size, batch-safe.
Installing it
ComfyUI Manager → search "RC Image Compositor" → install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/kj863257/ComfyUI_RC_Image_Compositor
cd ComfyUI_RC_Image_Compositor
pip install -r requirements.txt
Dependencies: pillow, numpy, opencv-python. Nothing to download.
Where people get burned
- Sharpening after upscaling is the order that works. Sharpen before an upscale and the resampler just smooths your sharpen away. Do the upscale, then sharpen the final pixels - the pack's RC Image Scale feeds this node naturally.
- Threshold at 0 sharpens everything, including noise. The whole point of the slider is to leave low-contrast grain alone. If your output looks like static, you left threshold at 0 on a noisy image.
- Halos are a radius problem, not a strength problem. When you see white fringes along edges, your radius is too big, not your strength. Lower radius before touching strength.
- Don't sharpen twice. A second pass on an already-sharpened image multiplies artifacts. If it still looks soft, the image needs a better upscale, not more sharpen.
Sharpen is one of those nodes that's quietly essential in any "final pass" section of a workflow. It won't fix a bad upscale, but it's the difference between "AI soft" and "looks printed" when everything else is right.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| strength | FLOAT | 1.00–5 | Sharpening strength (1.0 = normal, >1.0 = sharper) |
| method | COMBO | unsharp_mask | Sharpening method: - unsharp_mask: Classic unsharp masking - high_pass: High-pass filter sharpening - edge_enhance: Edge enhancement sharpening |
| radius | FLOAT | 1.00.1–10 | Sharpening radius (for unsharp mask) |
| threshold | FLOAT | 0.000–1 | Sharpening threshold (avoid noise amplification) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |