MX_ColorTint
Sepia, teal, or any hex you like — one slider controls the whole cast
- image
- IMAGE
ColorTint is the fastest way in the MX pack to give an image an instant mood: sepia for "old photo," teal for "blockbuster," a custom hex for "this exact brand color." It desaturates the image down to luma and re-tints it in your chosen color, then blends that result back with the original by a strength amount. In plain terms: one node, one look, no color wheels to fight.
It's part of Intersection98/ComfyUI-MX-post-processing-nodes, and it sits naturally after a VAE decode, before a save. If you've ever reached for the standard color-grading advice - pull saturation down, add a subtle color cast - this is the "add a cast" half, packaged so you don't have to build it from an ImageEnhance chain.
How it works
The node computes a grayscale version of the image (weighted luma: 0.2989 R / 0.5870 G / 0.1140 B), then multiplies that single channel by a three-channel color filter, and finally blends the tinted result with the original by strength. At strength = 1 you get a fully tinted, monochrome-ish image; at 0.3 you get a whisper of cast over the original colors. Because the tint operates on luma, it preserves the image's tonal structure - shadows and highlights stay where they were, they just change color.
The inputs that matter
image- your IMAGE tensor.strength-0to1, default1. This is the one dial that matters.0is a no-op passthrough;1is a full tint. Most pleasing grades live in the0.15–0.4band, where the image still reads as its own colors with a pushed mood.mode- 21 presets:sepia,red,green,blue,cyan,magenta,yellow,purple,orange,warm,cool,lime,navy,vintage,rose,teal,maroon,peach,lavender,olive, pluscustom.tint_color_hex- a hex string like#2A5F8A, used only whenmodeiscustom. It's a required input even though most presets ignore it, so the node will ask for a value - feed it any#RRGGBBand forget about it until you needcustom.
Output is a single IMAGE, same size as the input.
Install
Standard MX pack install - ComfyUI Manager (search MX or ComfyUI-MX-post-processing-nodes), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes
cd ComfyUI_MX_post_processing-nodes
pip install -r requirements.txt
Restart ComfyUI. You'll find it under postprocessing/Color Adjustments. No models, no keys - just torch, numpy, Pillow, and opencv-python, all of which you almost certainly already have.
Where people get burned
Two things catch beginners. First, the hex input is required even for presets, so if you connect nothing to it the node still demands a string - and if you do plug in a hex while a preset is selected, it's silently ignored. Set mode to custom before expecting tint_color_hex to do anything. Second, the full-tint look (strength = 1) turns skin tones into colored mannequins - that's not a bug, that's what a full tint is. If your render suddenly looks like a single-color duotone, drop strength to where the original hues still show through. For a quick "warm daylight" grade, mode = warm at strength ~0.2 is a one-click win.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| strength | FLOAT | 1.00–1 | — |
| mode | COMBO | 21 options: custom, sepia, red, green, blue, cyan, +15 | |
| tint_color_hex | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |