Color Temperature
Warm it up or cool it down, tint included
- image
- image
ColorTemperature is the white-balance-ish node of the pack: two sliders - temperature for warm/cool, tint for green/magenta - and an adjusted image out. It's the quick mood-setter you reach for when an image reads too clinical and blue, or too sterile and green, and you want to fix it in one shot instead of building a three-node color-balance rig. One image in, one image out, nothing else to wire.
How it works
Straightforward channel math in numpy. Positive temperature pushes red up and blue down (warmer); negative does the reverse (cooler). Positive tint pushes red and blue up together (more magenta); negative pushes green up (more green). Both are scaled by the ±100 range, so full warm is a strong, obvious shift and small values are subtle. It's additive on channels and clamped to [0,1], so it stays stable and never clips wildly.
The one honest note: this is a relative warmth/tint control, not a true correlated-color-temperature computation. It won't tell you your image is at 6500K and won't convert to a Kelvin target. It's the "make it feel warmer" control that photo apps ship, applied as a node. If you need real Kelvin-grade balancing you're in LittleCMS/OCIO territory and this isn't that.
The inputs that matter
- temperature - −100 to 100, default 0. Warm = positive (amber), cool = negative (blue). ±15–25 is a tasteful daylight correction; ±100 is dramatic.
- tint - −100 to 100, default 0. Negative adds green (fix a magenta cast), positive adds magenta (fix a green cast - common from fluorescent lighting in reference photos).
- input_mode -
tensor(default) orfilewithimage_path, like the other pack nodes.
The workflow
Drop it right after VAE Decode or after an img2img pass. A generated image that leans blue gets −20 temperature; a reference photo with a greenish cast gets +15 tint. It's also a genuinely useful batch tool: same correction across a whole generation set keeps the look consistent, which is exactly what you want when the color is off in a repeatable way rather than per-image.
Install
Part of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/APZmedia/ComfyUI-color-tools
Or ComfyUI Manager, search "ComfyUI Color Profile Reader," then restart. The README's manual clone URL is a placeholder (yourusername/...) - use APZmedia/ComfyUI-color-tools. Dependencies are numpy and OpenCV, both in the pack's optional-deps list that install.py handles on first startup (which can make the first launch slow for a couple of minutes). No models, no downloads.
A small tip while you're here: because temperature shifts red/blue additively, running it after a GammaCorrection pass interacts cleanly - gamma sets the tone curve, temperature sets the mood. It's a two-node "grade" that covers a surprising amount of ground for casual color work.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| input_mode | COMBO | tensor | 2 options: file, tensor |
| temperature | FLOAT | 0-100–100 | — |
| tint | FLOAT | 0-100–100 | — |
| imageopt | IMAGE | — | |
| image_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |