Color Balance
Photoshop's classic tool, one tonal range at a time
- image
- image
If you've used Photoshop's Color Balance dialog, this node is exactly that, ported into a ComfyUI graph. It's built around the same idea: three color axes (cyan↔red, magenta↔green, yellow↔blue) applied to one of three tonal ranges at a time - shadows, midtones, or highlights. It's the tool you reach for when a global saturation or hue shift feels too blunt and you want, say, warmer highlights without touching the shadows, or a cooler shadow tone while leaving skin midtones alone.
How it works
Photographic color grading rarely wants a uniform shift across the whole tonal range - a cinematic look is often built from cooling the shadows and warming the highlights simultaneously, which a single hue slider can't express. Color Balance solves that by letting you target one range and push it along each of the three complementary color axes independently.
The catch - and this is the thing that trips people up coming from Photoshop - is that this node only adjusts one tonal range per instance. Photoshop's dialog lets you flip between Shadows/Midtones/Highlights within a single tool session and stack all three adjustments at once; here, each ColorBalanceNode handles exactly one range, set by adjust_type. If you want the classic "cool shadows, neutral mids, warm highlights" look, you chain three of these nodes in sequence, each set to a different range.
The inputs and outputs that matter
image- the picture to grade.adjust_type- which tonal range this instance affects:midtones(the default),highlights, orshadows.cyan_red,magenta_green,yellow_blue- the three classic color-balance axes, each an integer from -100 to 100, default 0. Negative pushes toward the first color named, positive toward the second - so a negativecyan_redpushes cyan in, positive pushes red in, and so on for the other two axes.
One output: image.
Unlike the pack's other tonal nodes (brightness/contrast/saturation, highlight/shadow), this one uses the full ±100 range genuinely - it maps much closer to what Photoshop users expect, so don't assume the tiny-increment caution that applies elsewhere in this pack applies here too.
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 models to download, no API keys - just the base pack.
Common issues & troubleshooting
Only one tonal range seems to be affected, and I wanted all three. That's the node working as designed, not a bug - it's single-range per instance. Chain three nodes, one per adjust_type setting, if you want a full shadows/midtones/highlights grade.
Colors shift in an unexpected direction. Double-check which end of each axis you're pushing - it's easy to reach for a positive value expecting "more of the first color" when the sign convention runs the other way (negative = first color, positive = second). Nudge one axis at a time and watch the preview rather than setting all three blind.
Chaining three nodes and the order feels like it matters. It does, a little - each node reads the already-adjusted image from the one before it, so shadows→midtones→highlights vs. the reverse order can give subtly different results, especially at higher intensities. If you're chasing a specific look, try both orders and compare rather than assuming it's commutative.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| adjust_type | COMBO | midtones | 3 options: midtones, highlights, shadows |
| cyan_red | INT | 0-100–100 | — |
| magenta_green | INT | 0-100–100 | — |
| yellow_blue | INT | 0-100–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |