Nodes/ComfyUI-Image-Effects/๐Ÿ”€ Channel Mixer
ComfyUI Node

๐Ÿ”€ Channel Mixer

The Old-Photo Trick for Creative Color, and the Cleanest Way to Build B&W

By orion4dยทCreated about a year agoยทUpdated about a year agoยท 28
๐Ÿ”€ Channel Mixer
  • image
  • IMAGE
โ—„output_channelRedโ–บ
โ—„red_source100โ–บ
โ—„green_source0โ–บ
โ—„blue_source0โ–บ
โ—„constant0โ–บ
โ—„monochromefalseโ–บ
โ—„preserve_luminosityfalseโ–บ

Channel Mixer is the tool that lets you rebuild each output color channel as a weighted blend of the input red, green and blue channels. That sounds dry, but it's the engine behind two genuinely useful things: selective color grading (swap the red channel's content for green, and suddenly skies shift hue) and - more practically - good black & white conversion, where you control how much each source color contributes to the grayscale instead of letting a dumb average decide.

It's a Photoshop-faithful effect, and it's one of the pack's Core Effects, meant for color work near the end of your graph after generation.

How it works

Pick an output_channel (Red, Green, or Blue), then set how much of the input R, G and B feeds into it via red_source, green_source, blue_source (each โˆ’200 to 200, default 100/0/0 = identity). The constant term adds an offset to that channel, which lets you push a channel toward white or black globally. The classic use: set Red output to R=100, G=50, B=0 and you've warmed the reds; set all three outputs to the same per-source weights and you get a tonal conversion instead of a color one.

The two optional toggles matter: monochrome collapses everything to grayscale using your current source weights (this is the proper B&W conversion path), and preserve_luminosity scales the weights so the overall brightness roughly matches the original - turn it on when your mixing starts darkening or blowing out the image.

The inputs that matter

  • output_channel - Red, Green or Blue. The mixer only edits the channel you select, so you work one channel at a time.
  • red_source / green_source / blue_source - the mix weights. Values can exceed 100 (up to 200) for a hot, oversaturated channel, or go negative for inverted content.
  • constant (โˆ’200 to 200) - per-channel brightness offset; a little goes a long way.
  • monochrome - on for B&W conversion; then set the three sources to your taste (e.g. R=60, G=40, B=0 for a classic skin-friendly mix).
  • preserve_luminosity - keeps overall brightness stable while you mix.

Output is the re-mixed IMAGE.

Installing it

From ComfyUI-Image-Effects (Orion4D). ComfyUI Manager โ†’ search "Image Effects", or:

cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/ComfyUI-Image-Effects
cd ComfyUI-Image-Effects
pip install -r requirements.txt

Restart, then find it under Add Node โ†’ Image Effects. No models - just NumPy under the hood.

Gotchas

Standard pack behavior: only the first image of a batch is processed. The trap with channel mixing is that weights interact - change the Red output and the whole color cast moves, because every pixel's red value changed. Work one channel at a time and check each step; and if your mix suddenly looks solarized or dead, it's almost always negative weights on a channel that clips at 0 - pull the negatives back toward zero. If your goal is a stylized grade rather than realism, that's fine too, but start from preserve_luminosity on so you can see what the color is doing rather than chasing brightness.

CategoryImage Effects

Inputs (8)

NameTypeDefaultDescription
imageIMAGEโ€”
output_channelCOMBORed3 options: Red, Green, Blue
red_sourceFLOAT100-200โ€“200โ€”
green_sourceFLOAT0-200โ€“200โ€”
blue_sourceFLOAT0-200โ€“200โ€”
constantFLOAT0-200โ€“200โ€”
monochromeoptBOOLEANfalseโ€”
preserve_luminosityoptBOOLEANfalseโ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEโ€”