๐ Channel Mixer
The Old-Photo Trick for Creative Color, and the Cleanest Way to Build B&W
- image
- IMAGE
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.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | โ | |
| output_channel | COMBO | Red | 3 options: Red, Green, Blue |
| red_source | FLOAT | 100-200โ200 | โ |
| green_source | FLOAT | 0-200โ200 | โ |
| blue_source | FLOAT | 0-200โ200 | โ |
| constant | FLOAT | 0-200โ200 | โ |
| monochromeopt | BOOLEAN | false | โ |
| preserve_luminosityopt | BOOLEAN | false | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |