[object Object]

← back to Wallco Ai

wallco generator: seed colour from dw-fashion-templates style guide (19 luxury-house palettes)

174a5bd2460dddfdff41ad65ba01b3724f893d1a · 2026-05-19 10:14:43 -0700 · SteveStudio2

Files touched

Diff

commit 174a5bd2460dddfdff41ad65ba01b3724f893d1a
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Tue May 19 10:14:43 2026 -0700

    wallco generator: seed colour from dw-fashion-templates style guide (19 luxury-house palettes)
---
 scripts/fashion_palettes.js | 45 +++++++++++++++++++++++++++++++++++++++++++++
 scripts/generator_tick.js   |  7 ++++---
 2 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/scripts/fashion_palettes.js b/scripts/fashion_palettes.js
new file mode 100644
index 0000000..f62d835
--- /dev/null
+++ b/scripts/fashion_palettes.js
@@ -0,0 +1,45 @@
+'use strict';
+/**
+ * Fashion-house colour palettes for the wallco.ai pattern generator.
+ *
+ * Sourced verbatim from the dw-fashion-templates skill design tokens
+ * (~/.claude/skills/dw-fashion-templates/SKILL.md). Each entry is a curated
+ * luxury-brand colour system — the generator seeds its prompt palette from
+ * one of these per tick instead of raw recent-order hex, so generated
+ * patterns carry a coherent high-end colour story.
+ *
+ * pickFashionPalette() -> a random brand palette object.
+ * paletteString(p)     -> prompt-ready string: "Bottega Veneta palette — #.. (signature)".
+ */
+
+const FASHION_PALETTES = [
+  { brand: 'Hermès',          hex: ['#FF4F00', '#1a1410', '#FFFEFA', '#E5DDD0'], signature: 'burnt-orange accent, saddle-stitch warmth, generous ground' },
+  { brand: 'Bottega Veneta',  hex: ['#107A3B', '#0e1311', '#F4F0E6', '#1d2a23'], signature: 'BV green, woven intrecciato, craft-forward' },
+  { brand: 'Prada',           hex: ['#000000', '#FF0000', '#F5F2EB'],            signature: 'cream ground, scarlet accent, scientific austerity' },
+  { brand: 'Saint Laurent',   hex: ['#000000', '#FFFFFF'],                       signature: 'pure monochrome, sharp ultra-minimal' },
+  { brand: 'Dior',            hex: ['#1A1A1A', '#FAF9F6', '#A98B5B', '#D8D2C5'], signature: 'refined gray, soft gold accent, couture restraint' },
+  { brand: 'Chanel',          hex: ['#000000', '#FFFFFF'],                       signature: 'timeless black & white, high-contrast hierarchy' },
+  { brand: 'Gucci',           hex: ['#006837', '#A41E1A', '#FFFEF7', '#1a1a1a'], signature: 'green & red maximalism, ornate, warm ivory ground' },
+  { brand: 'Celine',          hex: ['#000000', '#FFFFFF', '#E0E0E0'],            signature: 'minimalist gallery monochrome, sharp' },
+  { brand: 'Loewe',           hex: ['#9B7B4F', '#F2EDE2', '#2C1F0F', '#C9BFA7'], signature: 'soft cream, hand-craft warmth, airy' },
+  { brand: 'Valentino',       hex: ['#D70000', '#FFFFFF', '#000000'],            signature: 'saturated romantic red, classical drama' },
+  { brand: 'Toteme',          hex: ['#1A1A1A', '#F5F2ED', '#D5CFC4'],            signature: 'quiet restrained neutral, understated' },
+  { brand: 'Khaite',          hex: ['#3A3530', '#F2EFE9', '#C9BFB4'],            signature: 'refined warm neutral, soft luxury' },
+  { brand: 'Balenciaga',      hex: ['#000000', '#F5F5F5', '#FF4F00'],            signature: 'brutalist, anti-luxury, oversized orange jolt' },
+  { brand: 'Burberry',        hex: ['#A47C5A', '#FFFFFF', '#000000'],            signature: 'heritage tan, check-pattern motif, clean' },
+  { brand: 'Miu Miu',         hex: ['#FFB6C1', '#FFF8F2', '#000000', '#FFCFD8'], signature: 'playful editorial pink, magazine warmth' },
+  { brand: 'Jacquemus',       hex: ['#F4D24F', '#FFFCF5', '#1a1a1a', '#F2E5A8'], signature: 'sun-yellow accent, French Riviera, cinematic' },
+  { brand: 'Skims',           hex: ['#C9B8A4', '#F5EFE6', '#3D352B', '#E8DDC9'], signature: 'nude flesh tones, soft conversion-led calm' },
+  { brand: 'Gymshark',        hex: ['#000000', '#1B5E20', '#FFFFFF'],            signature: 'bold black, deep-green energy, high contrast' },
+  { brand: 'Phoebe Philo',    hex: ['#000000', '#F5F5F0', '#D8D2C5'],            signature: 'typography-led minimal, refined off-white' },
+];
+
+function pickFashionPalette() {
+  return FASHION_PALETTES[Math.floor(Math.random() * FASHION_PALETTES.length)];
+}
+
+function paletteString(p) {
+  return `${p.brand} palette — ${p.hex.join(', ')} (${p.signature})`;
+}
+
+module.exports = { FASHION_PALETTES, pickFashionPalette, paletteString };
diff --git a/scripts/generator_tick.js b/scripts/generator_tick.js
index 76a389e..16c411b 100644
--- a/scripts/generator_tick.js
+++ b/scripts/generator_tick.js
@@ -17,6 +17,7 @@ require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') }
 const path = require('path');
 const { execSync, spawnSync } = require('child_process');
 const { pregenGate, postgenVision, quarantine, stampVerdict } = require('./settlement_tick_guard');
+const { pickFashionPalette, paletteString } = require('./fashion_palettes');
 
 const DB = 'dw_unified';
 const ROOT = path.join(__dirname, '..');
@@ -65,9 +66,9 @@ function pick(arr) {
 function buildPrompt(recipe, paletteSeeds) {
   const artist  = pick(recipe.source_artists) || 'a master textile designer';
   const style   = pick(recipe.style_tags) || 'damask';
-  const palette = paletteSeeds.length
-    ? paletteSeeds.map(p => p.dominant_hex).join(', ')
-    : (pick(recipe.color_hex_seeds) || 'warm earth tones');
+  // Colour is seeded from the dw-fashion-templates style guide — a curated
+  // luxury-house palette per tick — rather than raw recent-order hex.
+  const palette = paletteString(pickFashionPalette());
   const tpl = recipe.prompt_template ||
     'A seamless wallpaper pattern in the style of {artist}, with {style} motifs, palette {palette}. Tileable 24x24 inch.';
   return tpl

← e0266e6 Reel maker: bump to 6 designs + admin publish-to-own-channel  ·  back to Wallco Ai  ·  wallco: add /style-guide.html — brand-picker dropdown showin b80dd4d →