Hue/Saturation
Pick a color by name and nudge it
- image
- IMAGE
- MASK
This is the friendlier of the pack's two hue/saturation nodes. Instead of typing degree values on a 360-point color wheel, you pick a color by name - red, yellow, green, cyan, blue, or magenta - and the node figures out the range around it for you. It's Photoshop's Hue/Saturation adjustment layer with the fiddly precision stripped out, which makes it the one to start with if you just want "make the reds a bit more orange" without thinking in degrees.
How it works
You choose a base hue, then hue_width and feather control how wide a slice of the color wheel around that hue gets selected, and how softly the selection edge blends into unaffected colors. Once that selection is made, hue_offset, sat_offset, and lightness_offset shift the hue, saturation, and lightness of just the pixels inside it. Worth knowing before you dive in: the author's own README flags that Stable Diffusion output tends to have fairly aggressive color compression, so this node "is best for subtle effects... otherwise things get pretty weird." Small nudges, not dramatic swings.
The inputs and outputs that matter
image- the image to adjust.hue- pick from six named colors (red, yellow, green, cyan, blue, magenta), each 60° apart on the wheel.hue_width-normal/narrow/wide: how far from the chosen hue the selection extends.feather-normal/none/wide: how soft the edge of that selection is, going from fully selected to fully unselected.hue_offset(-180 to 180, default 0),sat_offset(-100 to 100, default 0),lightness_offset(-100 to 100, default 0) - the actual adjustments applied within the selected range.
Two outputs: IMAGE, the adjusted result, and MASK, the selection mask generated from the hue/width/feather settings - useful for checking exactly what got selected, or for reusing that same selection elsewhere in your graph.
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, find it under Virtuoso/Adjustment. No model downloads required.
Common issues & troubleshooting
Colors look posterized or artifacted after adjustment. This is exactly the warning in the README - AI-generated images already have compressed color gradients, and pushing sat_offset or hue_offset hard exaggerates that compression into visible banding. Dial back the offsets before assuming the node is doing something wrong.
The selection is catching more (or less) than you expected. Check the MASK output directly - connect it to a Preview Image node and you'll see exactly what the node considers "selected" given your hue, hue_width, and feather settings, rather than guessing from the final image.
You need precise degree control instead of named colors. That's what Hue/Saturation Advanced is for - same idea, but you set exact hue-range start/end points in degrees instead of picking from six presets.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| hue | COMBO | 6 options: red, yellow, green, cyan, blue, magenta | |
| hue_width | COMBO | 3 options: normal, narrow, wide | |
| feather | COMBO | 3 options: normal, none, wide | |
| hue_offset | FLOAT | 0.0-180–180 | — |
| sat_offset | FLOAT | 0.0-100–100 | — |
| lightness_offset | FLOAT | 0.0-100–100 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |