COLOR MATCH (JOV) π
Steal the color grade from any image
- πΎA
- πΎB
- πΌοΈ
- π·
COLOR MATCH (JOV) π does exactly what the name says: it takes the color palette of one image and projects it onto another. You've got a render that's flat and dull, you've got a reference image with a gorgeous grade, and this node makes the render adopt the reference's tonal character. It's the Jovimetrix node for people who want their images to look consistent - matching shots in a batch, keeping a character consistent across frames, or just fixing that one output that came out green.
The README frames it as "COLOR MATCH against existing images or create a custom LUT," which is the two sides of the feature: match to a reference image, or remap through one of the built-in color maps.
What it does
Two images in, a grade out:
- πΎA - the source image (the one whose colors you're changing).
- πΎB - the reference (the one whose colors you want).
- πΈπ¨ (COLORMAP) - the built-in LUT to use instead of (or on top of) the reference. 23 options including the classic OpenCV colormaps - JET, AUTUMN, BONE, WINTER, RAINBOW, OCEAN, HSV, PINK and more. Set NONE to use pure image-to-image matching.
- π (FLOAT, 0β1, default 0) - the matching amount, i.e. how much of the reference's look gets applied. 0 = no change, 1 = full match. This is the "don't overcook it" dial.
- BLUR (INT, default 13, min 3) - the blur radius used while sampling the color distribution. Higher = smoother, more averaged color transfer; lower = tighter, noisier match.
- π - swap the two inputs, in case the source and reference are wired backwards.
- π³ (FLOAT, 0β1) - blend the result back toward the original input.
Outputs are the graded image and its mask.
How it works
The mechanism is a color transfer: it analyzes the color distribution of the reference and remaps the source's pixels so its statistics line up - the same family of technique as Reinhard color transfer and histogram matching, with a blur step to keep the transfer stable instead of splotchy. The built-in colormaps are the alternative path: a fixed LUT applied like a filter, which is more predictable and better for batch consistency than eyeballing a reference.
Installing it
Part of Jovimetrix:
- ComfyUI Manager - search "Jovimetrix", install.
- Manual -
git clone https://github.com/Amorano/Jovimetrix.gitintocustom_nodes/, thenpip install -r requirements.txt.
No models. Dependencies: numpy, OpenCV (opencv-contrib-python), Pillow, matplotlib, cozy_comfyui. Needs ComfyUI 0.1.3+.
Where people get burned
The two settings that most often need touching are the BLUR and the π amount. At default BLUR 13 with a high-contrast reference, results can look smeared; drop the blur and dial the amount toward 0.5 for a more natural transfer. And note the classic mistake: if your output looks like a negative or wildly off, check whether A and B got wired backward - the node even has the π swap so you don't have to re-plumb. It's a fiddly node, but there's no real competitor for "match this render to that reference" without reaching for a full color-grading suite.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| πΎAopt | * | β | |
| πΎBopt | * | β | |
| πΈπ¨opt | COMBO | NONE | 23 options: NONE, AUTUMN, BONE, JET, WINTER, RAINBOW, +17 |
| πopt | FLOAT | 0.000β1 | β |
| BLURopt | INT | 13 | β |
| πopt | BOOLEAN | false | β |
| π³opt | FLOAT | 0.000β1 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| πΌοΈ | IMAGE | β |
| π· | MASK | β |