Color Qualifier
A DaVinci-style HSL qualifier, with 19 preset looks built in
- image
- image
- matte_preview
In DaVinci Resolve, a qualifier is how you select "just the skin" or "just the sky" by color range and then do something to that selection. ComfyUI's masking tools are great, but they're geometry - a color qualifier selects by chroma, which is a different muscle. Color Qualifier brings that DaVinci move to ComfyUI, and it bundles 19 action presets that do the selecting and the correcting in one step.
It lives in ComfyUI-Darkroom's Camera Raw group, alongside HSL Selective and the white balance/exposure nodes. Where HSL Selective moves colors in fixed bands, this node lets you define the band yourself - center, width, softness - then apply hue/sat/lum corrections to exactly those pixels. It's the node for "fix the green cast on the foliage without touching the grass" or "warm the skin without warming the white shirt."
How it works
You define a selection window in HSL space: a hue center and width, a saturation center and width, and a luminance center and width, each with its own softness (feathering). Pixels inside the window become the matte; pixels outside are protected. Then you adjust hue, saturation, and luminance within the matte. There's matte blur for smoother edges, matte shrink/grow for tightening or loosening, and an invert option to correct everything except the selection. The 19 presets do the heavy lifting - "Warm up skin tones", "Deepen blue sky", "Teal sky", "Autumn foliage" - and each preset's values stack with any manual sliders you add.
The inputs that matter
- preset - 19 choices. Start here; manual mode is for when a preset is 90% right.
- hue_center - the big one. The tooltip gives you the map: 0=red, 30=orange, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta.
- hue_width and hue_softness - how much of the wheel you grab and how hard the edges cut.
- matte_blur / matte_shrink - polish the selection's edges once the range is right.
- hue_shift / saturation_adjust / luminance_adjust - the corrections applied inside the selection.
- invert_matte - correct everything except the range. Underrated for "protect the skin, grade the rest."
- strength - global blend of the whole effect.
Outputs are two: image (the corrected result) and matte_preview (the selection as a grayscale mask). That second output is gold for beginners - wire it to a Preview and you'll see exactly what you're selecting before you trust the grade.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom
pip install -r ComfyUI-Darkroom/requirements.txt
Or search "Darkroom" in ComfyUI Manager and restart. It's under AKURATE/Darkroom/Raw.
The classic mistake is setting hue_center where you think a color lives instead of checking. Skin isn't at 25° because you read it in a chart - it's wherever your image's skin actually sits, and cast-shifted skin moves. Use matte_preview, eyeball where the white glow lands, then nudge. Also note the pack's own caveat: Color Qualifier uses local masks, so it's only partially safe in a LUT bake chain - keep it out of the bake and apply it to the graded photo instead.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| preset | COMBO | Custom (manual) | Action presets: select a color range AND apply a correction in one step. Use 'Custom (manual)' for full control over selection + corrections |
| hue_centeropt | FLOAT | 250–360 | Center hue: 0=red, 30=orange, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta |
| hue_widthopt | FLOAT | 701–360 | Hue range width in degrees |
| hue_softnessopt | FLOAT | 0.300–1 | Hue edge softness (0 = hard cut, 1 = very soft) |
| sat_centeropt | FLOAT | 0.500–1 | Center saturation for selection |
| sat_widthopt | FLOAT | 1.000–1 | Saturation range width |
| sat_softnessopt | FLOAT | 0.200–1 | Saturation edge softness |
| lum_centeropt | FLOAT | 0.500–1 | Center luminance for selection |
| lum_widthopt | FLOAT | 1.000–1 | Luminance range width |
| lum_softnessopt | FLOAT | 0.200–1 | Luminance edge softness |
| matte_bluropt | FLOAT | 1.00–20 | Blur matte edges for smoother transitions |
| matte_shrinkopt | INT | 0-10–10 | Shrink (+) or grow (-) the selection |
| hue_shiftopt | FLOAT | 0-180–180 | Shift hue of selected pixels (degrees). Adds to preset value |
| saturation_adjustopt | FLOAT | 0-100–100 | Adjust saturation of selected pixels. Adds to preset value |
| luminance_adjustopt | FLOAT | 0-100–100 | Adjust luminance of selected pixels. Adds to preset value |
| invert_matteopt | COMBO | no | Invert — correct everything EXCEPT the selected range |
| strengthopt | FLOAT | 1.000–1 | Blend between original (0) and corrected (1) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| matte_preview | IMAGE | — |