Nodes/AAA Metadata System/Cultural Color Palette Generator V01
ComfyUI Node

Cultural Color Palette Generator V01

A palette with a culture attached

By EricRollei·Created 11 months ago·Updated 10 months ago· 14
Cultural Color Palette Generator V01
    • color1
    • color2
    • color3
    • color4
    • color5
    • color6
    • palette_preview
    • color_picker
    ◄color_selection_methodBy Category►
    ◄base_color_categoryBasic►
    ◄base_color_from_categoryblue►
    ◄base_color_from_listblue►
    ◄harmony_modelComplementary►
    ◄cultureWestern/American►
    ◄conceptAnger►
    ◄palette_size5►
    ◄use_secondary_colorfalse►
    ◄secondary_color_methodBy Category►
    ◄secondary_color_categoryBasic►
    ◄secondary_color_from_categoryred►
    ◄secondary_color_from_listred►
    ◄custom_base_color►
    ◄custom_secondary_color►
    ◄cultural_influence0.5►
    ◄saturation0.8►
    ◄value0.8►
    ◄preview_width1024►
    ◄preview_height1024►
    ◄color_previewtrue►

    Color theory gets you complementary and analogous palettes. Culture gets you "what red means in China vs. the West." Cultural Color Palette Generator V01 is the node that tries to do both at once: pick a base color, a harmony model, a culture, and a concept, and it hands you a 3–6 color palette plus previews, tuned by how strongly you want the cultural meaning to influence things. It's the most opinionated color node in the AAA Metadata System pack, and it's genuinely fun for design work, mood boards, and style-prompt experiments.

    Let me be clear about what this is and isn't. It is a creative-assistance tool: the cultural tables are hard-coded data compiled into the pack, mapping concepts like "Anger" or "Celebration" to color meanings per culture. It is not ethnography, and the results should be treated as creative inspiration, not cultural authority. Used that way, it's a surprisingly good source of palettes you'd never have picked yourself.

    How it works

    You pick a base color two ways - By Category (the curated color lists) or By Name (the full 1,327-name dictionary) - then a harmony_model. That's where the classic color theory comes in: Complementary, Analogous, Triadic, Tetradic, Square, Split-Complementary, or Monochromatic. The node rotates around the color wheel to generate the harmony palette. Then the culture and concept dropdowns pull in the cultural layer, and cultural_influence (0–1, default 0.5) decides how hard that layer pushes the colors. saturation and value let you dial the palette's intensity after the fact. Outputs are the palette colors plus a palette_preview image and a color_picker image.

    It's a solid demonstration of why these tools are fun: the same base color produces completely different palettes when you switch culture from "Japanese" to "Hindu/Indian" for the concept "Celebration". Whether those are right is a question the node won't answer for you.

    Inputs and outputs that matter

    • base_color_category / base_color_from_category / base_color_from_list - how you set the starting color. The method dropdown decides which pair is active.
    • harmony_model - the color-theory structure (Complementary etc.).
    • culture (10 options) and concept (84 options, from Anger to Zen) - the cultural layer.
    • palette_size (3–6) - how many colors you get back.
    • cultural_influence, saturation, value - the fine-tuning knobs; lower influence if the palette drifts too far from your base.

    Outputs: color1 through color6 (STRING hexes - but note only up to palette_size will be populated), palette_preview (IMAGE), and color_picker (IMAGE).

    Installing it

    Part of AAA Metadata System by Eric Hiss (GitHub: EricRollei). Via ComfyUI Manager (search "AAA Metadata System") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/EricRollei/AAA_Metadata_System.git
    cd AAA_Metadata_System
    pip install -r requirements.txt
    

    Restart ComfyUI. No downloads - the cultural tables ship with the pack.

    Common issues

    Two traps, both conceptual. First, not every output color is populated: ask for palette_size 3 and only color1–color3 carry real values - wiring color6 downstream gets you junk. Second, the cultural layer is a fixed table, so don't expect nuance: "Western/American" + "Anger" will give you a generic red-based read, not a bespoke analysis. If the palette looks muddy, that's saturation/value doing their job - nudge them up. And again: treat the cultural meanings as a prompt-generation aid for style work, not as facts to put in a design brief.

    Categorycolors

    Inputs (21)

    NameTypeDefaultDescription
    color_selection_methodCOMBOBy Category2 options: By Category, By Name
    base_color_categoryCOMBOBasic14 options: Basic, Grayscale, Reds, Oranges, Yellows, Greens, +8
    base_color_from_categoryCOMBOblue9 options: white, black, red, green, blue, yellow, +3
    base_color_from_listCOMBOblue1327 options: Absolute Zero, Acid Green, Amaranth, AntiqueWhite, AntiqueWhite1, AntiqueWhite2, +1321
    harmony_modelCOMBOComplementary7 options: Complementary, Analogous, Triadic, Tetradic, Square, Split-Complementary, +1
    cultureCOMBOWestern/American10 options: Western/American, Japanese, Hindu/Indian, Native American, Chinese, Asian (General), +4
    conceptCOMBOAnger84 options: Anger, Art/Creativity, Authority, Bad Luck, Balance, Beauty, +78
    palette_sizeINT53–6—
    use_secondary_coloroptBOOLEANfalse—
    secondary_color_methodoptCOMBOBy Category2 options: By Category, By Name
    secondary_color_categoryoptCOMBOBasic14 options: Basic, Grayscale, Reds, Oranges, Yellows, Greens, +8
    secondary_color_from_categoryoptCOMBOred9 options: white, black, red, green, blue, yellow, +3
    secondary_color_from_listoptCOMBOred1327 options: Absolute Zero, Acid Green, Amaranth, AntiqueWhite, AntiqueWhite1, AntiqueWhite2, +1321
    custom_base_coloroptSTRING—
    custom_secondary_coloroptSTRING—
    cultural_influenceoptFLOAT0.50–1How strongly to apply cultural preferences (0=none, 1=strong)
    saturationoptFLOAT0.80–1—
    valueoptFLOAT0.80–1—
    preview_widthoptINT1024256–2048—
    preview_heightoptINT1024256–2048—
    color_previewoptBOOLEANtrue—

    Outputs (8)

    NameTypeDescription
    color1STRING—
    color2STRING—
    color3STRING—
    color4STRING—
    color5STRING—
    color6STRING—
    palette_previewIMAGE—
    color_pickerIMAGE—