Nodes/ComfyUI GOAT Nodes/🐐 Advanced Sharpen
ComfyUI Node

🐐 Advanced Sharpen

Four sharpening methods stacked, with an artifact-reduction stage that stops it looking fried

By AconexOfficialΒ·Created 2 years agoΒ·Updated 12 months agoΒ· 11
🐐 Advanced Sharpen
  • image
  • IMAGE
  • WIDTH
  • HEIGHT
β—„overall_strength0.50β–Ί
β—„preprocess_denoise0.50β–Ί
β—„presetcrispβ–Ί
β—„luma_sharpentrueβ–Ί
β—„gf_sharpen0.50β–Ί
β—„usm_sharpen0.50β–Ί
β—„fft_sharpen0.50β–Ί
β—„edge_sharpen0.50β–Ί
β—„stage_aware_control0.50β–Ί
β—„postprocess_denoise0.50β–Ί
β—„tiled_sharpenfalseβ–Ί
β—„tile_size1024β–Ί

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 (default crisp) - 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) and tile_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.

Category🐐 GOAT Nodes/Postprocessing

Inputs (13)

NameTypeDefaultDescription
imageIMAGEβ€”
overall_strengthFLOAT0.500–1Master control for the final blend between original and sharpened image.
preprocess_denoiseFLOAT0.500–1Strength of selective denoising applied before sharpening (targets flat areas). May deteriorate small details at high values.
presetCOMBOcrispSelect a sharpening characteristic preset. Modifies internal parameters of sharpening stages.
luma_sharpenBOOLEANtruePerform sharpening only on the luminance (brightness) channel to avoid color artifacts.
gf_sharpenFLOAT0.500–1Strength of Guided Filter sharpening (good for general detail enhancement).
usm_sharpenFLOAT0.500–1Strength of Unsharp Mask (effective for edge contrast and granularity).
fft_sharpenFLOAT0.500–1Strength of Frequency Domain (FFT) sharpening (enhances high frequencies).
edge_sharpenFLOAT0.500–1Strength of Edge Refinement sharpening (selectively sharpens detected edges).
stage_aware_controlFLOAT0.500–1Controls 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_denoiseFLOAT0.500–1Strength of subtle final smoothing pass to reduce minor artifacts.
tiled_sharpenBOOLEANfalseProcess the image in seamless tiles to save memory on large images.
tile_sizeINT1024128–4096Size of tiles used if Tiled Sharpen is enabled.

Outputs (3)

NameTypeDescription
IMAGEIMAGEβ€”
WIDTHINTβ€”
HEIGHTINTβ€”