Warmth & Tint Color Correction
Fix The Blue Cast Without Re-Rolling The Image
- image
- IMAGE
Your render came out too blue. Or too green, or with that flat magenta tinge skin picks up from a specific LoRA. The instinct is to tweak the prompt and re-roll - don't. Color casts are a deterministic fix, not a generation problem. Warmth & Tint Color Correction is a two-second Lightroom-style adjustment that fixes the pixels directly, and it's the cheapest color fix in the TOO-Pack.
It works in LAB color space, which is how photo editors do white balance: instead of sliding raw RGB channels (which shifts brightness along with color), it nudges the two color-opponent axes while leaving the light channel alone. warmth moves the blue↔yellow axis, tint moves the green↔magenta axis. That's the whole mental model - if the image is cool/blue, push warmth positive; if skin is green, push tint positive; magenta, negative.
Inputs and outputs
image- IMAGE in. Processes every frame of a batch.warmth- FLOAT, −1 to 1. Negative = cooler (more blue), positive = warmer (more yellow).tint- FLOAT, −1 to 1. Negative = green, positive = magenta.temperature- FLOAT, −100 to 100. A stronger, Kelvin-style version of warmth that also adds a slight magenta secondary shift for a more natural white-balance feel. Same axis, bigger range.temperature_rgb- FLOAT, −100 to 100. A plain RGB fallback: scales red up and blue down. This one works without OpenCV; see below.
Output: IMAGE. Wire it between your VAE Decode (or upscaler) and the save node. A tiny warmth of 0.02–0.05 is often all a photorealistic pipeline needs; cranking toward 1.0 turns everything orange and fake fast.
The trap: it needs OpenCV
Here's the gotcha that bites people. The LAB adjustments run through OpenCV, but the pack's requirements.txt lists only torch, numpy, Pillow, and piexif - no opencv-python. If OpenCV isn't installed, warmth, tint, and temperature silently do nothing (the node logs a warning and passes the image through; only temperature_rgb still works). The fix is one line, run against the same Python your ComfyUI uses:
pip install opencv-python
On a portable install that's ComfyUI\python_embeded\python.exe -m pip install opencv-python; on Linux/venv setups, your usual pip. After restarting, the LAB adjustments come alive. (Worth knowing: the same file also ships a CustomColorTint node for hex-color tints with blend modes - different tool, different niche.)
Install
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/tetsuoo-online/Comfyui-TOO-Pack
restart, or grab "Comfyui-TOO-Pack" from ComfyUI Manager. No model files, no API.
Common issues
- Adjustments do nothing → 99% chance OpenCV is missing. Check the ComfyUI console for the
⚠️ OpenCV not availablewarning. - It's not a color-match tool. If you're trying to make an inpainted region or an upscaled tile agree with its neighbors, you want a statistics color-match node, not a global cast slider - this is for whole-image white balance, not matching one area to another.
- Small values only. A
warmthof 0.3+ looks radioactive on most images. The range is wide so you have room; you'll live in the first few hundredths.
And the standing caveat for this whole pack: it's a small solo project (by Tetsuoo, who's active on Civitai) with essentially no community discussion to lean on. The node itself is simple and predictable; just remember the OpenCV dependency and it'll behave.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| warmth | FLOAT | 0.00-1–1 | — |
| tint | FLOAT | 0.00-1–1 | — |
| temperature | FLOAT | 0-100–100 | — |
| temperature_rgb | FLOAT | 0-100–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |