Nodes/comfyui-jbnodes/Wratten Filter
ComfyUI Node

Wratten Filter

Put a red filter in front of an image that already exists

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Wratten Filter
  • image
  • image
filterNo. 0 - Colorless
filter_factor1.00
auto_filter_factorfalse

You know those landscape photos where the sky is dramatically dark and the clouds pop? Half the time that's a red filter on the lens, not Photoshop. FilterLab applies real Wratten filters to an image - using measured spectral transmission curves, not a hue slider - and it's the node to reach for when you want filter behavior on an image you already have, without building the whole camera pipeline.

The distinction from CameraLab is worth getting straight: CameraLab bakes the filter into a film-camera simulation (it takes an image and produces a CAMERA object for the pipeline). FilterLab is the standalone version - any IMAGE in, filtered IMAGE out. Want to see what your existing color photo looks like through a No. 25 red? This is the fastest path. The pack even ships a trichromy demo workflow in examples/ built around it.

How it works

The filter list is real Wratten nomenclature and genuinely good: No. 8 (K2) Yellow, No. 11 (X1) light yellow-green, No. 15 (G) very deep yellow, No. 25 (A) Red, No. 29 (F) deep red, No. 38 light blue, No. 66 very light green, plus complements like No. 32 (minus green) magenta - 18 options total. Each one carries a per-wavelength transmission curve from the pack's wratten_filters.json, so a red filter darkens blues the way the glass actually would, by blocking that part of the spectrum rather than shifting hue.

Two controls adjust the effect:

  • filter_factor (0–10, default 1) - exposure compensation in stops-equivalents. In real life a red filter costs you stops of light; here it darkens the result to simulate the exposure penalty. Crank it and the image goes moody-dark.
  • auto_filter_factor (default off) - let the node compute the factor from the filter's visual transmission instead of your manual value. Turn this on if you want the "correct" exposure every time and don't want to think about stops.

The output is a single filtered image. No film stock, no grain, no pipeline - just the glass.

When to reach for it

Three common uses:

  • Quick A/B tests: run the ColorChartImageLoader chart through a few filters to internalize what each does, before you commit to one in a real shoot.
  • Fixing boring skies on images you already generated - a yellow filter adds subtle separation, red adds drama.
  • Trichromy / channel experiments, where you expose the same scene through red, green, and blue filters and merge the results with MergeRGBImageChannel.

Install

Part of the 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 search "comfyui-jbnodes" in ComfyUI Manager. Deps: numpy, torch, colour-science, scipy, Pillow.

Gotchas

  • The filter list is B&W-film-flavored. These are still very useful on color images, but they're chosen for their tonal effects on panchromatic film, so don't expect skin-tone-perfect color grading.
  • auto_filter_factor overrides your manual factor; if the result looks unexpectedly dark, check which one is actually on.
  • Beta pack: filter names and transmission data can shift between versions. If a filter stops matching a workflow you saved, re-check the menu after updating.
CategoryJBNodes

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
filterCOMBONo. 0 - Colorless18 options: None, No. 0 - Colorless, No. 8 (K2) - Yellow, No. 11 (X1) - Light Yellow-Green, Complementary Filter / No. 12 (minus blue) - Deep Yellow, No. 15 (G) - Very Deep Yellow, +12
filter_factoroptFLOAT1.000–10
auto_filter_factoroptBOOLEANfalse

Outputs (1)

NameTypeDescription
imageIMAGE