ComfyUI Extension: ComfyUI_ContrastingColor

Authored by dasilva333

Created

Updated

0 stars

This node calculates a contrasting complementary color based on an input RGB color. The goal is to ensure visibility and contrast when overlaying text, UI elements, or graphical components against a given background color.

README

Contrasting Complementary Color Node

This node calculates a contrasting complementary color based on an input RGB color. The goal is to ensure visibility and contrast when overlaying text, UI elements, or graphical components against a given background color.


🎯 Why Is This Useful?

Choosing a contrasting yet aesthetically complementary color is a key principle in design, UI/UX, and data visualization. This node provides a simple way to automatically generate colors that:

  • Ensure readability when placing text over a background.
  • Maintain a harmonious color scheme by shifting hues instead of randomly picking high-contrast colors.
  • Work across light and dark backgrounds by dynamically adjusting brightness.

📌 Key Use Cases

Text & UI Design

  • If you have a dark background, this node will generate a brighter complementary color to maintain readability.
  • If you have a light background, it will generate a darker complementary color to prevent excessive brightness.

Data Visualization

  • Use this node to generate contrasting colors for charts, graphs, and labels that remain legible across different themes.

Dynamic Theme Generation

  • Automatically adjust button colors, text highlights, or UI accents based on a user-defined background color.

🎨 How It Works

  1. Computes Relative Luminance

    • Determines if the input color is "light" or "dark" using an industry-standard luminance formula.
  2. Shifts the Hue by 180° (Complementary Color)

    • Converts RGB to HSV and rotates the hue by 180 degrees.
  3. Adjusts Brightness Dynamically

    • If the input color is dark, the generated color will be bright.
    • If the input color is light, the generated color will be dark.
  4. Returns a Hex Color Code

    • Output is always formatted as #RRGGBB, making it easy to integrate with any system requiring hex-based colors.

🖌️ Examples

1️⃣ Ensuring Text Visibility

  • Background Color: #1F2A35 (Dark Blue-Gray)
  • Generated Complementary Color: #FFCB54 (Warm Yellow)
  • ✅ This ensures high contrast and readability while maintaining a visually appealing color combination.

2️⃣ Dynamic UI Accent Coloring

  • If your UI theme allows users to pick a background color, this node can generate automatically adjusted button and highlight colors.
  • Example:
    • User selects: #E8F0FE (Soft Blue Background)
    • Generated Complementary Color: #734C00 (Rich Brown for Text or Buttons)

3️⃣ Graph & Chart Labels

  • When visualizing data over a color-coded heatmap, use this node to calculate the best text color for different heatmap regions.

🔍 Node Location

  • Category: utils
  • Node Name: Contrasting Complementary Color

This node provides an effortless way to maintain perfect color contrast dynamically, ensuring both aesthetic balance and readability in your designs.