Nodes/ComfyUI-Darkroom/Color Warper
ComfyUI Node

Color Warper

Warp a whole hue region in 2D, DaVinci-style, without touching the rest

By jeremieLouvaert·Created 5 months ago·Updated 2 days ago· 101
Color Warper
  • image
  • image
presetCustom (manual)
source_hue0
source_hue_width60
source_sat_min0.00
source_sat_max1.00
hue_shift0
sat_shift0
feather0.50
strength1.00

DaVinci's Color Warper shows you a 2D map of hue and saturation and lets you push regions of it around like a grid of soft putty. That's the most intuitive color-grading tool ever invented, and Color Warper is the ComfyUI take on it: you define a region on the hue/saturation plane, then shift its hue and saturation as a unit. The rest of the image doesn't move.

It's one of the grading nodes in ComfyUI-Darkroom, and it sits in a nice spot next to Hue vs Hue / Hue vs Sat. Those adjust single axes in fixed bands; the warper works on a region defined by both hue and saturation, which is how you do things like "only the vivid oranges, leave the pale ones alone" in one step. The nine presets - Orange & Teal push, Skin tone cleanup, Green → teal shift, Sunset spectrum enhance - are genuinely good starting looks.

How it works

You pick a source region by hue center + width and a saturation range (min to max), with feathering for soft edges. The node then applies a hue shift and a saturation shift inside that region, with a smooth falloff so nothing hard-clips at the boundary. Because the region is 2D, saturation acts as a second dimension of selectivity: with source_sat_min high, only the rich colors get warped and the muted ones stay put.

The inputs that matter

  • preset - 10 choices including "Custom (manual)". Most people pick a preset, then tweak.
  • source_hue - the center of the region you're targeting.
  • source_hue_width - how many degrees around that center you grab.
  • source_sat_min / source_sat_max - the saturation slice of the region. This is the secret weapon: sat_min 0.5 means "only the saturated stuff."
  • hue_shift - how far the region rotates (−180 to +180).
  • sat_shift - how much saturation changes inside the region (−100 to +100).
  • feather - edge softness.
  • strength - global blend, the "how much do I actually believe in this" dial.

Output is a single image - same size in, same size out, standard wiring.

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 things to keep in your back pocket. First, it's a per-pixel color transform, so it's fine inside a LUT bake chain - put it between Inject and Extract and the warped look becomes an exportable .cube. Second, the region's selectivity cuts both ways: a wide source_hue_width with a low feather will warp neighboring colors more than you expect, especially in busy images. When the skin starts moving but you only meant to touch the background, shrink the width and raise the feather before touching hue_shift. And unlike Hue vs Hue's fixed bands, the warper's strength slider is the single most useful knob on the node - most "too much" moments are fixed at 0.6, not by redefining the region.

CategoryAKURATE/Darkroom/Grading

Inputs (10)

NameTypeDefaultDescription
imageIMAGE
presetCOMBOCustom (manual)Select a color warping preset or use Custom for single-region manual control
source_hueoptFLOAT00–360Center hue of the region to warp
source_hue_widthoptFLOAT6010–180Width of hue range to affect (degrees)
source_sat_minoptFLOAT0.000–1Minimum saturation to affect
source_sat_maxoptFLOAT1.000–1Maximum saturation to affect
hue_shiftoptFLOAT0-180–180Shift hue by this many degrees
sat_shiftoptFLOAT0-100–100Adjust saturation within the selected region
featheroptFLOAT0.500.1–1Edge softness of the warped region
strengthoptFLOAT1.000–1Blend between original (0) and warped (1)

Outputs (1)

NameTypeDescription
imageIMAGE