π¨ Latent Color Match (Simple) *DRE
The no-frills latent color match that just transfers stats
- latent
- reference
- LATENT
This is the stripped-down sibling of LatentColorMatch_DRE, and the name means what it says: same idea - match one latent's colors to another's without a VAE round-trip - but with exactly two methods instead of twelve, and no device or batch knobs to fuss over. If the big node is the toolbox, this is the one screwdriver you'd actually carry. For most users it's honestly the better first stop: fewer options, same speed benefit, harder to misconfigure.
What it does
Two inputs, two methods:
latent(LATENT) andreference(LATENT) - the target and the color source, same as the full version.method-mean_std(default) orchannel_wise.mean_std- transfers each channel's mean and standard deviation from the reference to your latent. It's the classic histogram-matching-lite: it normalizes the global tone and contrast of one image onto the other.channel_wise- matches each latent channel independently, which preserves more per-channel character but can push hue in odd directions if the channels aren't well-aligned between the two images.
factor(0.0β2.0, default 1.0) - match strength. The full node goes to 3.0; this one caps at 2.0 because you rarely need more than full transfer, and the range tells you what the author thinks this node is for.anti_aliasing(BOOLEAN, default off).
Output: LATENT.
Why the simple one exists
The full node's method list (LAB, mkl, reinhard, hm-mvgd-hmβ¦) is real but it's also overkill for the 90% case, which is "make image B feel like image A" - and that's mean_std. The two-method split mirrors how the original image-space color matcher community converged: mean/std transfer for speed and sanity, channel-wise when you need per-channel fidelity and are willing to babysit the result. If you've never color-matched before, use this node, get comfortable, and only graduate to the twelve-method version when you have a specific failure you can name.
Where it fits
Same niche as its big sibling: normalizing a batch of renders so they share one palette, or matching generated frames to a reference's lighting before a cut. It works directly on latent tensors, so it can slot in before the sampler in an img2img chain without an encode/decode break. Upstream it's Image β VAE Encode β Latent Color Match (Simple) β VAE Decode β Save, or wire the output into a KSampler.
Install and caveats
It ships in DenRakEiw_Nodes - ComfyUI Manager β search "DenRakEiw Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/DenRakEiw/DenRakEiw_Nodes
cd DenRakEiw_Nodes && pip install -r requirements.txt
then restart. Needs kornia like the full node.
The caveats are the family ones: latent color stats are a heuristic, so wildly different content between the two images can produce weird transfers (that's what factor is for - back it off to 0.3β0.5), and this is a small one-author pack with basically no support community, so the GitHub issues page is your help desk. Also note the *DRE suffix: it exists purely so this integrated version can coexist with the author's standalone Latent_Nodes pack without node-ID collisions - don't install both expecting the same node twice.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | β | |
| reference | LATENT | β | |
| method | COMBO | mean_std | 2 options: mean_std, channel_wise |
| factor | FLOAT | 1.000β2 | β |
| anti_aliasing | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | β |