Dickson Color Match
Steal one image's palette without a single slider
- color_ref_image
- image
- IMAGE
You've got a render that's technically fine but the colors are off, and there's a reference photo whose grading you'd kill for. Dickson Color Match is the shortcut: it takes your image plus a reference image and remaps the color and lighting of the first to match the second. No strength slider, no prompt, just pick a mode and go.
It's a fork of the color-match code from StableSR, which the author grabbed because that project stopped being maintained - so you're getting battle-tested logic in a standalone node. The pack is one person's convenience collection, so don't expect a polished settings panel. Expect a node that does one thing well.
How it works
The color_match_mode dropdown is the whole story. Two options:
- Wavelet - decomposes both images into high-frequency (detail) and low-frequency (color and illumination) components, keeps your image's detail, and swaps in the reference's low-frequency component. The result keeps your structure but wears the reference's color. This is the one the example workflow ships with, and the changelog says v1.0.4 made it 15–17x faster. It also runs on CUDA or Apple's MPS when available, so it's your pick if you have a GPU.
- AdaIN - adaptive instance normalization, the classic style-transfer trick: it normalizes each color channel of your image to have the same mean and standard deviation as the reference's channels. Simpler and cruder - it shifts the overall tint per channel rather than swapping lighting structure. Fine for a quick tint match, softer than Wavelet on anything with real lighting.
One detail worth knowing: in Wavelet mode the reference is resized to match your image's dimensions before matching, so a wildly different aspect ratio still works - the palette is what's borrowed.
Inputs and outputs
The inputs that matter are exactly three: image (the one being recolored), color_ref_image (the one whose palette you want), and color_match_mode. The output is a single IMAGE - wire it into a VAE Encode for an img2img pass, into a Save Image node, or into an upscale chain where you want the final color graded to a reference.
Installing it
The whole pack comes from one repo: dicksondickson/ComfyUI-Dickson-Nodes. Install via ComfyUI Manager (search for dicksondickson) or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/dicksondickson/ComfyUI-Dickson-Nodes
Then restart ComfyUI. Dependencies are light - Pillow and opencv-python-headless - so Manager handles it without drama. No model downloads needed for this node; the TTPlanet preprocessors in the same pack are the ones that want a model.
Things to know
The node prints a stream of [DICKSON-NODES] debug lines to your console on every run. Harmless, noisy, ignore it. On CPU-only machines Wavelet still works but loses most of its speed advantage, so AdaIN becomes the sensible default. And set expectations: this is a global color match, not per-object recoloring. If you want "only the sky changes", this isn't the tool - for that you'd be masking and applying the match locally. For "make my render look like that photo's lighting and palette", it's about as frictionless as ComfyUI gets.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| color_ref_image | IMAGE | — | |
| image | IMAGE | — | |
| color_match_mode | COMBO | 2 options: Wavelet, AdaIN |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |