[object Object]

← back to Wallco Ai

drunk-animals: hero block on /designs?cat=drunk-animals + ghost-tag sanitizer

69c25295c2cca42b9a183d900977a70ce6e1e506 · 2026-05-12 20:09:02 -0700 · SteveStudio2

Hero: gradient header (purple→magenta) with pink+green pill stats
(' designs · one every 4 min', 'live until 06:00 PT') and
Playfair Display headline. Only renders for cat=drunk-animals.

Sanitizer: llava was returning the prompt section headers (animal/
pose/style/props/plants/vocabulary/tag) as literal tags on ~3 of 41
designs. Added GHOSTS set to drop them. Cleared and re-tagged 12
rows with broken tags + the 9 newly-generated since first run.

Files touched

Diff

commit 69c25295c2cca42b9a183d900977a70ce6e1e506
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Tue May 12 20:09:02 2026 -0700

    drunk-animals: hero block on /designs?cat=drunk-animals + ghost-tag sanitizer
    
    Hero: gradient header (purple→magenta) with pink+green pill stats
    (' designs · one every 4 min', 'live until 06:00 PT') and
    Playfair Display headline. Only renders for cat=drunk-animals.
    
    Sanitizer: llava was returning the prompt section headers (animal/
    pose/style/props/plants/vocabulary/tag) as literal tags on ~3 of 41
    designs. Added GHOSTS set to drop them. Cleared and re-tagged 12
    rows with broken tags + the 9 newly-generated since first run.
---
 scripts/tag_drunk_animal_motifs.py | 13 ++++++++++++-
 server.js                          | 13 +++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/scripts/tag_drunk_animal_motifs.py b/scripts/tag_drunk_animal_motifs.py
index 7d967b4..4b64599 100644
--- a/scripts/tag_drunk_animal_motifs.py
+++ b/scripts/tag_drunk_animal_motifs.py
@@ -65,7 +65,18 @@ def tag_one(image_path):
     try:
         tags = json.loads(m.group(0))
         if not isinstance(tags, list): return []
-        return [str(t).lower().strip()[:30] for t in tags if t][:6]
+        # Ghost-tag filter — llava sometimes parrots back the prompt's section
+        # headers (ANIMALS, POSE, PROPS, PLANTS, STYLE) or their lowercase
+        # equivalents instead of picking concrete words. Drop those.
+        GHOSTS = {'animal','animals','pose','poses','prop','props',
+                  'plant','plants','style','styles','vocabulary','tag','tags'}
+        cleaned = []
+        for t in tags:
+            if not t: continue
+            v = str(t).lower().strip()[:30]
+            if not v or v in GHOSTS: continue
+            cleaned.append(v)
+        return cleaned[:6]
     except Exception:
         return []
 
diff --git a/server.js b/server.js
index 2bf03a7..4978991 100644
--- a/server.js
+++ b/server.js
@@ -2358,6 +2358,19 @@ app.get('/designs', (req, res) => {
 <body>
 ${htmlHeader('/designs')}
 <main>
+${cat === 'drunk-animals' ? `
+<section style="padding:48px 24px 24px;text-align:center;background:linear-gradient(180deg,#1a0f1a 0%,#2a1530 100%);color:#fff;margin-bottom:0">
+  <div style="max-width:760px;margin:0 auto">
+    <p style="font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#ff79c6;margin:0 0 8px;font-weight:600">Limited capsule · Overnight 2026-05-12</p>
+    <h1 style="font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(34px,5vw,56px);line-height:1.05;margin:0 0 14px;color:#fff">The Drunk Animals Collection</h1>
+    <p style="font-size:15px;line-height:1.6;color:#e6d4f0;margin:0 auto;max-width:560px">A botanical-pop-Warhol fever dream. Tipsy frogs, champagne elephants, hiccup giraffes, and slumped orangutans, scattered through silkscreen jungles. Generated continuously through the night.</p>
+    <div style="margin-top:18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;font-size:12px">
+      <span style="padding:4px 10px;border:1px solid #ff79c6;border-radius:14px;color:#ff79c6"><strong>${total}</strong> designs &middot; one every 4 min</span>
+      <span style="padding:4px 10px;border:1px solid #50fa7b;border-radius:14px;color:#50fa7b">live until 06:00 PT</span>
+    </div>
+  </div>
+</section>
+` : ''}
 <section class="catalog-section">
   <div class="catalog-toolbar">
     <form method="get" action="/designs" class="filter-form">

← 4f0ff5e /api/designs/random: ETag + 304 on seeded calls (determinist  ·  back to Wallco Ai  ·  /me/saved: surface 'Saved Xh ago' badge per card (SELECT alr 80b15e7 →