Nodes/comfyui-jbnodes/Grayscale Image
ComfyUI Node

Grayscale Image

Desaturate is not the same as B&W film

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Grayscale Image
  • image
  • image
method

Hit the "grayscale" button on any image editor and you get a desaturated copy - an average of red, green, and blue that loses the tonal relationships real B&W film has. A red lipstick and a blue sky end up almost the same gray, which is exactly wrong. GrayscaleLab is the correction: it converts to B&W using specific spectral weighting curves, so you can get the silent-film look or the wet plate look or the modern panchromatic look, not just "grayscale."

This is the utility node you'll reach for when you want a monochrome image without committing to the full camera pipeline. It takes any IMAGE in, gives one IMAGE out, and its whole personality lives in the method dropdown.

How it works

The dropdown is the node. Five methods, each a different weighting of the RGB channels (from grayscale.json):

  • ITU-R BT.709 Luminance - the modern human-vision weighting (heavily green-dominant, weights 0.2126/0.7152/0.0722). What your display assumes; the safe default for a clean modern B&W.
  • ITU-R BT.601 Luminance - the older TV standard, slightly different balance. Marginally more balanced for skin.
  • Equal Weight - a plain average. This is the "desaturate" everyone's used to; include it only to prove why you shouldn't use it.
  • Orthochromatic (~1920s) - blue- and green-only sensitivity (no red). Skin goes lighter, reds go nearly black, that moody silent-film palette.
  • Wet Plate Collodion (~1860s) - almost pure blue sensitivity. The Civil War-era look: skies go white, yellows and reds go very dark, skin flattens into pale tones with a faint lavender cast you can't get any other way.

Each is just a weighted sum of the channels - the mechanism is simple - but the choice of weights is what makes a 1920s portrait read "1920s" and a modern one read "modern." There are no other inputs; the output is the grayscale image.

When to reach for it

  • Era simulation without the full film stack: wet plate for Civil War or tintype-style portraits, orthochromatic for 20s/30s noir vibes.
  • Checking how your image will hold up in B&W before you commit to a full pipeline run.
  • As a tonal reference when tuning filters - compare the orthochromatic conversion against the filtered camera output to understand what the filter is really doing.

Install

Standard pack:

cd ComfyUI/custom_nodes
git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
cd comfyui-jbnodes
pip install -r requirements.txt

Restart ComfyUI, or install via ComfyUI Manager ("comfyui-jbnodes").

Gotchas

  • Don't confuse it with the pack's full pipeline. GrayscaleLab is a direct conversion - no negative, no grain, no development. If you want grain and contrast curves, that's CameraLab → DeveloperLab territory.
  • The spectral methods are deliberately extreme. Wet Plate on a modern color image will look wrong until you remember that's what the era actually did - that's the feature.
  • Beta pack, so method lists and weights could change between versions; your saved workflow's method names are the thing most likely to break on update.
CategoryJBNodes/Utility

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
methodCOMBO5 options: ITU-R BT.709 Luminance, ITU-R BT.601 Luminance, Equal Weight, Orthochromatic (~1920s), Wet Plate Collodion (~1860s)

Outputs (1)

NameTypeDescription
imageIMAGE