[object Object]

← back to Wallco Ai

curate-monterey-batch: exclude already-built masters + batch-2 manifest (12 new hue-spread Monterey)

3ca5a95744568de6bac395cb93855cca3a239a78 · 2026-06-03 20:32:39 -0700 · Steve Abrams

Files touched

Diff

commit 3ca5a95744568de6bac395cb93855cca3a239a78
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jun 3 20:32:39 2026 -0700

    curate-monterey-batch: exclude already-built masters + batch-2 manifest (12 new hue-spread Monterey)
---
 data/mural-batch-monterey-2.json | 93 ++++++++++++++++++++++++++++++++++++++++
 scripts/curate-monterey-batch.py | 17 ++++++++
 2 files changed, 110 insertions(+)

diff --git a/data/mural-batch-monterey-2.json b/data/mural-batch-monterey-2.json
new file mode 100644
index 0000000..c5ea5c5
--- /dev/null
+++ b/data/mural-batch-monterey-2.json
@@ -0,0 +1,93 @@
+{
+  "category": "monterey-mural",
+  "n": 12,
+  "spec": {
+    "print_ft": 12,
+    "height_ft": 11,
+    "bleed_in": 6,
+    "panels": [
+      24,
+      36,
+      54
+    ]
+  },
+  "selection": "hue-spread across published Monterey (visual range)",
+  "ids": [
+    20774,
+    31866,
+    33427,
+    14124,
+    35652,
+    14302,
+    12201,
+    14972,
+    30823,
+    27806,
+    25668,
+    34576
+  ],
+  "items": [
+    {
+      "id": 20774,
+      "dominant_hex": "#3b251c",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779279406349_1761239685.png"
+    },
+    {
+      "id": 31866,
+      "dominant_hex": "#423328",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779297327224_383564080.png"
+    },
+    {
+      "id": 33427,
+      "dominant_hex": "#c0996a",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779298985600_171913157.png"
+    },
+    {
+      "id": 14124,
+      "dominant_hex": "#d7c39e",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272594989_1988053788.png"
+    },
+    {
+      "id": 35652,
+      "dominant_hex": "#746c56",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779301271665_1018451784.png"
+    },
+    {
+      "id": 14302,
+      "dominant_hex": "#615f45",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272775706_1194218692.png"
+    },
+    {
+      "id": 12201,
+      "dominant_hex": "#919e6e",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779270590520_1743878687.png"
+    },
+    {
+      "id": 14972,
+      "dominant_hex": "#8eb99d",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779273463681_1458301185.png"
+    },
+    {
+      "id": 30823,
+      "dominant_hex": "#3c7985",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779296208586_830889448.png"
+    },
+    {
+      "id": 27806,
+      "dominant_hex": "#878f85",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779293051748_84301667.png"
+    },
+    {
+      "id": 25668,
+      "dominant_hex": "#353029",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779290938533_1712523307.png"
+    },
+    {
+      "id": 34576,
+      "dominant_hex": "#29211a",
+      "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779300170220_659215985.png"
+    }
+  ],
+  "batch_command": "for id in 20774 31866 33427 14124 35652 14302 12201 14972 30823 27806 25668 34576; do python3 scripts/build-mural-master.py $id; done",
+  "estimate_command": "python3 scripts/build-mural-master.py --estimate 12"
+}
\ No newline at end of file
diff --git a/scripts/curate-monterey-batch.py b/scripts/curate-monterey-batch.py
index 6045d0b..0d470c0 100644
--- a/scripts/curate-monterey-batch.py
+++ b/scripts/curate-monterey-batch.py
@@ -56,6 +56,23 @@ def main():
         rows = [r for r in cur.fetchall() if Path(r["local_path"]).exists()]
     conn.close()
 
+    # Exclude designs that ALREADY have a 12x11ft master built (on Henry / the
+    # masters dir) so a "build more" batch never re-builds what's done.
+    built = set()
+    try:
+        mdir = _bt.ROOT / "data" / "mural-masters"
+        henry = Path("/Volumes/Henry/wallco-ai-archive/mural-masters")
+        scan = henry if henry.is_dir() else mdir
+        for d in scan.iterdir():
+            if (d / "summary.json").exists():
+                try: built.add(int(d.name))
+                except ValueError: pass
+    except Exception:
+        pass
+    before = len(rows)
+    rows = [r for r in rows if r["id"] not in built]
+    print(f"excluding {before - len(rows)} already-built masters; {len(rows)} candidates remain")
+
     # Spread across the hue wheel: bucket into N hue slots, take the newest
     # (already id-DESC) per slot, then fill any short slots from the remainder.
     rows.sort(key=lambda r: hue(r["dominant_hex"]))

← 5e97709 Session freeze: compliance actions done locally, prod deploy  ·  back to Wallco Ai  ·  admin/mural-masters: show in-progress builds as live 'buildi 7513978 →