Nodes/ComfyUI Color Profile Reader/Test Pattern Generator
ComfyUI Node

Test Pattern Generator

Color bars and ramps to prove your color transforms aren't lying

By APZmedia·Created 11 months ago·Updated 5 months ago· 7
Test Pattern Generator
    • test_pattern
    • pattern_info
    pattern_typeColor Bars
    width1024
    height256

    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 Bars and ColorChecker are 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).

    CategoryColor Tools/OCIO

    Inputs (3)

    NameTypeDefaultDescription
    pattern_typeCOMBOColor Bars5 options: Color Bars, Tone Ramp, Gray Ramp, SMPTE Color Bars, ColorChecker
    widthINT102464–4096
    heightINT25664–4096

    Outputs (2)

    NameTypeDescription
    test_patternIMAGE
    pattern_infoSTRING