TT Image Enhancer
One node instead of a five-node color-grade stack
- image
- IMAGE
TT Image Enhancer is a color-grading console squeezed into one node. Feed it an image and it gives you brightness, contrast, gamma, hue, saturation, sharpness, posterize, and solarize - nine adjustments that in stock ComfyUI mean stringing together a small forest of color nodes. If you've ever built that forest and then wanted to tweak one value, you know why people grab this instead.
It comes from TenserTensor, the pack that exists to fold common node chains into single blocks. This is the postproduction Swiss-army-knife slot.
How the controls work
The defaults are deliberately "no effect," which is the smart part of the design:
brightness_factor- ±1.0, 0 is neutral. Negative darkens, positive lifts.contrast_factor- multiplier, 1.0 is neutral. Above 1 punches contrast, below 0.5 gets you the washed-out "filmic" look.gamma_factorandgamma_gain- both default to 1.0. Gamma bends the midtones; gain is the overall multiplier.hue_factor- rotation in radians (−π to π), not degrees. 0 is neutral. This is the one that trips people up: a "90 degree" hue shift is 1.57 here.saturation_factor- multiplier, 1.0 neutral, 0 goes grayscale.sharpness_factor- 0 to 3, default 0. A little goes a long way; past 2 you're making halos.posterize_bits(default 8, no effect) andsolarize_thresholds(default 1.0, no effect) - the stylized effects. Posterize at 3–4 bits gives that flat retro-band poster look; solarize at a low threshold inverts highlights.
The adjustments are applied sequentially on a cloned tensor, and the pack uses kornia under the hood for the math. Output is a single IMAGE, so you can chain it before a save node or before an upscaler.
The honest take
For plain brightness/contrast, stock ComfyUI already has nodes, and you shouldn't install a pack for that alone. This node earns its place when you want the whole adjustment set in one panel - say, tuning a LoRA's output so every render gets the same grade, or doing batch color correction. The sequential application matters: adjustments are order-dependent, and the node applies them in a fixed order, so if you want gamma after contrast, this can't do that. That's the price of the single-node convenience.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/tenser-tensor/ComfyUI-TenserTensor
Or ComfyUI Manager → "TenserTensor" → install → restart. The pack's requirements.txt lists gguf and kornia; the postproduction code also touches colour (colour-science) and spandrel, which usually ride in with ComfyUI's own dependencies. If this whole node group refuses to load with an import error, those are the first packages to check.
One more thing worth knowing: it's a legacy V1 node. The pack moved to ComfyUI's API V3 and parked V1 nodes in Deprecated/, to be removed in a future major release. The V3 successor lives under the pack's current postproduction section - if the pack ever drops V1, TT Image Enhancer as this exact node disappears with it. Fine to use today; just know the seat you're in.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| brightness_factor | FLOAT | 0.00-1–1 | — |
| contrast_factor | FLOAT | 1.000–5 | — |
| gamma_factor | FLOAT | 1.000–3 | — |
| gamma_gain | FLOAT | 1.000–3 | — |
| hue_factor | FLOAT | 0.00-3.14–3.14 | — |
| saturation_factor | FLOAT | 1.000–3 | — |
| sharpness_factor | FLOAT | 0.000–3 | — |
| posterize_bits | INT | 80–8 | — |
| solarize_thresholds | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |