Color Balance
Photoshop's shadows/midtones/highlights color wheel
- image
- IMAGE
This is the classic Photoshop color-grading tool, node-ified: nine sliders split across shadows, midtones, and highlights, each pushing color along one of three axes. It's the one you reach for when an image is close but has a subtle cast - shadows a bit too blue, skin tones a bit too magenta - and you want to correct just that tonal range without touching the rest of the image's brightness or the other tonal ranges.
How it works
The image is analyzed into three overlapping brightness ranges - lows, mids, highs - and each range gets its own independent push along three color axes: cyan↔red, magenta↔green, yellow↔blue. Because the ranges are separate, you can, say, warm up the highlights while cooling the shadows in the same pass, which is a common film-grading move. preserve_luminosity keeps the overall brightness steady while these color shifts happen, which both prevents the correction from also changing exposure and tends to make the effect read as more subtle and controlled.
The inputs and outputs that matter
There are nine correction sliders, all -1 to 1 with a default of 0, named by range and axis:
lows_cyan_red,lows_magenta_green,lows_yellow_blue- shadows.mids_cyan_red,mids_magenta_green,mids_yellow_blue- midtones.highs_cyan_red,highs_magenta_green,highs_yellow_blue- highlights.
For each axis, negative pushes toward cyan/magenta/yellow, positive pushes toward red/green/blue - matching Photoshop's own convention. Plus:
preserve_luminosity(boolean, default true) - hold overall brightness steady through the correction.
Output is a single IMAGE.
How to install it
ComfyUI Manager: search Virtuoso Nodes for ComfyUI, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/chrisfreilich/virtuoso-nodes
pip install -r virtuoso-nodes/requirements.txt
Restart and it's under Virtuoso/Adjustment. No models to fetch - plain image math.
Common issues & troubleshooting
Nine sliders and no idea where to start. Work one range at a time. If your issue is "the whole image looks slightly wrong," start with mids_* since midtones dominate most of a typical image's visible area - then check shadows and highlights separately once mids look right.
The correction shifted overall brightness too. Confirm preserve_luminosity is on - it's the default, but if it's been turned off, color pushes (especially on the yellow/blue and magenta/green axes) can visibly darken or lighten the image as a side effect.
Need a more precise or unrestricted correction. If your problem tone doesn't fall neatly into shadows/mids/highlights - say, a cast specific to mid-gray skin values - Color Balance Advanced lets you target an exact brightness level instead of one of these three fixed bands, at the cost of the corrections being unclamped and easier to overdo.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| lows_cyan_red | FLOAT | 0.00-1–1 | — |
| lows_magenta_green | FLOAT | 0.00-1–1 | — |
| lows_yellow_blue | FLOAT | 0.00-1–1 | — |
| mids_cyan_red | FLOAT | 0.00-1–1 | — |
| mids_magenta_green | FLOAT | 0.00-1–1 | — |
| mids_yellow_blue | FLOAT | 0.00-1–1 | — |
| highs_cyan_red | FLOAT | 0.00-1–1 | — |
| highs_magenta_green | FLOAT | 0.00-1–1 | — |
| highs_yellow_blue | FLOAT | 0.00-1–1 | — |
| preserve_luminosity | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |