Nodes/ComfyUI-MingNodes/Imitation Hue
ComfyUI Node

Imitation Hue

Fix that AI color-cast by feeding it a clean reference

By mingsky-ai·Created 2 years ago·Updated 2 years ago· 505
Imitation Hue
  • imitation_image
  • target_image
  • mask
  • image
strength1.0
skin_protection0.2
auto_brightnesstrue
brightness_range0.5
auto_contrastfalse
contrast_range0.5
auto_saturationfalse
saturation_range0.5
auto_tonefalse
tone_strength0.5

If you've ever generated a "painting" or "vintage photo" and gotten back an image drenched in a mustard-yellow cast that no amount of negative prompting will shake, this is the node for that exact problem. ImitationHueNode does color transfer: it takes the color characteristics of one image and imposes them onto another, so instead of fighting your prompt you just point it at a reference with the colors you actually want and let it do the correction in post. It's turned up as the fix in real "why is everything yellow" threads - someone linked it to a frustrated user chasing a color-cast bug for weeks, and the reply back was essentially "this eliminated the problem instantly." That's the node working as intended.

How it works

Per the pack author's own description, it's modeled on the color-matching feature from Pixocake (a popular mobile photo app) - you give it a reference image whose color grade you want to imitate, and a target image to apply that grade to, and it migrates the color characteristics across. strength controls how aggressively the migration happens. There's also a dedicated skin-tone safeguard, because naive color transfer is notorious for making skin look wrong (too orange, too green, whatever the reference's dominant cast happens to be) - skin_protection pulls skin areas back toward the original image's tones the higher you set it.

On top of the core transfer, it can optionally auto-adjust brightness, contrast, and saturation as part of the same pass, each within a configurable percentage range rather than an absolute amount - and there's a separate "tone" mode that mimics the tonal character (think: overall light/dark mood) of the reference image independently of its hue.

One README note worth repeating verbatim because it'll save you a headache: if your source is a straight-off-camera JPG or PNG, convert it in Photoshop (or similar) first. Camera color spaces can differ from what the node expects, and skipping that step is a common cause of results that look subtly wrong for no obvious reason.

The inputs and outputs that matter

Two images and a strength dial are the core of it:

  • imitation_image - the reference: the image whose color you want to copy.
  • target_image - the image getting corrected to match that reference.
  • strength (0.1–1, default 1) - how much of the imitation to apply.
  • skin_protection (0–1, default 0.2) - higher values keep skin tones closer to the target's original colors instead of fully adopting the reference's cast.

Then four auto-adjust toggle pairs, each a boolean switch plus a range float (0.1–1, default 0.5, meaning "auto-adjust within this percentage of range"): auto_brightness/brightness_range (auto_brightness defaults on, the only one of the four that does), auto_contrast/contrast_range, auto_saturation/saturation_range, and auto_tone/tone_strength.

Optionally, a mask input restricts the color migration to a region instead of the whole frame - useful if you only want, say, the background re-toned and not the subject. The README mentions pairing this with a SAM segmentation node to generate that mask automatically.

One output: image, the corrected result.

How to install it

Via ComfyUI Manager: search "ComfyUI-MingNodes," install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/mingsky-ai/ComfyUI-MingNodes

then restart. This node needs no model downloads or extra dependencies beyond the base pack install.

Common issues & troubleshooting

Skin looks wrong after the transfer. Push skin_protection up. It defaults low (0.2), so if your reference image has a strong cast, skin can pick up more of it than you'd like unless you deliberately dial protection higher.

The auto-adjust toggles are doing something unexpected. Remember auto_brightness is on by default while the other three auto-toggles are off - if your output's exposure shifted and you didn't touch anything, that's why. Turn it off if you only want the pure color migration with nothing else moving.

Result looks like a wash, not a correction. Usually strength set too high against a reference that's very different in overall tone from your target. Back it down toward 0.5–0.7 and see if it reads as a correction rather than a repaint.

Colors are subtly off even with a good reference. Check whether your images came straight from a camera - per the README, convert camera-original JPG/PNG files to a standard color space first, since camera color spaces can diverge from what the node assumes.

CategoryMingNodes/Image Process

Inputs (13)

NameTypeDefaultDescription
imitation_imageIMAGE
target_imageIMAGE
strengthFLOAT1.00.1–1
skin_protectionFLOAT0.20–1
auto_brightnessBOOLEANtrue
brightness_rangeFLOAT0.50.1–1
auto_contrastBOOLEANfalse
contrast_rangeFLOAT0.50.1–1
auto_saturationBOOLEANfalse
saturation_rangeFLOAT0.50.1–1
auto_toneBOOLEANfalse
tone_strengthFLOAT0.50.1–1
maskoptMASK

Outputs (1)

NameTypeDescription
imageIMAGE