← 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
A scripts/fashion_palettes.jsM scripts/generator_tick.js
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 →