Nodes/MKRShift_Nodes/Color Warp Hue/Sat
ComfyUI Node

Color Warp Hue/Sat

Recolor a sky by pulling a mesh point

By criskb·Created 7 months ago·Updated 5 months ago· 0
Color Warp Hue/Sat
  • image
  • mask
  • image
  • mask
  • color_warp_huesat_info
settings_json{"warp_points_json":"[]","strength":0.7,"falloff":1.0,"mix":1.0,"mask_feather":12.0,"invert_mask":false}

Want to make the sky more cyan, or nudge skin tones warmer, without drawing a mask? x1ColorWarpHueSat is the hue/saturation version of the pack's mesh-warp grade: it maps hue/sat space onto itself with draggable points, so you grab a color region and pull it toward another color - every pixel in that region follows, smoothly, with falloff. It's the recolor-and-shift workhorse of MKRShift Nodes' Color/Grade branch, sitting next to the chroma/luma sibling.

The pack is young (no impressions, no community footprint I could find), so treat it as fresh code with an unusually good drag UI - and a deterministic math core.

How it works

Same mesh-warp machinery as the chroma/luma version, but the domain is different: axes are hue and saturation instead of chroma/luma. Place source anchors (light points) on the color regions you care about, drag the red destination targets to where you want those colors to go, and the node warps color space - so the blue sky slides toward cyan while neutral colors stay put. That's the key difference from an HSL qualifier: you're not isolating a range with sliders, you're deforming the whole hue/sat plane and letting falloff do the softening.

The physical UI, per the author's docs:

  • Red points = draggable destination targets; light points = source anchors
  • Dragging updates warp_points_json automatically
  • Shift+Click adds a point, Alt+Click removes the nearest

strength sets how hard the warp applies, falloff how far it reaches, mix blends the result back. Outputs: image, mask (warp matte), color_warp_huesat_info.

Inputs that matter

  • warp_points_json - owned by the drag UI; don't hand-edit unless you have to
  • strength - build your points low, then raise it
  • falloff - tight for "just the sky," loose for a global warm/cool push
  • mix - the escape hatch

Installing

ComfyUI Manager → search MKRShift Nodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes

Restart ComfyUI. No models, no new dependencies.

Where people get burned

  • Hue is circular. Near the 0/360° wrap, small drags can produce huge jumps. If a drag flips colors wildly, you're near the wrap - place anchors away from it.
  • Too many points. Three or four well-placed pairs beat a mesh full of points; a dense mesh turns every tiny adjustment into a chaotic ripple. Start minimal.
  • Broken warp_points_json resets the mesh silently - if the UI shows defaults and your grade is gone, check the string before rebuilding.

For product-tint work, sky/foliage recolors, and skin-tone nudges, this is the node that feels like magic on first drag. And because it's deterministic, the look reproduces exactly every run.

CategoryMKRShift Nodes/Color/Grade

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
settings_jsonSTRING{"warp_points_json":"[]","strength":0.7,"falloff":1.0,"mix":1.0,"mask_feather":12.0,"invert_mask":false}
maskoptMASK

Outputs (3)

NameTypeDescription
imageIMAGE
maskMASK
color_warp_huesat_infoSTRING