Color Warp Hue/Sat
Recolor a sky by pulling a mesh point
- image
- mask
- image
- mask
- color_warp_huesat_info
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_jsonautomatically Shift+Clickadds a point,Alt+Clickremoves 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 tostrength- build your points low, then raise itfalloff- tight for "just the sky," loose for a global warm/cool pushmix- 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_jsonresets 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| settings_json | STRING | {"warp_points_json":"[]","strength":0.7,"falloff":1.0,"mix":1.0,"mask_feather":12.0,"invert_mask":false} | — |
| maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| color_warp_huesat_info | STRING | — |