Element HueHue
Remapping color by hue, with a live curve
- image
- image
Element HueHue is the one that does actual replacement: a "hue vs hue" curve that maps each input hue to a different output hue. Shift a section of the curve and you're not brightening or desaturating a color - you're changing what color it is. Grass to autumn gold, a blue sky to teal, a character's costume recolored in a single pass. It's the node from this pack's curve family that does the flashy party trick.
How it works
The horizontal axis is the hue of the pixel you're looking at; the vertical axis is the hue it gets turned into. A flat diagonal line is the identity - colors stay where they are. Move a section of the line off the diagonal and every pixel whose hue lands in that band is remapped to the new value. Click to add points, drag to shape the curve, right-click to delete. The curve is smooth and editable, and the preview updates live on single images or frame sequences.
A few practical notes on how it behaves:
- The hue axis wraps at the ends (0° and 360° are the same color), so keep that in mind when you're dragging a section near the red/red boundary - same closed-loop behavior as the other hue curves in the pack.
- Because you're remapping rather than grading, results can look plasticky if you overdo it. Small, tasteful shifts read as color grading; big shifts read as stylization. Both are valid, just know which one you asked for.
- The
frame_indexfield (0–9999) lets you preview a specific frame of a sequence, so this works on video passes too - great for turning a day-for-night shot's sky or pulling a consistent wardrobe recolor across a clip.
Inputs are the usual curve-node set: image, the curve_data JSON that the editor fills in for you, preview_size (256–4096), frame_index, and output_mode to flip between preview and full output. The single image output feeds straight back into your pipeline.
When you'd reach for it
Recoloring is the obvious case, but the subtler use is fixing bad color casts that a simple saturation or brightness curve can't touch. If a model renders skin tones with a green cast, you don't want to desaturate the greens globally (it's only in the skin), and you don't want to brighten them - you want to nudge that narrow hue band back toward pink. HueHue does exactly that with two points on the curve.
Installing it
Part of supElement/ComfyUI_Element_easy:
cd ComfyUI/custom_nodes
git clone https://github.com/supElement/ComfyUI_Element_easy.git
Restart ComfyUI, or install via ComfyUI Manager by searching ComfyUI_Element_easy.
Gotchas
The main trap is forgetting the wrap: if your edit point lands near the red boundary, colors can jump the full spectrum instead of making the small shift you intended. And because this node changes hue rather than tonality, it doesn't preserve luminance relationships the way you might expect - if the result looks flat, pair it with HueBright afterward rather than fighting the curve.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| curve_data | STRING | {} | — |
| preview_size | INT | 512256–4096 | — |
| frame_index | INT | 00–9999 | — |
| output_mode | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |