🎨 Rennart Color Palette
Your own color theory tutor, right on the canvas
- BASE_COLOR
- IMAGE
- HEX_STRING
- VARIATIONS_IMAGE
- VARIATIONS_HEX
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" prependscolor palette:, and "Custom" lets you template with{color}and{index}viacustom_templateandcustom_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.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| base_color | STRING | #3498DB | — |
| harmony_mode | COMBO | Complementary | 6 options: Complementary, Analogous, Triadic, Split-Complementary, Tetradic, Monochromatic |
| tonal_key | COMBO | Normal | 3 options: Normal, High Key, Low Key |
| brightness_step | INT | 200–100 | — |
| output_format | COMBO | Quoted ("#HEX", "#HEX") | 5 options: Simple (#HEX, #HEX), Quoted ("#HEX", "#HEX"), Array ["#HEX", ...], Prompt Tags, Custom |
| preview_size | INT | 10016–2048 | — |
| custom_templateopt | STRING | color_{index}: {color} | — |
| custom_delimiteropt | STRING | , | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| BASE_COLOR | STRING | — |
| IMAGE | IMAGE | — |
| HEX_STRING | STRING | — |
| VARIATIONS_IMAGE | IMAGE | — |
| VARIATIONS_HEX | STRING | — |