Black and White
Desaturate with per-color control, like a film filter
- image
- IMAGE
Flattening an image to grayscale with a plain desaturate node throws away information - every color collapses to the same brightness math regardless of what it was. This node does what film photographers and Photoshop's Black and White adjustment layer both do instead: it lets you decide how bright or dark each original color becomes once it's converted, the same way a red or yellow lens filter on black-and-white film changes how skies and skin render. It's the difference between a flat conversion and one with actual tonal control.
How it works
Before collapsing the image to grayscale, the node reweights each of six color ranges - red, green, blue, cyan, magenta, yellow - up or down. Push red up and anything that was reddish in the color original comes out brighter in the black-and-white result; push it down and those areas go darker. Because these six ranges cover the whole color wheel, you get fine control over the final tonal relationships without touching the underlying image structure.
The inputs and outputs that matter
image- the image to convert.red,green,blue,cyan,magenta,yellow(-1 to 1 each, default 0) - per the author's own description: reduce a value to make that color range darker in the result, increase it to make that range brighter. All six default to 0, which produces a fairly neutral conversion.
Output is a single IMAGE, already flattened to grayscale (represented as a black-and-white IMAGE, not a separate mode).
How to install it
ComfyUI Manager: search Virtuoso Nodes for ComfyUI, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/chrisfreilich/virtuoso-nodes
pip install -r virtuoso-nodes/requirements.txt
Restart, look under Virtuoso/Adjustment. No downloads needed.
Common issues & troubleshooting
The default conversion looks flat or muddy. That's expected with all six sliders at 0 - it's a reasonable neutral starting point, not the finished look. Push the slider for whichever color dominates your subject (often red for skin tones, or blue/cyan for skies) to separate it tonally from the rest of the image, the way a colored lens filter would on film.
Two different colors are ending up the same shade of gray and you can't separate them visually. That's the exact problem this node exists to solve - find which two color ranges are colliding (often red vs magenta, or blue vs cyan) and push them in opposite directions until they separate in brightness.
You want to keep some color, not go fully black and white. This node always produces a grayscale result - there's no partial-desaturation mode here. For a partial effect, you'd want to blend this node's output back over the original color image using Blend Modes at less than 100% opacity.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| red | FLOAT | 0.00-1–1 | — |
| green | FLOAT | 0.00-1–1 | — |
| blue | FLOAT | 0.00-1–1 | — |
| cyan | FLOAT | 0.00-1–1 | — |
| magenta | FLOAT | 0.00-1–1 | — |
| yellow | FLOAT | 0.00-1–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |