Highlight Shadow Brightness
Recover blown-out or muddy AI output
- image
- image
AI generations have a habit of coming out either too contrasty (blown highlights, crushed shadows) or too flat (everything sitting in a narrow gray band), and a global brightness slider fixes neither problem well - pull brightness down to save the highlights and you just made the shadows worse, or vice versa. HighlightShadowBrightnessNode splits the correction into three independent controls so you can pull highlights back down, lift shadows up, and adjust overall brightness separately, instead of one lever fighting all three jobs at once.
This is squarely a post-processing tool, not a generation-time one - it does its work on a finished image, the same category of fix as pulling saturation down or adding a color cast to counter the oversaturated, high-contrast look AI models tend toward by default.
The inputs and outputs that matter
Three sliders, all the same shape:
highlight- pulls the brightest parts of the image down (negative) or pushes them up (positive).shadow- same idea for the darkest parts: lift them (positive) or deepen them (negative).brightness- an overall exposure shift on top of the above.
All three run -10 to 10, default 0, step 0.1 - the same scale as MingNodes' other tonal-adjustment nodes in this pack. As with those, the range is wider than the useful part of it: small moves (0.5–2) do real work, and you'll rarely need to approach the extremes before the image starts looking obviously manipulated.
One image in, one image out.
How it works in practice
Think of it as the "recovery" and "fill light" sliders from a RAW photo editor, minus the histogram to look at while you drag them. If your generation came out with blown-out skies or windows, pull highlight down. If shadow areas turned into a featureless black block, push shadow up to bring detail back without touching the rest of the tonal range. brightness is there for the simple case where the whole image just needs to sit a bit lighter or darker after you've already balanced the highlight/shadow split.
Because it works on the whole image rather than by mask or region, it's best used as a global tone-shaping pass - the equivalent of the first adjustment you'd make in a photo editor before moving on to anything more targeted like color balance or local dodging and burning.
How to install it
Via ComfyUI Manager: search "ComfyUI-MingNodes," install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/mingsky-ai/ComfyUI-MingNodes
then restart. No model downloads, no API keys - this node needs nothing beyond the base pack.
Common issues & troubleshooting
Pushing shadow up too far makes the image look washed out and flat. That's the tradeoff of shadow recovery generally - lift shadows too aggressively and you lose the sense of depth contrast gives an image. Small moves, and check the result at full resolution rather than a thumbnail before committing to a value.
Highlights and shadows both look wrong, and nudging one makes the other worse. That usually means the base generation has a genuinely broken tonal range (severely under- or overexposed) that no amount of post-nudging will fully rescue - this node does correction, not reconstruction. Consider regenerating with adjusted sampler/CFG settings rather than fighting it entirely in post.
Values feel like they need to be huge to see any effect, or the opposite. Same note as the rest of this pack's tonal nodes: the ±10 range is generous relative to how much visible change each step produces, so work in small increments rather than jumping straight to the extremes.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| highlight | FLOAT | 0.0-10–10 | — |
| shadow | FLOAT | 0.0-10–10 | — |
| brightness | FLOAT | 0.0-10–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |