TT Postproduction (Advanced)
The full color suite in one node
- image
- IMAGE
Take the regular TT Postproduction - LUT grade, film grain, upscale - and bolt a full image-enhancement stage onto the front, and you get TT Postproduction (Advanced). Where the plain version is "grade it, grain it, blow it up," this one adds brightness, contrast, gamma, hue, saturation, sharpness, posterize, and solarize before any of that. It's the node you reach for when a render is close but needs real corrective work, and you'd rather do it in the graph than tab out to an editor.
The order matters and it's sensible: the new image_enhancer stage runs first (the "negative → usable" corrections), then the LUT gives it the look, then film grain adds texture, then the upscaler finishes. Each stage has its own master toggle - image_enhancer, apply_lut, add_film_grain, image_upscaler - so you can stack them or isolate one while you tune. Only the values you change are applied; leave a factor at its default and that adjustment is skipped entirely.
The enhancer inputs, for when a render needs real surgery:
brightness_factor(-1 to 1, default 0) andcontrast_factor(0–5, default 1) - the bread and butter. A slightly underexposed render gets +0.1 brightness; a flat one gets 1.1 contrast.gamma_factor+gamma_gain- gamma lifts the midtones without clipping black or white the way brightness does. This is your "the whole image feels dim" fix.hue_factor(±3.14 rad) andsaturation_factor(0–3, default 1) - note hue is in radians, so 3.14 is a full half-turn, not a 360° wheel.sharpness_factor(0–3) - mild values (0.3–0.5) rescue a soft render; aggressive values add halos, so don't get greedy.posterize_bits(0–8, default 8) andsolarize_thresholds(0–1, default 1) - the stylized pair. Both at defaults do nothing; dropposterize_bitsto force banding, and pullsolarize_thresholdsbelow 1 for the inverted-highlights solarize look.
Everything after the enhancer is identical to the plain TT Postproduction: the .cube LUT grade via colour-science (drop files in ComfyUI/custom_nodes/ComfyUI-TenserTensor/lut/), the multi-scale YCbCr film grain (with grain_seed for reproducible grain), and the tiled spandrel upscale with automatic OOM fallback. The upscale-stage defaults are worth repeating: image_upscaler is on by default and it needs a real model in models/upscale_models/ - leave it on with no model and the node errors. Either point upscale_model_name at one or flip the toggle off.
Install is the pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/tenser-tensor/ComfyUI-TenserTensor
or search "TenserTensor" in ComfyUI Manager and restart.
The usual caveats apply. The pack's declared dependencies are gguf and kornia, but this node's code path also imports colour-science and spandrel (both ship with ComfyUI core, so normally no extra install). And while the whole pack is being migrated to API V3, this V1 class is marked deprecated - the TT_PostproductionAdvancedNode is the maintained replacement. If you're building a grading chain you'll reuse for months, start from the V3 node; if you're patching an existing workflow, this one keeps working.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| image_enhancer | BOOLEAN | true | — |
| 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 | — |
| apply_lut | BOOLEAN | true | — |
| lut_file | COMBO | 0 options: | |
| lut_strength | FLOAT | 1.000–1 | — |
| lut_colorspace | COMBO | 2 options: linear, logarithmic | |
| add_film_grain | BOOLEAN | true | — |
| grain_seed | INT | 00–18446744073709550000 | — |
| grain_scale | FLOAT | 0.250.25–2 | — |
| grain_strength | FLOAT | 0.200–10 | — |
| grain_saturation | FLOAT | 0.500–2 | — |
| grain_toe | FLOAT | 0.05-0.2–0.5 | — |
| grain_upscale_mode | COMBO | 5 options: bilinear, bicubic, lanczos, nearest, area | |
| grain_antialias | BOOLEAN | true | — |
| image_upscaler | BOOLEAN | true | — |
| upscaler_device | COMBO | 2 options: default, cpu | |
| upscale_model_name | COMBO | 0 options: | |
| upscaler_tile | INT | 512256–4096 | — |
| upscaler_overlap | INT | 640–256 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |