Apex Sharpen
Eight ways to crisp up an image, minus the halos
- image
- mask
- sharpened_image
- sharpen_info
Apex Sharpen is the post-processing polish node: eight sharpening algorithms in one dropdown, from the classic Unsharp Mask up to structure-aware and multi-scale variants, with the highlight/shadow protection most sharpeners skip. If your final render comes out looking slightly soft - and after a VAE decode it often does - this is the cheap, local way to add crispness back before you save.
The default and the one you'll use most is Unsharp Mask, and it's worth understanding because it's the least magical thing in the world: blur a copy of the image, subtract the blur from the original to get the "detail" layer, and add that detail back scaled by strength. Bigger radius = wider, softer halos; higher strength = more bite. The fancier modes are variations on that idea: High Pass extracts the detail layer directly, Laplacian uses a second-derivative edge detector, Structure Aware tries to sharpen along edges instead of across them (that's what edge_protection controls), and Multi-Scale sharpens at several radii at once to avoid a one-size halo. preserve_highlights and preserve_shadows clamp the result so you don't blow out speculars or crush blacks - the thing that makes cheap sharpening look like cheap sharpening.
The inputs that matter
- image - what you're sharpening.
- algorithm - the eight-way dropdown. Start at Unsharp Mask, graduate to Structure Aware when you want edge-aware.
- strength (0–5, default 1) - the amount. Go past ~1.5 on a detailed image and you're asking for trouble.
- radius (0.1–10, default 1) - how wide the effect spreads. Keep it small unless you know why you're raising it.
Then the useful-but-optional pile: threshold (skip sharpening on low-contrast areas, i.e. noise), edge_protection, fine_detail, the two preserve toggles, and a mask to sharpen only part of the frame. Outputs are sharpened_image and a sharpen_info string.
Where it belongs (and where it doesn't)
Put this after upscaling, not before. The KB's upscaling notes hammer a point that applies directly here: sharpening adds perceived detail but invents nothing. If your source is soft or out of focus, sharpening it just makes the softness crisper - the correct fix is to downscale to a sharper-relative base and rebuild from there, or use a proper generative restorer. As a finishing pass on an already-decent image, though, this node is exactly the right tool, and the performance story is good: ~18 ms for unsharp at 1024×1024 on an RTX 3080 per the pack's benchmarks.
Installing it
Part of the Apex Artist pack. ComfyUI Manager → search "Apex Artist" → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ApexArtist/comfyui-apex-artist.git
Restart ComfyUI; it lives under Add Node → Apex Artist → Image → Filters. No model downloads, no extra dependencies beyond what ComfyUI ships. Small MIT pack from an indie author, short readable source, no telemetry.
Gotchas
Halos - the bright rim around edges - are the tell you've oversharpened, and they're usually a radius problem, not a strength problem: big radius + high strength = visible halos. Raise threshold to stop it sharpening noise in flat areas. And remember that stacking this on an already-oversharpened upscale compounds the damage - one careful pass beats three aggressive ones. That's the discipline this node rewards.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| algorithm | COMBO | Unsharp Mask | 8 options: Unsharp Mask, High Pass Filter, Edge Enhancement, Structure Aware, Laplacian Sharpen, Multi-Scale Sharpen, +2 |
| strength | FLOAT | 1.00–5 | — |
| radiusopt | FLOAT | 1.00.1–10 | — |
| thresholdopt | FLOAT | 0.000–1 | — |
| preserve_highlightsopt | BOOLEAN | true | — |
| preserve_shadowsopt | BOOLEAN | true | — |
| edge_protectionopt | FLOAT | 0.00–1 | — |
| fine_detailopt | FLOAT | 1.00–3 | — |
| maskopt | MASK | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sharpened_image | IMAGE | — |
| sharpen_info | STRING | — |