Nodes/ComfyUI_StarNodes/⭐ Star Adaptive Detail Enhancement
ComfyUI Node

⭐ Star Adaptive Detail Enhancement

Star Adaptive Detail Enhancement

By Starnodes2024·Created 2 years ago·Updated 2 days ago· 106
⭐ Star Adaptive Detail Enhancement
  • image
  • IMAGE
enhancement_strength1.0
edge_threshold0.3
face_boost1.5
texture_boost1.2
noise_suppression0.5

A plain "Sharpen" node hits everything equally - including the sky, the noise, and the pores you didn't want to see. Star Adaptive Detail Enhancement is the smarter cousin: it looks at what's actually in the image, boosts edges, faces and texture where they matter, and backs off on flat areas. It's a one-node post-process pass you drop after a decode (or after an upscale) when the image is almost right but reads a little soft.

The node is in the ⭐StarNodes/Image And Latent category of the StarNodes pack, and it's one of the pack's few nodes with a real dependency: opencv-python. The whole enhancement engine is OpenCV under the hood.

How it works

The "adaptive" part isn't marketing. On each frame the node runs three cheap analyses before it touches a pixel:

  • Edge detection - a Sobel gradient plus a Canny pass, blended into a per-pixel edge map. edge_threshold (default 0.3) decides how strong an edge has to be to get sharpened at all.
  • Face detection - this is honestly skin-tone detection (HSV color space plus some morphology), not a face detector, so it mostly finds skin-colored regions. face_boost (default 1.5) multiplies the sharpening strength there. It works well for portraits and badly for a pink wall, which is fine - you're tuning a whole-image pass, not a face-fixer.
  • Texture analysis - a local-variance map that finds detailed regions (fabric, hair, foliage) so texture gets sharpened and flat areas don't. texture_boost defaults to 1.2.

Those three maps gate an unsharp-mask style sharpen: image + strength * (image - blur), blended per-pixel by the analysis masks. noise_suppression (default 0.5) drives a bilateral denoise that runs over the same regions - the idea being you can sharpen hard without blowing up sensor-style noise.

The inputs that matter

Honestly there are only two you'll touch most days. enhancement_strength (0–3, default 1) is the master volume. noise_suppression (0–1, default 0.5) is the safety valve - if your sharpened output looks crunchy, that's the dial to raise. The three analysis parameters (edge_threshold, face_boost, texture_boost) are for when you know the problem: skin too harsh, drop face_boost; fine detail too mushy, raise texture_boost.

There's one input - image - and one output, IMAGE, which feeds straight into a preview or a Save node.

Installing it

StarNodes installs through ComfyUI Manager (search Starnodes, Install, restart) or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt

If opencv-python is missing, this node won't load - but StarNodes is built so the rest of the pack still loads, and the ComfyUI console tells you exactly what to pip install. After install, double-click the canvas, type star, or open the ⭐StarNodes category.

Where people get burned

The classic mistake is cranking enhancement_strength past ~1.5 and wondering why everything gets that overcooked, haloed look. Start at 1, keep noise_suppression above 0.3, and treat the analysis params as levers you move one at a time. Also worth knowing: it operates on whatever resolution you give it, so it's most useful after an upscale rather than before - sharpening a 512px image just amplifies its softness. Run it on the bigger version and it earns its keep.

Category⭐StarNodes/Image And Latent

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
enhancement_strengthFLOAT1.00–3
edge_thresholdFLOAT0.30.1–1
face_boostFLOAT1.50.5–3
texture_boostFLOAT1.20.5–2.5
noise_suppressionFLOAT0.50–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE