[object Object]

← back to Wallco Ai

drunk-animals: add FASHION_PALETTES (12 luxury-house combinations from common colors of 20 brands)

b78b5d55493f29289488a41e2e857ab05851098f · 2026-05-14 08:12:39 -0700 · SteveStudio2

DRUNK_PALETTE=fashion → fashion-only pool
DRUNK_PALETTE=warhol  → original pop pool
default              → mixed (Warhol + Fashion)

Palette names describe color FAMILY not brand (no public brand-name exposure per Steve's standing rule). Source: ~/Projects/fashion-style-guides/data/brands.json common-color extraction.

Files touched

Diff

commit b78b5d55493f29289488a41e2e857ab05851098f
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Thu May 14 08:12:39 2026 -0700

    drunk-animals: add FASHION_PALETTES (12 luxury-house combinations from common colors of 20 brands)
    
    DRUNK_PALETTE=fashion → fashion-only pool
    DRUNK_PALETTE=warhol  → original pop pool
    default              → mixed (Warhol + Fashion)
    
    Palette names describe color FAMILY not brand (no public brand-name exposure per Steve's standing rule). Source: ~/Projects/fashion-style-guides/data/brands.json common-color extraction.
---
 scripts/drunk_animal_prompts.js | 43 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 39 insertions(+), 4 deletions(-)

diff --git a/scripts/drunk_animal_prompts.js b/scripts/drunk_animal_prompts.js
index 301257c..e96c51c 100644
--- a/scripts/drunk_animal_prompts.js
+++ b/scripts/drunk_animal_prompts.js
@@ -106,6 +106,30 @@ const PALETTES = [
   'campbell-soup tomato red + sunshine yellow + grass green + matte black',
 ];
 
+// Fashion-house-derived palettes pulled from the common-colors map of the
+// top 20 fashion houses (~/Projects/fashion-style-guides/data/brands.json).
+// Each entry is a deliberate 4-color combination of swatches that appear
+// together across the luxury-fashion fleet. Names are descriptive of the
+// COLOR FAMILY, NOT the brand — public-facing prompts must never name a
+// brand (see [[feedback_never_expose_ai_software]] adjacent rule).
+const FASHION_PALETTES = [
+  'deep forest emerald #0e5c2f + heritage red #9b1b1f + antique gold #b58a2a + warm ivory #f2ece1',
+  'saddle-leather orange #ff6900 + warm chocolate brown #6b4423 + gold leaf #c8a44a + french cream #f6efe2',
+  'pure jet black #000000 + crisp white #ffffff + warm beige #e6d6b8 + camellia red #b00020',
+  'tiffany robin\'s-egg blue #0abab5 + champagne gold #caa84a + bright white #ffffff + ink black #0a0a0a',
+  'baroque jet black + medusa antique gold #d4af37 + imperial red #b40000 + royal purple #4b1c5e',
+  'dark gallery green #22443a + ink black #0a0a0a + powder beige #d7c8a8 + lipstick red #c8102e',
+  'old-money ink black + champagne gold #c8a96a + oxblood maroon #5a1818 + warm bronze #8a6a3a',
+  'equestrian navy blue #0a2548 + polo red #bf2c2c + saddle tan #a8794a + crisp ivory #f5efe2',
+  'parakeet kelly green #5cb338 + dark chocolate brown #5b3a1d + caramel tan #c38a4d + warm ivory #f4ede0',
+  'heritage camel #c8a47a + check black #000000 + check red #b22234 + check white #ffffff',
+  'vintage powder pink #f3c7c4 + retro mint #b6dcc7 + powder blue #c8d8e6 + buttery cream #f4ecd8',
+  'rosso red #bc0030 + roman black #0a0a0a + warm ivory #f5efdf + pale rose pink #f7d6d0',
+];
+
+// Combined pool — fashion palettes mix into the regular rotation by default.
+const ALL_PALETTES = [...PALETTES, ...FASHION_PALETTES];
+
 const STYLES = [
   'classic Andy Warhol silkscreen, 4-panel color-swap repeat, registration offset, halftone grain',
   'hand-pulled screen print, ink bleed at every edge, paper-grain texture, slight misregister',
@@ -133,6 +157,17 @@ const COMPOSITIONS = [
   'grid-of-portraits Warhol layout, alternating color cells of bouquets',
 ];
 
+// Source-pool picker — honors DRUNK_PALETTE env var:
+//   'fashion'  → fashion-only
+//   'warhol'   → original pop-only
+//   anything else (default) → mixed pool
+function pickPaletteSource() {
+  const mode = (process.env.DRUNK_PALETTE || '').toLowerCase();
+  if (mode === 'fashion') return FASHION_PALETTES;
+  if (mode === 'warhol' || mode === 'pop') return PALETTES;
+  return ALL_PALETTES;
+}
+
 function pickRand(arr, exclude = new Set()) {
   for (let tries = 0; tries < 50; tries++) {
     const v = arr[Math.floor(Math.random() * arr.length)];
@@ -152,7 +187,7 @@ function buildPrompt(seed = null) {
     return [
       pick(ANIMALS), pick(TABLEAUX),
       `set among ${pick(BOTANICALS)}`,
-      `palette: ${pick(PALETTES)}`,
+      `palette: ${pick(pickPaletteSource())}`,
       pick(STYLES),
       pick(COMPOSITIONS),
       'seamless wallpaper repeat, archival quality, FLOWERS ONLY, NO leaves, NO foliage, NO monstera, NO palm, NO banana, NO tropical, NO jungle, no text or watermark'
@@ -161,7 +196,7 @@ function buildPrompt(seed = null) {
   return [
     pickRand(ANIMALS), pickRand(TABLEAUX),
     `set among ${pickRand(BOTANICALS)}`,
-    `palette: ${pickRand(PALETTES)}`,
+    `palette: ${pickRand(pickPaletteSource())}`,
     pickRand(STYLES),
     pickRand(COMPOSITIONS),
     'seamless wallpaper repeat, archival quality, FLOWERS ONLY, NO leaves, NO foliage, NO monstera, NO palm, NO banana, NO tropical, NO jungle, no text or watermark'
@@ -182,7 +217,7 @@ function buildN(n) {
       animal,
       pickRand(TABLEAUX),
       `set among ${pickRand(BOTANICALS)}`,
-      `palette: ${pickRand(PALETTES)}`,
+      `palette: ${pickRand(pickPaletteSource())}`,
       style,
       pickRand(COMPOSITIONS),
       'seamless wallpaper repeat, archival quality, FLOWERS ONLY, NO leaves, NO foliage, NO monstera, NO palm, NO banana, NO tropical, NO jungle, no text or watermark'
@@ -192,7 +227,7 @@ function buildN(n) {
   return out;
 }
 
-module.exports = { buildPrompt, buildN, ANIMALS, TABLEAUX, BOTANICALS, PALETTES, STYLES, COMPOSITIONS };
+module.exports = { buildPrompt, buildN, ANIMALS, TABLEAUX, BOTANICALS, PALETTES, FASHION_PALETTES, ALL_PALETTES, STYLES, COMPOSITIONS };
 
 if (require.main === module) {
   const n = parseInt(process.argv[2] || '5', 10);

← d10ea8d fix(/designs): wrap card in <div> so HTML5 parser stops spli  ·  back to Wallco Ai  ·  chore(deploy): gitignore .deploy.conf (per-machine config) 1ba619e →