Nodes/ComfyUI-Rennart/🎨 Rennart Color Palette
ComfyUI Node

🎨 Rennart Color Palette

Your own color theory tutor, right on the canvas

By Rennart2025·Created 4 days ago·Updated 4 days ago· 2
🎨 Rennart Color Palette
    • BASE_COLOR
    • IMAGE
    • HEX_STRING
    • VARIATIONS_IMAGE
    • VARIATIONS_HEX
    base_color#3498DB
    harmony_modeComplementary
    tonal_keyNormal
    brightness_step20
    output_formatQuoted ("#HEX", "#HEX")
    preview_size100
    custom_templatecolor_{index}: {color}
    custom_delimiter,

    Rennart Color Palette is the headliner of the ComfyUI-Rennart pack, and it's the one node in the set that genuinely does something ComfyUI core won't. You give it one base color and it builds a whole harmony around it - complementary, triadic, tetradic, whatever you pick - using the classic Itten color-wheel relationships from design school. It outputs the palette two ways: as a formatted HEX string you can drop straight into a prompt or JSON, and as a preview image so you can actually see it. This is the node to reach for when you're doing color-graded or brand-consistent work and you're tired of eyeballing hex codes on a separate website.

    How it works

    Under the hood it's refreshingly old-school: the node converts your base_color hex to HLS (hue/lightness/saturation) using Python's colorsys, then shifts the hue by the fixed angle each harmony mode demands - 180° for complementary, 30° steps for analogous, 120° for triadic, and so on. That's the whole "color theory" part, and it's deterministic: same base color, same harmony, same result, every time. No AI, no API, no key.

    The tonal_key input is the second trick. "High Key" pushes lightness up toward pastel territory and knocks saturation down; "Low Key" does the opposite, giving you deep, moody, near-noir tones. Then brightness_step (0–100) generates a lighter and a darker variation of every color in the palette, which is how you get a set of shades you can actually build a layout from.

    The inputs that matter

    Honestly, you set four things and ignore the rest:

    • base_color - a hex like #3498DB. The color picker button (see below) writes this for you.
    • harmony_mode - Complementary, Analogous, Triadic, Split-Complementary, Tetradic, or Monochromatic.
    • tonal_key - Normal, High Key, or Low Key.
    • output_format - how your HEX string comes out. The "Quoted" default gives you "#HEX", "#HEX", which the author's README says is tailored for Ideogram-4 JSON prompts. "Array" wraps them in brackets, "Prompt Tags" prepends color palette:, and "Custom" lets you template with {color} and {index} via custom_template and custom_delimiter.

    Outputs: BASE_COLOR (the cleaned-up base hex), HEX_STRING (formatted palette), VARIATIONS_HEX (the brightness-shifted set), plus IMAGE and VARIATIONS_IMAGE swatch bars you can preview or feed elsewhere.

    One genuinely nice touch: the pack ships a small frontend extension that adds a "Выбрать цвет 🎨" (Select color) button right on the node, which overlays your OS/browser gradient picker. It's a native input type="color", so it matches the color picker you already know.

    Install

    Install once for the whole pack, then every Rennart node is available:

    # Via ComfyUI Manager: search "ComfyUI-Rennart" and install
    # Or manually:
    cd ComfyUI/custom_nodes
    git clone https://github.com/Rennart2025/ComfyUI-Rennart
    

    Then restart ComfyUI. Dependencies are just torch and numpy (the pack's pyproject.toml also lists pillow, which ComfyUI ships anyway). There are no model files to download and no API keys. You'll find the node under the Rennart menu.

    Gotchas

    The base_color parser is forgiving but strict about shape: if it can't read six hex digits it silently falls back to #3498DB rather than erroring, so a typo like #3498D will quietly give you a blue you didn't pick. And the color-picker button only attaches when the node is created or a graph loads, so if you've had the node open since before the pack updated, recreate it to get the button. Also worth knowing: the author explicitly suggests chaining multiple Color Palette nodes to build extended palettes - the HEX_STRING of one can seed the base_color of the next, which works because both ends are just strings.

    The one honest caveat: this is a niche pack with near-zero community footprint so far, so you're relying on the source being small and readable - which it is. For a node this focused, that's not a bad trade.

    CategoryRennart

    Inputs (8)

    NameTypeDefaultDescription
    base_colorSTRING#3498DB
    harmony_modeCOMBOComplementary6 options: Complementary, Analogous, Triadic, Split-Complementary, Tetradic, Monochromatic
    tonal_keyCOMBONormal3 options: Normal, High Key, Low Key
    brightness_stepINT200–100
    output_formatCOMBOQuoted ("#HEX", "#HEX")5 options: Simple (#HEX, #HEX), Quoted ("#HEX", "#HEX"), Array ["#HEX", ...], Prompt Tags, Custom
    preview_sizeINT10016–2048
    custom_templateoptSTRINGcolor_{index}: {color}
    custom_delimiteroptSTRING,

    Outputs (5)

    NameTypeDescription
    BASE_COLORSTRING
    IMAGEIMAGE
    HEX_STRINGSTRING
    VARIATIONS_IMAGEIMAGE
    VARIATIONS_HEXSTRING