ComfyUI Node

HSL Color

The Lightroom color-mixer panel, in your graph

By mingsky-ai·Created 2 years ago·Updated 2 years ago· 505
HSL Color
  • image
  • image
red_hue0
red_saturation0
red_brightness0
orange_hue0
orange_saturation0
orange_brightness0
yellow_hue0
yellow_saturation0
yellow_brightness0
green_hue0
green_saturation0
green_brightness0
lightGreen_hue0
lightGreen_saturation0
lightGreen_brightness0
blue_hue0
blue_saturation0
blue_brightness0
purple_hue0
purple_saturation0
purple_brightness0
magenta_hue0
magenta_saturation0
magenta_brightness0

If you've used Lightroom's or Camera Raw's color-mixer panel - the grid of eight color bands, each with its own Hue/Saturation/Luminance sliders - HSLColorNode is that panel, node-ified. Instead of one global hue shift or one global saturation slider affecting everything at once, you get independent control over eight named color bands, so you can, say, cool down the blues in a sky without touching skin-tone oranges, or knock back an overpowering green without flattening the reds. Someone in the wild reached for this exact node to fix a stubborn yellow color cast in AI-generated "paintings" - dialed in the yellow band specifically instead of fighting it with prompt tweaks, which is the kind of surgical job this node is built for.

How it works

Eight color bands - red, orange, yellow, green, light green, blue, purple, magenta - and each one gets its own three controls: hue, saturation, and brightness. Adjusting the red band's hue shifts only pixels that fall in the red range toward a different hue; it doesn't touch the blues or greens at all. That's the entire value proposition over a global HSL adjustment: precision. It's the same underlying idea as Lightroom's color mixer, translated into 24 individual sliders on one node.

The inputs and outputs that matter

One image in, and then 24 nearly-identical integer sliders - three per color band, eight bands. Every single one runs -30 to 30, default 0, step 1:

  • red_hue / red_saturation / red_brightness
  • orange_hue / orange_saturation / orange_brightness
  • yellow_hue / yellow_saturation / yellow_brightness
  • green_hue / green_saturation / green_brightness
  • lightGreen_hue / lightGreen_saturation / lightGreen_brightness
  • blue_hue / blue_saturation / blue_brightness
  • purple_hue / purple_saturation / purple_brightness
  • magenta_hue / magenta_saturation / magenta_brightness

In practice, you'll almost never touch more than two or three of these bands on a given image - identify which color is doing the thing you don't like (usually obvious by eye: "the yellows are too warm," "the blues are too saturated"), and adjust only that band's three sliders. Leaving the rest at 0 keeps everything else untouched.

Output is a single image.

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 install.

Common issues & troubleshooting

Twenty-four sliders is overwhelming and I don't know where to start. Don't touch all of them. Look at the image, name the one color that's wrong ("too much yellow," "the greens are muddy"), find that band's three sliders, and adjust just those. This node rewards a scalpel, not a shotgun approach.

Adjusting one band seems to bleed into a neighboring color. Color bands aren't perfectly hard-edged in any HSL-style tool - a pixel that's borderline between orange and yellow will respond somewhat to both bands' sliders. If you're seeing spillover, small adjustments split across the two adjacent bands often look more natural than one big push on a single band.

The range feels tight compared to other color tools. ±30 here is deliberately narrower than, say, this pack's Color Balance node (±100) - HSL band adjustments are inherently more sensitive since you're targeting a slice of the color wheel rather than a broad tonal shift, so the range is scaled down to match. Small moves (2–8) go a long way; you'll rarely need to approach the edges.

CategoryMingNodes/Image Process

Inputs (25)

NameTypeDefaultDescription
imageIMAGE
red_hueINT0-30–30
red_saturationINT0-30–30
red_brightnessINT0-30–30
orange_hueINT0-30–30
orange_saturationINT0-30–30
orange_brightnessINT0-30–30
yellow_hueINT0-30–30
yellow_saturationINT0-30–30
yellow_brightnessINT0-30–30
green_hueINT0-30–30
green_saturationINT0-30–30
green_brightnessINT0-30–30
lightGreen_hueINT0-30–30
lightGreen_saturationINT0-30–30
lightGreen_brightnessINT0-30–30
blue_hueINT0-30–30
blue_saturationINT0-30–30
blue_brightnessINT0-30–30
purple_hueINT0-30–30
purple_saturationINT0-30–30
purple_brightnessINT0-30–30
magenta_hueINT0-30–30
magenta_saturationINT0-30–30
magenta_brightnessINT0-30–30

Outputs (1)

NameTypeDescription
imageIMAGE