Color Hue-Chroma (MD)
Hue, chroma and lightness in a color space that matches your eyes
- image
- mask
- image
Hue and saturation nodes are everywhere in ComfyUI, so why would you reach for mdColorHueChroma? Because it doesn't work in HSV. It works in CIE LCh - lightness, chroma, hue - which is the color space designed around how humans perceive color differences. And that changes the feel of every adjustment.
The difference is in the math
HSV treats saturation as "distance from gray" in a rough, perceptual-ish way, and its lightness is just the max channel. CIE LCh is derived from Lab, which was built by psychophysical experiments to make equal numerical distances look like equal visual distances. So in LCh:
- Chroma maps to how colorful something looks, not how much a channel saturates. Reducing chroma here doesn't create that fake, plastic look you get from over-pulling HSV saturation.
- Lightness maps to perceived brightness, which means you can lift or drop lightness without the color shifting hue - something HSV value adjustments fudge.
The node converts RGB → linear → XYZ → Lab → LCh, applies your adjustments, and converts back. The pipeline is exactly the color-managed round-trip our post-processing notes describe for the pro-VFX path, except self-contained in one node.
The controls
- Hue - -180 to 180 degrees of rotation around the LCh hue wheel. Unlike HSV, rotation in LCh keeps colors moving at perceptually even steps.
- Chroma - -100 to 100. Negative desaturates, positive boosts. The sweet spot for "richer colors" is +10 to +25, not +50.
- Lightness - -100 to 100.
- image in, image out, optional mask for regional blending.
One implementation nicety worth knowing: the node skips chroma and hue adjustments on achromatic pixels - gray stays gray instead of picking up a color fringe as you rotate hue. That's a correctness detail some naive ports get wrong, and it's handled here.
When to use it
When the goal is color quality, not just color change. Fleshtones respond better to LCh adjustments than HSV - a chroma bump on skin stays natural where an HSV saturation boost can go waxy. Color-grading a whole frame toward a mood (teal-orange, cool shadows) also feels smoother here. For quick-and-dirty "make it more saturated," the simpler mdColorHueSaturation in this pack is faster to drive; this one is for when the result needs to hold up. Honestly, for a lot of beginners the LCh version will feel identical - which is fine. The difference shows up on the gradients and the skin tones where naive HSV gets ugly.
Installing
The standard MdColorMod route:
cd ComfyUI/custom_nodes
git clone https://github.com/MdONeilsl/ComfyUI-MdColorMod
or search "MdColorMod" in ComfyUI Manager, then restart. Empty requirements, pure torch, no model files, GPL-3.0. New pack, thin community footprint - clone manually if Manager hasn't indexed it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image tensor. | |
| Hue | FLOAT | 0.0-180–180 | Hue shift in degrees (-180 to 180). |
| Chroma | FLOAT | 0.0-100–100 | Chroma (saturation) adjustment (-100 to 100). |
| Lightness | FLOAT | 0.0-100–100 | Lightness adjustment (-100 to 100). |
| maskopt | MASK | Optional mask to restrict the adjustment area. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | The adjusted image. |