π Advanced Sharpen
Four sharpening methods stacked, with an artifact-reduction stage that stops it looking fried
- image
- IMAGE
- WIDTH
- HEIGHT
Not in the pack's README's node table either - this one's newer than the last documented release, but the description that does exist in its schema is unusually complete, so there's plenty to work with. Advanced Sharpen is a sharpening suite, not a single filter: it runs up to four different sharpening algorithms at once, each contributing at its own strength, with denoising passes bracketing the whole thing to keep the result from looking crunchy.
How it works
Most "sharpen" nodes you'll run into are one algorithm - usually unsharp masking. This one gives you four, blended together, because each catches different kinds of detail:
- GF (guided filter) sharpen - an edge-aware sharpening approach that uses a guide image (here, the image itself) to sharpen while respecting existing edges, which tends to avoid the halo artifacts a naive sharpen produces around high-contrast boundaries.
- USM (unsharp mask) sharpen - the classic technique: blur a copy, subtract it from the original to isolate high-frequency detail, then add that detail back in at extra strength. The one you already know from Photoshop.
- FFT sharpen - works in frequency space, boosting high-frequency components directly via Fast Fourier Transform rather than through a blur-and-subtract approximation.
- Edge sharpen - targets edges specifically rather than general high-frequency content.
Each has its own strength slider (gf_sharpen, usm_sharpen, fft_sharpen, edge_sharpen), all defaulting to 0.5, so you can lean harder on whichever method suits your image rather than being stuck with one algorithm's particular look.
The part that separates this from a plain multi-method sharpen stack is Stage-Aware Control (SAC) - stage_aware_control - plus the two denoise passes bracketing it: preprocess_denoise runs before sharpening to reduce noise the sharpening would otherwise amplify (sharpening noisy AI output is a classic way to turn subtle grain into ugly crunchy artifacts), and postprocess_denoise cleans up after, catching artifacts the sharpening stages introduce. luma_sharpen, on by default, restricts sharpening to the luminance channel rather than color channels - the standard trick for avoiding color fringing on sharpened edges, since detail perception is mostly a luminance thing anyway. preset (clean/crisp/gritty, default crisp) is a shortcut that presumably retunes the underlying strengths toward a gentler, balanced, or more aggressive look - try all three before hand-tuning individual sliders.
Inputs and outputs that matter
image- required.overall_strength(0β1, default 0.5) - the master dial; scales everything below it.preset(defaultcrisp) - start here.luma_sharpen(default on) - keep this on to avoid color fringing unless you have a specific reason to sharpen color channels too.preprocess_denoise/postprocess_denoise(both default 0.5) - the artifact guardrails; don't zero these out on already-noisy source images.- The four method strengths (
gf_sharpen,usm_sharpen,fft_sharpen,edge_sharpen, all default 0.5) - the fine-tuning knobs once the preset gets you close. tiled_sharpen(default off) andtile_size(default 1024) - for very large images where processing the whole frame at once is too heavy.
Three outputs: IMAGE, plus WIDTH and HEIGHT as plain ints for downstream nodes that need the exact dimensions.
How to install it
ComfyUI Manager: search "GOAT Nodes", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes.git
then restart. No models - this is entirely classical image processing (guided filter, unsharp mask, FFT, edge detection), not a learned model, so there's nothing to download and it should run fine even on modest hardware.
Common issues & troubleshooting
Output looks crunchy or over-sharpened. With four methods stacking, it's easy to overshoot even with each individual slider at a "reasonable" 0.5. Pull overall_strength down first rather than fighting four sliders individually - it scales the whole stack at once.
Halos around high-contrast edges. That's the classic USM/edge-sharpen failure mode. Lean more on gf_sharpen (guided filter is specifically designed to avoid this) and less on usm_sharpen/edge_sharpen if you're seeing rings around edges.
Grain or noise getting amplified into visible artifacts. Raise preprocess_denoise - that's exactly what it's there to prevent, since sharpening any noisy source (which most AI output is, at some level) will amplify that noise unless it's cleaned up first.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| overall_strength | FLOAT | 0.500β1 | Master control for the final blend between original and sharpened image. |
| preprocess_denoise | FLOAT | 0.500β1 | Strength of selective denoising applied before sharpening (targets flat areas). May deteriorate small details at high values. |
| preset | COMBO | crisp | Select a sharpening characteristic preset. Modifies internal parameters of sharpening stages. |
| luma_sharpen | BOOLEAN | true | Perform sharpening only on the luminance (brightness) channel to avoid color artifacts. |
| gf_sharpen | FLOAT | 0.500β1 | Strength of Guided Filter sharpening (good for general detail enhancement). |
| usm_sharpen | FLOAT | 0.500β1 | Strength of Unsharp Mask (effective for edge contrast and granularity). |
| fft_sharpen | FLOAT | 0.500β1 | Strength of Frequency Domain (FFT) sharpening (enhances high frequencies). |
| edge_sharpen | FLOAT | 0.500β1 | Strength of Edge Refinement sharpening (selectively sharpens detected edges). |
| stage_aware_control | FLOAT | 0.500β1 | Controls the intensity of Stage-Aware Control. 0.0 disables SAC. Higher values activate content-aware moderation (flatness, edges, noise, detail, halos) to reduce artifacts. |
| postprocess_denoise | FLOAT | 0.500β1 | Strength of subtle final smoothing pass to reduce minor artifacts. |
| tiled_sharpen | BOOLEAN | false | Process the image in seamless tiles to save memory on large images. |
| tile_size | INT | 1024128β4096 | Size of tiles used if Tiled Sharpen is enabled. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| WIDTH | INT | β |
| HEIGHT | INT | β |