ComfyUI Node

Color Blend

Recolor an Image Using Another Image's Palette

By noarche·Created 2 years ago·Updated 2 years ago· 3
Color Blend
  • image
  • image_blend
  • IMAGE

Color Enhance's quiet sibling in the same pack does something different and arguably more fun: it takes the hue and saturation from one image and the brightness from another. In one step you get a recolored version of your image that keeps all of its lighting, shading, and detail - the palette comes from somewhere else entirely.

Think of it as "use this swatch, keep my render." Want to see your subject in a different outfit color without touching the pose or the lighting? Recolor a night scene to match a warmer reference? Take the color grade from a frame you like and apply it across a whole sequence? That's what this node is for.

How it works

Mechanically it's dead simple, which is why it's reliable. Both images get converted from RGB to HSV with scikit-image. The hue and saturation channels of the second image (image_blend) are copied straight onto the first image's HSV, while the first image's value channel is left untouched. Then it converts back to RGB. Value is your brightness structure, so your shadows, highlights, and general luminance come 100% from the first image - nothing gets flattened or relit.

One detail worth knowing: the ComfyUI wrapper converts image_blend once, then applies it to every frame in the first image's batch. That makes it a clean way to grade a whole image sequence consistently - give it one reference frame and every other frame borrows the same hue and saturation.

The inputs and outputs

  • image - the render you want to keep. Its brightness survives; its own colors are replaced.
  • image_blend - the reference whose hue and saturation you're borrowing. A screenshot, a swatch, a graded frame, anything.

Output is a single IMAGE, same size and batch as the input, ready for Save Image or whatever comes next.

The two gotchas

First, there's no strength control. This is a hard replace - the original hue and saturation are gone, not blended. If you want a partial effect you'll need to mix the output with the original yourself using a blend node; a 50/50 mix is the standard trick.

Second, the two images need matching dimensions. The color copy is a straight numpy assignment under the hood, so if image_blend is a different size than image, it errors rather than gracefully resizing. Drop a Resize node on the reference before it hits this one and you're fine.

Installing and running it

Same pack as Color Enhance, so same install:

cd ComfyUI/custom_nodes
git clone https://github.com/noarche/sd-webui-color-enhance

Restart ComfyUI and it appears under postprocessing → Effects as "Color Blend." No model downloads, no keys, pure CPU math. If the node shows up red after install, your Python environment is missing scikit-image - the pack has no requirements.txt, so nothing auto-installs. pip install scikit-image fixes it.

It's a niche tool, and you won't need it every day. But when the task is "keep my render, change its colors," it's the most direct node I know of - and you already have it installed if you grabbed the pack for Color Enhance anyway.

Categorypostprocessing/Effects

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
image_blendIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE