ComfyUI Node

MX_ColorTint

Sepia, teal, or any hex you like — one slider controls the whole cast

By Intersection98·Created 2 years ago·Updated 2 years ago· 13
MX_ColorTint
  • image
  • IMAGE
strength1.0
mode
tint_color_hex

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 - 0 to 1, default 1. This is the one dial that matters. 0 is a no-op passthrough; 1 is a full tint. Most pleasing grades live in the 0.15–0.4 band, 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, plus custom.
  • tint_color_hex - a hex string like #2A5F8A, used only when mode is custom. It's a required input even though most presets ignore it, so the node will ask for a value - feed it any #RRGGBB and forget about it until you need custom.

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.

Categorypostprocessing/Color Adjustments

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
strengthFLOAT1.00–1
modeCOMBO21 options: custom, sepia, red, green, blue, cyan, +15
tint_color_hexSTRING

Outputs (1)

NameTypeDescription
IMAGEIMAGE