Test Pattern Generator
Color bars and ramps to prove your color transforms aren't lying
- test_pattern
- pattern_info
When you're testing an OCIO transform, you don't want to eyeball it on a random generated image - you want a signal you can read. TestPatternGenerator makes the standard calibration charts right in the graph: color bars, tone ramps, gray ramps, SMPTE bars, and a ColorChecker-style pattern. Generate one, push it through OCIOColorSpaceConverter or AdvancedOcioColorTransform, and a transform that shifts hue or crushes blacks becomes obvious immediately.
How it works
It renders a pattern to an IMAGE tensor at whatever width/height you set. The five choices cover the useful bases:
- Color Bars - the classic six-color bars; perfect for spotting hue rotations and channel swaps.
- Tone Ramp / Gray Ramp - smooth gradients from black to white; the fastest way to see if a transform is crushing shadows or blowing highlights.
- SMPTE Color Bars - the broadcast-standard bar chart with the 75% and 100% bars, plus the reference elements; for the video side of the room.
- ColorChecker - a ColorChecker-like patch chart, which is what you want when you're evaluating gamut mapping or profiling.
Outputs are test_pattern (the image) and pattern_info, a JSON string describing what was generated - dimensions, type, and what each element is meant to verify.
Why you'd actually use this
The README recommends exactly the loop: generate a pattern → convert through an OCIO color space → visually compare. That's the right mental model. A transform that's mathematically fine but gamut-maps badly will show up as shifted or desaturated patches on the ColorChecker; a gamma mistake shows as a gray ramp that's no longer smooth. This is also a great debugging tool for the pack's own conversion nodes - if ColorSpaceConverter looks like it's doing something wrong, run a tone ramp through it and you'll see exactly where the curve bends.
The inputs that matter
- pattern_type - the five dropdown choices above;
SMPTE Color BarsandColorCheckerare the most diagnostic. - width / height - default 1024×256, range 64–4096. That's a wide, short image by design - test charts want width, not height. Step is 64 on both, so sizes snap to multiples.
Install
Standard pack install: ComfyUI Manager search "ComfyUI Color Profile Reader," or:
cd ComfyUI/custom_nodes
git clone https://github.com/APZmedia/ComfyUI-color-tools
Restart after. Two recurring gotchas: the README's clone URL is a placeholder (yourusername/ComfyUI-color-tools.git - use APZmedia/), and the startup install.py pip-installs optional deps on first launch, which can take a couple of minutes. This node itself is lightweight (image synthesis only, no OCIO call), but it lives in the OCIO group - so if PyOpenColorIO is missing, the whole group including this node fails to register. If you only want test patterns and never touch OCIO, that's still a hard dependency you'll have to satisfy (or tolerate the missing node).
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| pattern_type | COMBO | Color Bars | 5 options: Color Bars, Tone Ramp, Gray Ramp, SMPTE Color Bars, ColorChecker |
| width | INT | 102464–4096 | — |
| height | INT | 25664–4096 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| test_pattern | IMAGE | — |
| pattern_info | STRING | — |