Hue vs Sat
Turn greens down, pop blues, make 'teal & orange' a one-click preset
- image
- image
Saturation is never a global problem. The greens are too loud, the blues are dead, and the "fix everything at once" slider drags the whole image sideways. Hue vs Sat is the surgical version: eight hue bands, one saturation slider each, with feathering so the adjustments melt into their neighbors. It's the saturation-only half of Lightroom's HSL panel and the daVinci hue-sat curve, without the panel.
It's one of the grading nodes in ComfyUI-Darkroom, and it's the fastest way in the pack to do the two moves everyone actually wants: mute the greens that dominate AI foliage, and pop the blues that make a sky or a teal grade sing.
How it works
The hue wheel is split into red, orange, yellow, green, aqua, blue, purple, and magenta bands, and each band has a saturation adjustment from −100 (fully desaturated) to +100 (fully saturated). Feathering controls how smoothly each band blends into its neighbors - at 0.5 the adjustments roll off gently, so you can nuke the greens without the yellow and aqua next door collapsing too. The presets encode the useful combinations ("Desaturate greens", "Pop blues", "Mute everything except skin", "Teal & Orange pop"), and the strength slider is the master blend over all of it.
The inputs that matter
- preset - 9 choices. "Teal & Orange pop" and "Mute everything except skin" are the two I keep coming back to.
- red_saturation … magenta_saturation - the eight band sliders. The ones you'll actually set: green, blue, orange, maybe aqua.
- feather - how soft the band edges are (0.1–1, default 0.5).
- strength - global blend of the whole adjustment.
Output is image, same shape in and out.
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/Grading.
Two habits worth stealing. First, pair it with the pack's Lum vs Sat: Hue vs Sat controls which colors are saturated, Lum vs Sat controls which brightness zones are - together they're how you get "desaturated highlights, punchy midtones, rich shadows" without touching a curve. Second, it's a per-pixel transform, so it belongs in a LUT bake chain (Inject → this → Extract) when you want the look as a reusable .cube.
The overcorrection trap is the same as every saturation tool: −100 on a band is a total kill, and skin lives in orange. "Mute everything except skin" exists precisely because people kept dragging green down and wondering why the models looked ill - the preset does the range thinking for you.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| preset | COMBO | Custom (manual) | Select a saturation-per-hue preset or use Custom for manual control |
| red_saturationopt | FLOAT | 0-100–100 | Red hue saturation adjustment |
| orange_saturationopt | FLOAT | 0-100–100 | Orange hue saturation adjustment |
| yellow_saturationopt | FLOAT | 0-100–100 | Yellow hue saturation adjustment |
| green_saturationopt | FLOAT | 0-100–100 | Green hue saturation adjustment |
| aqua_saturationopt | FLOAT | 0-100–100 | Aqua/Cyan hue saturation adjustment |
| blue_saturationopt | FLOAT | 0-100–100 | Blue hue saturation adjustment |
| purple_saturationopt | FLOAT | 0-100–100 | Purple hue saturation adjustment |
| magenta_saturationopt | FLOAT | 0-100–100 | Magenta hue saturation adjustment |
| featheropt | FLOAT | 0.500.1–1 | How smoothly adjustments blend into neighboring hues |
| strengthopt | FLOAT | 1.000–1 | Blend between original (0) and adjusted (1) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |