Donut Sharpener (DEPRECATED)
Still loads old workflows, no longer in the menu
- input_image
- enhanced_image
- noise_reference
- enhancement_report
- spectral_analysis
Donut Sharpener is a deprecated node - and by "deprecated" the pack means something specific: it's still registered, it still loads old workflows byte-for-byte, but it's hidden from the Add Node menu and its logic has been folded into the newer Donut Spectral Sharpener. If you've seen this node in a downloaded workflow, this page is the "what is this and do I still need it" answer. Short version: you don't, but knowing what it did helps you migrate.
What it did
It was a frequency-domain sharpener. Instead of a dumb unsharp-mask kernel, it decomposed the image into frequency bands, worked in the Fourier domain, and rebuilt it - the goal being to enhance fine detail without the halo artifacts that classic sharpening leaves on bright edges. It generated its own synthetic reference characteristics (Gaussian, Perlin, film grain, sensor noise, realistic grain) rather than matching a real photo, which is why it reads as "sharpen" rather than "style transfer."
The controls that mattered:
- enhancement_strength - how hard to push the enhancement (0 to 1000, default 1).
- frequency_bands - how many bands to split the spectrum into (8–32, default 16). More bands = more surgical, slower.
- noise_type / noise_strength / noise_scale / noise_saturation - the synthetic reference. With
noise_strengthat 0, the node self-amplifies the image's own high frequencies; with it above 0, it injects synthetic grain to make AI output look less plastic. - spectral_mode -
full_spectrum,high_freq_only, oradaptive. - blend_factor - how strongly the result is blended back with the original using a darken blend, which is the anti-halo mechanism.
It returned four outputs: enhanced_image, noise_reference (the synthetic reference it built), plus enhancement_report and spectral_analysis strings.
Where it went
The pack consolidated the two legacy sharpeners (this one and "Donut Sharpener (from reference)") into a single node, Donut Spectral Sharpener, with a reference_source selector that maps onto the old behaviors:
self_amplify→ this node'snoise_strength == 0path.generated_noise→ this node withnoise_strength > 0.external_reference→ the "from reference" sibling's job.
So if a workflow you downloaded has "Donut Sharpener" in it, the fix is to replace it with Donut Spectral Sharpener set to self_amplify (or generated_noise, if the old node had grain enabled). If you're not rebuilding the workflow and it still runs, leave it alone - deprecated here doesn't mean broken, and it's kept registered specifically so saved graphs deserialize.
Install
The node ships inside ComfyUI-DonutNodes. In ComfyUI Manager, search "DonutNodes" and install, then restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DonutsDelivery/ComfyUI-DonutNodes.git donutnodes
cd donutnodes
python -m pip install -r requirements.txt
Requirements are just opencv-python-headless, scipy, matplotlib, psutil, tqdm, requests - no model downloads. One honest note: frequency-domain sharpening with synthetic grain is a niche enhancement, and the community's mainstream answer to "AI images look oversmoothed" has been good old-fashioned detailers and generative upscalers. The reference-based variant is the interesting one; this self-contained version is more of a science-fair trick.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| input_image | IMAGE | — | |
| enhancement_strengthopt | FLOAT | 1.00–1000 | — |
| frequency_bandsopt | INT | 168–32 | — |
| noise_typeopt | COMBO | gaussian | 6 options: gaussian, perlin, film_grain, sensor_noise, uniform, realistic_grain |
| noise_strengthopt | FLOAT | 00–100 | — |
| noise_scaleopt | FLOAT | 1.00.1–10 | — |
| noise_saturationopt | FLOAT | 1.000–1 | — |
| spectral_modeopt | COMBO | full_spectrum | 3 options: full_spectrum, high_freq_only, adaptive |
| blend_factoropt | FLOAT | 0.80–1 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| enhanced_image | IMAGE | — |
| noise_reference | IMAGE | — |
| enhancement_report | STRING | — |
| spectral_analysis | STRING | — |