πͺ HSL Adjust
Per-color hue/saturation/lightness grading
- image
- image
This is the HSL / color-mixer panel from Lightroom, rebuilt as a ComfyUI node. Where Image Adjust in this same pack does global exposure and saturation, this one lets you grab a single color band - just the reds, just the blues - and shift its hue, saturation, or lightness without touching anything else. It's the surgical tool: mute a distracting red shirt, deepen only the sky, warm the greens in a landscape, all in one node before Save Image.
If you've ever generated an image where one color is fighting the rest of the frame, this is the fix that doesn't require a mask or a re-roll. It's a straight pixel operation - no diffusion, no model, instant and repeatable.
How it works
The node splits the image into color ranges and applies your adjustments to each independently. There's a top-level all_ trio (hue, saturation, lightness) that affects the whole image, and then eight color bands - red, orange, yellow, green, aqua, blue, purple, magenta - each with its own hue/saturation/lightness. Everything defaults to 0 (no change) and runs -100 to +100, so the node does nothing until you move a slider. Under the hood it's the same logic as any HSL mixer: for each targeted band, hue rotates the color, saturation intensifies or drains it, lightness brightens or darkens it.
The inputs and outputs that matter
One image in, one image out. You will not touch all 27 controls - that's the whole point of having bands. In practice:
all_saturation/all_lightness- quick global moves, same as a basic panel.- A single band's trio - e.g.
blue_saturation+30 to pop a sky, orred_saturation-40 to calm an overpowering red. This is the reason to use this node over the simpler Image Adjust. <band>_hue- shifts that color toward its neighbors.green_hueis the classic one for turning a sickly yellow-green foliage into a cleaner green.
Leave every band you don't care about at 0.
How to install it
ComfyUI Manager: search SDVN_Comfy_node, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/StableDiffusionVN/SDVN_Comfy_node
then pip install -r custom_nodes/SDVN_Comfy_node/requirements.txt from your ComfyUI root, and restart. It lives under SDVN β Image. No models, no keys.
Common issues & troubleshooting
Adjusting one band bleeds into another. Colors don't have hard edges - an orange shares tones with red and yellow, so a big orange move will nudge its neighbors. Use smaller values across two adjacent bands rather than slamming one to Β±100.
Nothing happens when I move a band. Check the image actually contains that color. Pushing purple_saturation on a landscape with no purple in it does exactly nothing, correctly.
The result looks posterized or banded. That's usually extreme lightness or saturation values crushing the tonal range. Ease off; HSL is meant for nudges, not hard remaps.
Want global exposure/contrast/temp too? That's the companion Image Adjust node - use both together, HSL for per-color, Adjust for the overall grade.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| all_hue | INT | 0-100β100 | β |
| all_saturation | INT | 0-100β100 | β |
| all_lightness | INT | 0-100β100 | β |
| red_hue | INT | 0-100β100 | β |
| red_saturation | INT | 0-100β100 | β |
| red_lightness | INT | 0-100β100 | β |
| orange_hue | INT | 0-100β100 | β |
| orange_saturation | INT | 0-100β100 | β |
| orange_lightness | INT | 0-100β100 | β |
| yellow_hue | INT | 0-100β100 | β |
| yellow_saturation | INT | 0-100β100 | β |
| yellow_lightness | INT | 0-100β100 | β |
| green_hue | INT | 0-100β100 | β |
| green_saturation | INT | 0-100β100 | β |
| green_lightness | INT | 0-100β100 | β |
| aqua_hue | INT | 0-100β100 | β |
| aqua_saturation | INT | 0-100β100 | β |
| aqua_lightness | INT | 0-100β100 | β |
| blue_hue | INT | 0-100β100 | β |
| blue_saturation | INT | 0-100β100 | β |
| blue_lightness | INT | 0-100β100 | β |
| purple_hue | INT | 0-100β100 | β |
| purple_saturation | INT | 0-100β100 | β |
| purple_lightness | INT | 0-100β100 | β |
| magenta_hue | INT | 0-100β100 | β |
| magenta_saturation | INT | 0-100β100 | β |
| magenta_lightness | INT | 0-100β100 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |