Nodes/WtlNodes/Temperature (Tanner Helland's algorithm)
ComfyUI Node

Temperature (Tanner Helland's algorithm)

Dial white balance in Kelvin, not by eyeballing the RGB sliders

By Scorpiosis0·Created 10 months ago·Updated 2 months ago· 3
Temperature (Tanner Helland's algorithm)
  • image
  • IMAGE
temperature6500
apply_type

There's a huge difference between "make it warmer" by nudging red and "this was shot at 4800K" - and if you care about color, you want the second one. Temperature (Tanner Helland's algorithm) from WtlNodes shifts your image's white balance using real color-temperature math, in Kelvin, the way a camera's white-balance setting works. It's one of the pack's best color nodes precisely because it does one thing properly.

The algorithm is the well-known Tanner Helland approximation that converts a temperature in Kelvin to an RGB white point. The node normalizes that against a 6500K reference (the standard daylight white point) and applies the ratio. Then - and this is the part that makes it better than a raw RGB multiply - it rescales the result to preserve the original luminance, so warming an image doesn't also brighten it. That luminance preservation is the difference between a color grade and a color mess.

The inputs

  • image - anything, batch included.
  • temperature - 1000 to 40000 K, default 6500 (neutral). The scale is intuitive once you know it: 1000 K is warm orange (candlelight), 6500 K is neutral daylight, 40000 K is cold blue (shade). Lower than 6500 warms, higher cools. The range is huge on purpose - 1000 K is really, seriously orange, which you'll only ever want for a dramatic sunset grade.
  • apply_type - the pack-wide live-preview dropdown.

One IMAGE out.

Why Kelvin beats sliders

First, it's reproducible - "4500K" means the same thing next week and in someone else's workflow, where "warmth +37" means nothing. Second, the math is physically grounded: a real color-temperature shift changes the color of the whites, which is what makes it read as a white-balance correction rather than a tint. And because luminance is preserved, you can stack a temperature shift with exposure or highlight/shadow adjustment without fighting yourself - the brightness stays put while the color moves.

The natural workflow: generate, then Temperature to correct or stylize (8500K for a crisp daylight scene, 3000K for a warm interior), then a touch of contrast and you're done. Photorealism lives in these small, physically-motivated corrections.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Scorpiosis0/ComfyUI-WtlNodes.git

Restart ComfyUI, or install via ComfyUI Manager (search "WtlNodes"). No models, no heavy deps.

Gotchas

  • 6500 is neutral, not "default effect." If you load the node and nothing happens, that's correct - you're at the neutral white point. Move the slider.
  • Extremes clip. 1000 K pushes red so hard that highlights will hit pure red regardless of the luminance preservation. Treat the far ends of the range as creative tools, not corrections.
  • It shifts everything, including skin. White-balance nodes are global by design. If you want a warm scene with neutral skin tones, do the temperature shift and then selectively correct - or accept the moody cast.
CategoryWtlNodes/image

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
temperatureFLOAT65001000–40000
apply_typeCOMBO3 options: none, auto_apply, apply_all

Outputs (1)

NameTypeDescription
IMAGEIMAGE