← back to Wallco Ai
feat: 18 geometric-block-leaves designs + 2 fill-in runners + publish script
d14bd81a2be6e9b5c97d5cb335896c9cf03de41c · 2026-05-13 17:43:24 -0700 · SteveStudio2
20 prompts ran via Replicate SDXL (settlement-safe by structure — single ink, no foliage, edge-to-edge, no Part B elements). 18 inserted; Replicate API rate-limited on the last 2 (vesica piscis variant + 4 of fillin2). All 18 flipped is_published=TRUE and live at /designs?cat=geometric-block-leaves.
Scripts:
- scripts/generate-geometric-block-leaves.js — 20-prompt batch (10/12 of base shapes inserted)
- scripts/generate-geometric-block-leaves-fillin.js — first retry (2/8 inserted)
- scripts/generate-geometric-block-leaves-fillin2.js — second retry (1/6 inserted, Replicate API failures on rest)
- scripts/publish-geometric-block-leaves.js — flips is_published + syncs designs.json + reloads
Files touched
M data/designs.jsonM data/marketplace/events.jsonlM data/marketplace/status-watch.jsonM data/marketplace/status-watch.jsonlA scripts/generate-geometric-block-leaves-fillin.jsA scripts/generate-geometric-block-leaves-fillin2.jsA scripts/generate-geometric-block-leaves.jsA scripts/publish-geometric-block-leaves.jsA scripts/settlement_postgen_vision_check.jsM server.jsM src/marketplace/index.js
Diff
commit d14bd81a2be6e9b5c97d5cb335896c9cf03de41c
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Wed May 13 17:43:24 2026 -0700
feat: 18 geometric-block-leaves designs + 2 fill-in runners + publish script
20 prompts ran via Replicate SDXL (settlement-safe by structure — single ink, no foliage, edge-to-edge, no Part B elements). 18 inserted; Replicate API rate-limited on the last 2 (vesica piscis variant + 4 of fillin2). All 18 flipped is_published=TRUE and live at /designs?cat=geometric-block-leaves.
Scripts:
- scripts/generate-geometric-block-leaves.js — 20-prompt batch (10/12 of base shapes inserted)
- scripts/generate-geometric-block-leaves-fillin.js — first retry (2/8 inserted)
- scripts/generate-geometric-block-leaves-fillin2.js — second retry (1/6 inserted, Replicate API failures on rest)
- scripts/publish-geometric-block-leaves.js — flips is_published + syncs designs.json + reloads
---
data/designs.json | 2790 ++++++++++++--------
data/marketplace/events.jsonl | 15 +
data/marketplace/status-watch.json | 38 +-
data/marketplace/status-watch.jsonl | 17 +
scripts/generate-geometric-block-leaves-fillin.js | 44 +
scripts/generate-geometric-block-leaves-fillin2.js | 33 +
scripts/generate-geometric-block-leaves.js | 77 +
scripts/publish-geometric-block-leaves.js | 38 +
scripts/settlement_postgen_vision_check.js | 125 +
server.js | 33 +-
src/marketplace/index.js | 16 +-
11 files changed, 2051 insertions(+), 1175 deletions(-)
diff --git a/data/designs.json b/data/designs.json
index 7a64cd2..fc717d8 100644
--- a/data/designs.json
+++ b/data/designs.json
@@ -556,7 +556,7 @@
"kind": "seamless_tile",
"category": "geometric",
"dominant_hex": "#070707",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Lattice No.30",
"handle": "wallco-0030",
"image_url": "/designs/img/1778543227397_1802417126.png",
@@ -22418,7 +22418,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1056",
"handle": "wallco-1056",
"image_url": "/designs/img/1778615719058_333689337.png",
@@ -22440,7 +22440,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.1057",
"handle": "wallco-1057",
"image_url": "/designs/img/var_1056_hue+60_1778615747629.png",
@@ -22462,7 +22462,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.1058",
"handle": "wallco-1058",
"image_url": "/designs/img/var_1056_hue+120_1778615749718.png",
@@ -22484,7 +22484,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1059",
"handle": "wallco-1059",
"image_url": "/designs/img/var_1056_hue+180_1778615751816.png",
@@ -22506,7 +22506,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.1060",
"handle": "wallco-1060",
"image_url": "/designs/img/var_1056_hue-60_1778615753913.png",
@@ -22528,7 +22528,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#0f0f0f",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1061",
"handle": "wallco-1061",
"image_url": "/designs/img/var_1056_mono_1778615756064.png",
@@ -24024,7 +24024,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1129",
"handle": "wallco-1129",
"image_url": "/designs/img/1778618837536_1673265445.png",
@@ -24046,7 +24046,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.1130",
"handle": "wallco-1130",
"image_url": "/designs/img/var_1129_hue+60_1778618856375.png",
@@ -24068,7 +24068,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1131",
"handle": "wallco-1131",
"image_url": "/designs/img/var_1129_hue+120_1778618858461.png",
@@ -24090,7 +24090,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.1132",
"handle": "wallco-1132",
"image_url": "/designs/img/var_1129_hue+180_1778618860605.png",
@@ -24112,7 +24112,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.1133",
"handle": "wallco-1133",
"image_url": "/designs/img/var_1129_hue-60_1778618862860.png",
@@ -24134,7 +24134,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#050505",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1134",
"handle": "wallco-1134",
"image_url": "/designs/img/var_1129_mono_1778618864998.png",
@@ -25608,7 +25608,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1201",
"handle": "wallco-1201",
"image_url": "/designs/img/1778621206004_1461605477.png",
@@ -25630,7 +25630,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.1202",
"handle": "wallco-1202",
"image_url": "/designs/img/var_1201_hue+60_1778621218368.png",
@@ -25652,7 +25652,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.1203",
"handle": "wallco-1203",
"image_url": "/designs/img/var_1201_hue+120_1778621220585.png",
@@ -25674,7 +25674,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1204",
"handle": "wallco-1204",
"image_url": "/designs/img/var_1201_hue+180_1778621222777.png",
@@ -25696,7 +25696,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.1205",
"handle": "wallco-1205",
"image_url": "/designs/img/var_1201_hue-60_1778621224989.png",
@@ -25718,7 +25718,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#151515",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1206",
"handle": "wallco-1206",
"image_url": "/designs/img/var_1201_mono_1778621227250.png",
@@ -38984,7 +38984,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1869",
"handle": "wallco-1869",
"image_url": "/designs/img/1778645847010_854632314.png",
@@ -39006,7 +39006,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.1870",
"handle": "wallco-1870",
"image_url": "/designs/img/var_1869_hue+60_1778645856095.png",
@@ -39028,7 +39028,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.1871",
"handle": "wallco-1871",
"image_url": "/designs/img/var_1869_hue+120_1778645869965.png",
@@ -39050,7 +39050,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.1872",
"handle": "wallco-1872",
"image_url": "/designs/img/var_1869_hue+180_1778645879021.png",
@@ -39072,7 +39072,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.1873",
"handle": "wallco-1873",
"image_url": "/designs/img/var_1869_hue-60_1778645891057.png",
@@ -39094,7 +39094,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#1b1b1b",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.1874",
"handle": "wallco-1874",
"image_url": "/designs/img/var_1869_mono_1778645901902.png",
@@ -50358,7 +50358,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.2497",
"handle": "wallco-2497",
"image_url": "/designs/img/1778681832768_697676343.png",
@@ -50380,7 +50380,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.2498",
"handle": "wallco-2498",
"image_url": "/designs/img/var_2497_hue+60_1778681841945.png",
@@ -50402,7 +50402,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.2499",
"handle": "wallco-2499",
"image_url": "/designs/img/var_2497_hue+120_1778681844260.png",
@@ -50424,7 +50424,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.2500",
"handle": "wallco-2500",
"image_url": "/designs/img/var_2497_hue+180_1778681846472.png",
@@ -50446,7 +50446,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.2501",
"handle": "wallco-2501",
"image_url": "/designs/img/var_2497_hue-60_1778681848933.png",
@@ -50468,7 +50468,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#161616",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.2502",
"handle": "wallco-2502",
"image_url": "/designs/img/var_2497_mono_1778681851198.png",
@@ -52980,8 +52980,7 @@
"jungle",
"forest",
"monstera",
- "bromeliad",
- "palm"
+ "bromeliad"
],
"user_removed": false,
"user_color_good": null,
@@ -53648,7 +53647,7 @@
"category": "drunk-animals",
"dominant_hex": "#7b476f",
"saturation": 0.268,
- "title": "Plum Soirée No.2664",
+ "title": "Plum Soir\u00e9e No.2664",
"handle": "wallco-2664",
"image_url": "/designs/img/1778685704733_868153070.png",
"filename": "1778685704733_868153070.png",
@@ -55880,7 +55879,7 @@
"category": "drunk-animals",
"dominant_hex": "#53bba0",
"saturation": 0.433,
- "title": "Marine Soirée No.2764",
+ "title": "Marine Soir\u00e9e No.2764",
"handle": "wallco-2764",
"image_url": "/designs/img/1778687679946_72547903.png",
"filename": "1778687679946_72547903.png",
@@ -56115,7 +56114,7 @@
"category": "drunk-animals",
"dominant_hex": "#af4581",
"saturation": 0.434,
- "title": "Plum Soirée No.2774",
+ "title": "Plum Soir\u00e9e No.2774",
"handle": "wallco-2774",
"image_url": "/designs/img/1778687733066_1078209124.png",
"filename": "1778687733066_1078209124.png",
@@ -57061,7 +57060,7 @@
"category": "drunk-animals",
"dominant_hex": "#25414d",
"saturation": 0.351,
- "title": "Sapphire Soirée No.2814",
+ "title": "Sapphire Soir\u00e9e No.2814",
"handle": "wallco-2814",
"image_url": "/designs/img/1778687891911_393951860.png",
"filename": "1778687891911_393951860.png",
@@ -57301,7 +57300,7 @@
"category": "drunk-animals",
"dominant_hex": "#2d4b6e",
"saturation": 0.419,
- "title": "Sapphire Soirée No.2824",
+ "title": "Sapphire Soir\u00e9e No.2824",
"handle": "wallco-2824",
"image_url": "/designs/img/1778687937080_1250699604.png",
"filename": "1778687937080_1250699604.png",
@@ -57312,7 +57311,6 @@
"motifs": [
"parrot",
"cocktail",
- "palm",
"warhol"
],
"user_removed": false,
@@ -57547,7 +57545,7 @@
"category": "drunk-animals",
"dominant_hex": "#be8372",
"saturation": 0.369,
- "title": "Rose Soirée No.2834",
+ "title": "Rose Soir\u00e9e No.2834",
"handle": "wallco-2834",
"image_url": "/designs/img/1778687970209_441850296.png",
"filename": "1778687970209_441850296.png",
@@ -64856,7 +64854,7 @@
"category": "mural-scenic",
"dominant_hex": "#786f57",
"saturation": 0.159,
- "title": "Honey Allée No.3166",
+ "title": "Honey All\u00e9e No.3166",
"handle": "wallco-3166",
"image_url": "/designs/img/1778693772979_1521719090.png",
"filename": "1778693772979_1521719090.png",
@@ -65076,7 +65074,7 @@
"category": "mural-scenic",
"dominant_hex": "#6c6849",
"saturation": 0.193,
- "title": "Honey Allée No.3176",
+ "title": "Honey All\u00e9e No.3176",
"handle": "wallco-3176",
"image_url": "/designs/img/1778693927051_1660752411.png",
"filename": "1778693927051_1660752411.png",
@@ -65516,7 +65514,7 @@
"category": "mural-scenic",
"dominant_hex": "#645f40",
"saturation": 0.22,
- "title": "Honey Allée No.3196",
+ "title": "Honey All\u00e9e No.3196",
"handle": "wallco-3196",
"image_url": "/designs/img/1778694051969_1089762755.png",
"filename": "1778694051969_1089762755.png",
@@ -69855,7 +69853,7 @@
"category": "drunk-animals",
"dominant_hex": "#972e4c",
"saturation": 0.533,
- "title": "Rose Soirée No.3404",
+ "title": "Rose Soir\u00e9e No.3404",
"handle": "wallco-3404",
"image_url": "/designs/img/1778698291320_471756783.png",
"filename": "1778698291320_471756783.png",
@@ -70082,7 +70080,7 @@
"category": "drunk-animals",
"dominant_hex": "#635f57",
"saturation": 0.065,
- "title": "Slate Soirée No.3414",
+ "title": "Slate Soir\u00e9e No.3414",
"handle": "wallco-3414",
"image_url": "/designs/img/1778698471306_638425891.png",
"filename": "1778698471306_638425891.png",
@@ -71697,7 +71695,7 @@
"category": "drunk-animals",
"dominant_hex": "#c26b85",
"saturation": 0.416,
- "title": "Rose Soirée No.3484",
+ "title": "Rose Soir\u00e9e No.3484",
"handle": "wallco-3484",
"image_url": "/designs/img/1778699551328_1025500305.png",
"filename": "1778699551328_1025500305.png",
@@ -73461,7 +73459,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.3563",
"handle": "wallco-3563",
"image_url": "/designs/img/1778700339532_1212635790.png",
@@ -73483,7 +73481,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.3564",
"handle": "wallco-3564",
"image_url": "/designs/img/var_3563_hue+60_1778700348162.png",
@@ -73505,7 +73503,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Baroque No.3565",
"handle": "wallco-3565",
"image_url": "/designs/img/var_3563_hue+120_1778700350354.png",
@@ -73527,7 +73525,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.3566",
"handle": "wallco-3566",
"image_url": "/designs/img/var_3563_hue+180_1778700352548.png",
@@ -73549,7 +73547,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.3567",
"handle": "wallco-3567",
"image_url": "/designs/img/var_3563_hue-60_1778700354683.png",
@@ -73571,7 +73569,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#141414",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.3568",
"handle": "wallco-3568",
"image_url": "/designs/img/var_3563_mono_1778700356927.png",
@@ -73714,7 +73712,7 @@
"category": "drunk-animals",
"dominant_hex": "#42233a",
"saturation": 0.307,
- "title": "Plum Soirée No.3574",
+ "title": "Plum Soir\u00e9e No.3574",
"handle": "wallco-3574",
"image_url": "/designs/img/1778700451329_647008514.png",
"filename": "1778700451329_647008514.png",
@@ -75797,7 +75795,7 @@
"category": "drunk-animals",
"dominant_hex": "#da2e99",
"saturation": 0.699,
- "title": "Plum Soirée No.3664",
+ "title": "Plum Soir\u00e9e No.3664",
"handle": "wallco-3664",
"image_url": "/designs/img/1778701981306_394484979.png",
"filename": "1778701981306_394484979.png",
@@ -76025,7 +76023,7 @@
"category": "drunk-animals",
"dominant_hex": "#d12f73",
"saturation": 0.638,
- "title": "Rose Soirée No.3674",
+ "title": "Rose Soir\u00e9e No.3674",
"handle": "wallco-3674",
"image_url": "/designs/img/1778702072102_2060677012.png",
"filename": "1778702072102_2060677012.png",
@@ -76584,58 +76582,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3698,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#4b8060",
- "saturation": 0.261,
- "title": "Sage Folio No.3698",
- "handle": "wallco-3698",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_900_1778702555393_696699947.png",
- "filename": "bh_coord_mini-cane-trellis_900_1778702555393_696699947.png",
- "generator": "wallco.ai",
- "seed": 696699947,
- "is_published": false,
- "created_at": "2026-05-13T20:02:35.515938+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3699,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#efeae0",
- "saturation": 0.319,
- "title": "Honey Reverie No.3699",
- "handle": "wallco-3699",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_706_1778702564942_1864663081.png",
- "filename": "bh_coord_mini-cane-trellis_706_1778702564942_1864663081.png",
- "generator": "wallco.ai",
- "seed": 1864663081,
- "is_published": false,
- "created_at": "2026-05-13T20:02:45.05921+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3700,
"kind": "seamless_tile",
@@ -76660,91 +76606,13 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3701,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#376753",
- "saturation": 0.304,
- "title": "Marine Studio No.3701",
- "handle": "wallco-3701",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_900_1778702588543_806889088.png",
- "filename": "bh_coord_bamboo-stripe_900_1778702588543_806889088.png",
- "generator": "wallco.ai",
- "seed": 806889088,
- "is_published": false,
- "created_at": "2026-05-13T20:03:08.651399+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3702,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#688391",
- "saturation": 0.165,
- "title": "Sapphire Origin No.3702",
- "handle": "wallco-3702",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_706_1778702596324_825987132.png",
- "filename": "bh_coord_bamboo-stripe_706_1778702596324_825987132.png",
- "generator": "wallco.ai",
- "seed": 825987132,
- "is_published": false,
- "created_at": "2026-05-13T20:03:16.44883+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3703,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f1e6c5",
- "saturation": 0.611,
- "title": "Honey Folio No.3703",
- "handle": "wallco-3703",
- "image_url": "/designs/img/bh_coord_tonal-damask_900_1778702618724_1524565354.png",
- "filename": "bh_coord_tonal-damask_900_1778702618724_1524565354.png",
- "generator": "wallco.ai",
- "seed": 1524565354,
- "is_published": false,
- "created_at": "2026-05-13T20:03:38.836356+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3704,
"kind": "seamless_tile",
"category": "drunk-animals",
"dominant_hex": "#9d517a",
"saturation": 0.319,
- "title": "Plum Soirée No.3704",
+ "title": "Plum Soir\u00e9e No.3704",
"handle": "wallco-3704",
"image_url": "/designs/img/1778702611366_2002959095.png",
"filename": "1778702611366_2002959095.png",
@@ -76789,32 +76657,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3706,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#c5ccc9",
- "saturation": 0.064,
- "title": "Ash Studio No.3706",
- "handle": "wallco-3706",
- "image_url": "/designs/img/bh_coord_tonal-damask_706_1778702626477_1809835394.png",
- "filename": "bh_coord_tonal-damask_706_1778702626477_1809835394.png",
- "generator": "wallco.ai",
- "seed": 1809835394,
- "is_published": false,
- "created_at": "2026-05-13T20:03:46.596639+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3707,
"kind": "seamless_tile",
@@ -76859,32 +76701,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3709,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#e9e0cb",
- "saturation": 0.405,
- "title": "Honey Reverie No.3709",
- "handle": "wallco-3709",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_900_1778702647046_313683962.png",
- "filename": "bh_coord_grasscloth-texture_900_1778702647046_313683962.png",
- "generator": "wallco.ai",
- "seed": 313683962,
- "is_published": false,
- "created_at": "2026-05-13T20:04:07.157999+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3710,
"kind": "seamless_tile",
@@ -76973,58 +76789,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3714,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#688aa2",
- "saturation": 0.238,
- "title": "Sapphire Reverie No.3714",
- "handle": "wallco-3714",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_706_1778702657325_2045840174.png",
- "filename": "bh_coord_grasscloth-texture_706_1778702657325_2045840174.png",
- "generator": "wallco.ai",
- "seed": 2045840174,
- "is_published": false,
- "created_at": "2026-05-13T20:04:17.470384+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3715,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#4f4f4c",
- "saturation": 0.019,
- "title": "Slate Atelier No.3715",
- "handle": "wallco-3715",
- "image_url": "/designs/img/bh_coord_diamond-lattice_706_1778702688292_2124869359.png",
- "filename": "bh_coord_diamond-lattice_706_1778702688292_2124869359.png",
- "generator": "wallco.ai",
- "seed": 2124869359,
- "is_published": false,
- "created_at": "2026-05-13T20:04:48.430315+00:00",
- "motifs": [
- "coordinate",
- "diamond-lattice",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3717,
"kind": "seamless_tile",
@@ -77075,7 +76839,7 @@
"category": "drunk-animals",
"dominant_hex": "#83686e",
"saturation": 0.115,
- "title": "Rose Soirée No.3724",
+ "title": "Rose Soir\u00e9e No.3724",
"handle": "wallco-3724",
"image_url": "/designs/img/1778702791340_74653578.png",
"filename": "1778702791340_74653578.png",
@@ -77276,58 +77040,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3736,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f5f0e1",
- "saturation": 0.5,
- "title": "Honey Studio No.3736",
- "handle": "wallco-3736",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_bone-ink_1778702876045_120365129.png",
- "filename": "bh_coord_mini-cane-trellis_bone-ink_1778702876045_120365129.png",
- "generator": "wallco.ai",
- "seed": 120365129,
- "is_published": false,
- "created_at": "2026-05-13T20:07:56.197481+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3737,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#e7e0cd",
- "saturation": 0.351,
- "title": "Honey Origin No.3737",
- "handle": "wallco-3737",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_champ-mid_1778702886732_627680105.png",
- "filename": "bh_coord_mini-cane-trellis_champ-mid_1778702886732_627680105.png",
- "generator": "wallco.ai",
- "seed": 627680105,
- "is_published": false,
- "created_at": "2026-05-13T20:08:06.86049+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3738,
"kind": "seamless_tile",
@@ -77372,266 +77084,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3740,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#2e2e2f",
- "saturation": 0.011,
- "title": "Noir Atelier No.3740",
- "handle": "wallco-3740",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_bone-ink_1778702897410_1407032530.png",
- "filename": "bh_coord_bamboo-stripe_bone-ink_1778702897410_1407032530.png",
- "generator": "wallco.ai",
- "seed": 1407032530,
- "is_published": false,
- "created_at": "2026-05-13T20:08:17.516927+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3741,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#1f2b44",
- "saturation": 0.374,
- "title": "Sapphire Studio No.3741",
- "handle": "wallco-3741",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_champ-mid_1778702908260_778034999.png",
- "filename": "bh_coord_bamboo-stripe_champ-mid_1778702908260_778034999.png",
- "generator": "wallco.ai",
- "seed": 778034999,
- "is_published": false,
- "created_at": "2026-05-13T20:08:28.366087+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3742,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f5f0df",
- "saturation": 0.524,
- "title": "Honey Origin No.3742",
- "handle": "wallco-3742",
- "image_url": "/designs/img/bh_coord_tonal-damask_bone-ink_1778702919346_1307133131.png",
- "filename": "bh_coord_tonal-damask_bone-ink_1778702919346_1307133131.png",
- "generator": "wallco.ai",
- "seed": 1307133131,
- "is_published": false,
- "created_at": "2026-05-13T20:08:39.457092+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3743,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#162047",
- "saturation": 0.527,
- "title": "Sapphire Folio No.3743",
- "handle": "wallco-3743",
- "image_url": "/designs/img/bh_coord_tonal-damask_champ-mid_1778702929631_668109802.png",
- "filename": "bh_coord_tonal-damask_champ-mid_1778702929631_668109802.png",
- "generator": "wallco.ai",
- "seed": 668109802,
- "is_published": false,
- "created_at": "2026-05-13T20:08:49.750853+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3744,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#739479",
- "saturation": 0.134,
- "title": "Sage Reverie No.3744",
- "handle": "wallco-3744",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_900_1778702936658_2003734865.png",
- "filename": "bh_coord_mini-cane-trellis_900_1778702936658_2003734865.png",
- "generator": "wallco.ai",
- "seed": 2003734865,
- "is_published": false,
- "created_at": "2026-05-13T20:08:56.787919+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3745,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#a19a87",
- "saturation": 0.121,
- "title": "Honey Atelier No.3745",
- "handle": "wallco-3745",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_bone-ink_1778702940066_1297274431.png",
- "filename": "bh_coord_grasscloth-texture_bone-ink_1778702940066_1297274431.png",
- "generator": "wallco.ai",
- "seed": 1297274431,
- "is_published": false,
- "created_at": "2026-05-13T20:09:00.18379+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3746,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#597283",
- "saturation": 0.191,
- "title": "Sapphire Studio No.3746",
- "handle": "wallco-3746",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_706_1778702946534_2088352298.png",
- "filename": "bh_coord_mini-cane-trellis_706_1778702946534_2088352298.png",
- "generator": "wallco.ai",
- "seed": 2088352298,
- "is_published": false,
- "created_at": "2026-05-13T20:09:06.664683+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3747,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#2a384e",
- "saturation": 0.3,
- "title": "Sapphire Origin No.3747",
- "handle": "wallco-3747",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_champ-mid_1778702950679_1147207195.png",
- "filename": "bh_coord_grasscloth-texture_champ-mid_1778702950679_1147207195.png",
- "generator": "wallco.ai",
- "seed": 1147207195,
- "is_published": false,
- "created_at": "2026-05-13T20:09:10.794469+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3748,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f6f0df",
- "saturation": 0.561,
- "title": "Honey Folio No.3748",
- "handle": "wallco-3748",
- "image_url": "/designs/img/bh_coord_diamond-lattice_bone-ink_1778702963434_129089893.png",
- "filename": "bh_coord_diamond-lattice_bone-ink_1778702963434_129089893.png",
- "generator": "wallco.ai",
- "seed": 129089893,
- "is_published": false,
- "created_at": "2026-05-13T20:09:23.538035+00:00",
- "motifs": [
- "coordinate",
- "diamond-lattice",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3749,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f5f0e1",
- "saturation": 0.5,
- "title": "Honey Reverie No.3749",
- "handle": "wallco-3749",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_900_1778702980910_339552228.png",
- "filename": "bh_coord_bamboo-stripe_900_1778702980910_339552228.png",
- "generator": "wallco.ai",
- "seed": 339552228,
- "is_published": false,
- "created_at": "2026-05-13T20:09:41.052628+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3750,
"kind": "seamless_tile",
@@ -77720,32 +77172,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3758,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#e2d5be",
- "saturation": 0.383,
- "title": "Honey Folio No.3758",
- "handle": "wallco-3758",
- "image_url": "/designs/img/bh_coord_tonal-damask_900_1778703025473_1856722160.png",
- "filename": "bh_coord_tonal-damask_900_1778703025473_1856722160.png",
- "generator": "wallco.ai",
- "seed": 1856722160,
- "is_published": false,
- "created_at": "2026-05-13T20:10:25.578425+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3759,
"kind": "seamless_tile",
@@ -77834,58 +77260,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3764,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#a7b9c0",
- "saturation": 0.166,
- "title": "Sapphire Reverie No.3764",
- "handle": "wallco-3764",
- "image_url": "/designs/img/bh_coord_tonal-damask_706_1778703035647_572201195.png",
- "filename": "bh_coord_tonal-damask_706_1778703035647_572201195.png",
- "generator": "wallco.ai",
- "seed": 572201195,
- "is_published": false,
- "created_at": "2026-05-13T20:10:35.773439+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3768,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#74938e",
- "saturation": 0.126,
- "title": "Marine Folio No.3768",
- "handle": "wallco-3768",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_706_1778703069539_399173491.png",
- "filename": "bh_coord_grasscloth-texture_706_1778703069539_399173491.png",
- "generator": "wallco.ai",
- "seed": 399173491,
- "is_published": false,
- "created_at": "2026-05-13T20:11:09.655788+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3769,
"kind": "seamless_tile",
@@ -77952,58 +77326,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3774,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f5eedc",
- "saturation": 0.556,
- "title": "Honey Reverie No.3774",
- "handle": "wallco-3774",
- "image_url": "/designs/img/bh_coord_diamond-lattice_900_1778703097981_1689070830.png",
- "filename": "bh_coord_diamond-lattice_900_1778703097981_1689070830.png",
- "generator": "wallco.ai",
- "seed": 1689070830,
- "is_published": false,
- "created_at": "2026-05-13T20:11:38.088821+00:00",
- "motifs": [
- "coordinate",
- "diamond-lattice",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3775,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f0ecdf",
- "saturation": 0.362,
- "title": "Honey Atelier No.3775",
- "handle": "wallco-3775",
- "image_url": "/designs/img/bh_coord_diamond-lattice_706_1778703106634_390517046.png",
- "filename": "bh_coord_diamond-lattice_706_1778703106634_390517046.png",
- "generator": "wallco.ai",
- "seed": 390517046,
- "is_published": false,
- "created_at": "2026-05-13T20:11:46.750745+00:00",
- "motifs": [
- "coordinate",
- "diamond-lattice",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3778,
"kind": "seamless_tile",
@@ -78224,84 +77546,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3796,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f4efde",
- "saturation": 0.5,
- "title": "Honey Studio No.3796",
- "handle": "wallco-3796",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_bone-ink_1778703310865_2082890734.png",
- "filename": "bh_coord_mini-cane-trellis_bone-ink_1778703310865_2082890734.png",
- "generator": "wallco.ai",
- "seed": 2082890734,
- "is_published": false,
- "created_at": "2026-05-13T20:15:11.011364+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3797,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f3ebdb",
- "saturation": 0.5,
- "title": "Honey Origin No.3797",
- "handle": "wallco-3797",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_champ-mid_1778703324211_95751276.png",
- "filename": "bh_coord_mini-cane-trellis_champ-mid_1778703324211_95751276.png",
- "generator": "wallco.ai",
- "seed": 95751276,
- "is_published": false,
- "created_at": "2026-05-13T20:15:24.365079+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3798,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#383b40",
- "saturation": 0.067,
- "title": "Noir Folio No.3798",
- "handle": "wallco-3798",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_bone-ink_1778703335291_304253680.png",
- "filename": "bh_coord_bamboo-stripe_bone-ink_1778703335291_304253680.png",
- "generator": "wallco.ai",
- "seed": 304253680,
- "is_published": false,
- "created_at": "2026-05-13T20:15:35.441394+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3799,
"kind": "seamless_tile",
@@ -78346,32 +77590,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3801,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f3eede",
- "saturation": 0.467,
- "title": "Honey Studio No.3801",
- "handle": "wallco-3801",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_champ-mid_1778703346327_420476353.png",
- "filename": "bh_coord_bamboo-stripe_champ-mid_1778703346327_420476353.png",
- "generator": "wallco.ai",
- "seed": 420476353,
- "is_published": false,
- "created_at": "2026-05-13T20:15:46.448093+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3802,
"kind": "seamless_tile",
@@ -78394,110 +77612,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3803,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f3eddd",
- "saturation": 0.478,
- "title": "Honey Folio No.3803",
- "handle": "wallco-3803",
- "image_url": "/designs/img/bh_coord_tonal-damask_bone-ink_1778703357135_805380617.png",
- "filename": "bh_coord_tonal-damask_bone-ink_1778703357135_805380617.png",
- "generator": "wallco.ai",
- "seed": 805380617,
- "is_published": false,
- "created_at": "2026-05-13T20:15:57.256293+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3804,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#19264f",
- "saturation": 0.519,
- "title": "Sapphire Reverie No.3804",
- "handle": "wallco-3804",
- "image_url": "/designs/img/bh_coord_tonal-damask_champ-mid_1778703368135_799526339.png",
- "filename": "bh_coord_tonal-damask_champ-mid_1778703368135_799526339.png",
- "generator": "wallco.ai",
- "seed": 799526339,
- "is_published": false,
- "created_at": "2026-05-13T20:16:08.250089+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3805,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#888378",
- "saturation": 0.063,
- "title": "Ash Atelier No.3805",
- "handle": "wallco-3805",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_bone-ink_1778703379116_883634591.png",
- "filename": "bh_coord_grasscloth-texture_bone-ink_1778703379116_883634591.png",
- "generator": "wallco.ai",
- "seed": 883634591,
- "is_published": false,
- "created_at": "2026-05-13T20:16:19.231169+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 3806,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#425b5f",
- "saturation": 0.18,
- "title": "Marine Studio No.3806",
- "handle": "wallco-3806",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_champ-mid_1778703390050_411727297.png",
- "filename": "bh_coord_grasscloth-texture_champ-mid_1778703390050_411727297.png",
- "generator": "wallco.ai",
- "seed": 411727297,
- "is_published": false,
- "created_at": "2026-05-13T20:16:30.175733+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3807,
"kind": "seamless_tile",
@@ -78542,32 +77656,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 3809,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#f4eede",
- "saturation": 0.5,
- "title": "Honey Reverie No.3809",
- "handle": "wallco-3809",
- "image_url": "/designs/img/bh_coord_diamond-lattice_champ-mid_1778703415241_20549780.png",
- "filename": "bh_coord_diamond-lattice_champ-mid_1778703415241_20549780.png",
- "generator": "wallco.ai",
- "seed": 20549780,
- "is_published": false,
- "created_at": "2026-05-13T20:16:55.358802+00:00",
- "motifs": [
- "coordinate",
- "diamond-lattice",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 3810,
"kind": "seamless_tile",
@@ -78662,7 +77750,7 @@
"category": "drunk-animals",
"dominant_hex": "#9b8a49",
"saturation": 0.36,
- "title": "Honey Soirée No.3814",
+ "title": "Honey Soir\u00e9e No.3814",
"handle": "wallco-3814",
"image_url": "/designs/img/1778703421327_1795125916.png",
"filename": "1778703421327_1795125916.png",
@@ -78882,7 +77970,7 @@
"category": "drunk-animals",
"dominant_hex": "#e21186",
"saturation": 0.86,
- "title": "Plum Soirée No.3834",
+ "title": "Plum Soir\u00e9e No.3834",
"handle": "wallco-3834",
"image_url": "/designs/img/1778703601397_1082006509.png",
"filename": "1778703601397_1082006509.png",
@@ -80422,7 +79510,7 @@
"category": "drunk-animals",
"dominant_hex": "#1d171f",
"saturation": 0.148,
- "title": "Mauve Soirée No.3904",
+ "title": "Mauve Soir\u00e9e No.3904",
"handle": "wallco-3904",
"image_url": "/designs/img/1778704861670_1835996605.png",
"filename": "1778704861670_1835996605.png",
@@ -80862,7 +79950,7 @@
"category": "drunk-animals",
"dominant_hex": "#a77c8e",
"saturation": 0.196,
- "title": "Rose Soirée No.3924",
+ "title": "Rose Soir\u00e9e No.3924",
"handle": "wallco-3924",
"image_url": "/designs/img/1778705221659_916892215.png",
"filename": "1778705221659_916892215.png",
@@ -81962,7 +81050,7 @@
"category": "drunk-animals",
"dominant_hex": "#d25736",
"saturation": 0.634,
- "title": "Rose Soirée No.3974",
+ "title": "Rose Soir\u00e9e No.3974",
"handle": "wallco-3974",
"image_url": "/designs/img/1778706096251_2061806366.png",
"filename": "1778706096251_2061806366.png",
@@ -82622,7 +81710,7 @@
"category": "drunk-animals",
"dominant_hex": "#4a2934",
"saturation": 0.287,
- "title": "Rose Soirée No.4004",
+ "title": "Rose Soir\u00e9e No.4004",
"handle": "wallco-4004",
"image_url": "/designs/img/1778706664563_432189635.png",
"filename": "1778706664563_432189635.png",
@@ -83062,7 +82150,7 @@
"category": "drunk-animals",
"dominant_hex": "#442e4c",
"saturation": 0.246,
- "title": "Mauve Soirée No.4024",
+ "title": "Mauve Soir\u00e9e No.4024",
"handle": "wallco-4024",
"image_url": "/designs/img/1778706932150_318453292.png",
"filename": "1778706932150_318453292.png",
@@ -84310,32 +83398,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 4081,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#ece0c6",
- "saturation": 0.5,
- "title": "Honey Studio No.4081",
- "handle": "wallco-4081",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_900_retry_1778708014365_1098179489.png",
- "filename": "bh_coord_grasscloth-texture_900_retry_1778708014365_1098179489.png",
- "generator": "wallco.ai",
- "seed": 1098179489,
- "is_published": false,
- "created_at": "2026-05-13T21:33:34.48384+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 4082,
"kind": "seamless_tile",
@@ -84512,136 +83574,6 @@
"user_stars": null,
"room_mockups": []
},
- {
- "id": 4090,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#ece8dc",
- "saturation": 0.296,
- "title": "Honey Atelier No.4090",
- "handle": "wallco-4090",
- "image_url": "/designs/img/bh_coord_mini-cane-trellis_olive_retry_1778708055767_1028961083.png",
- "filename": "bh_coord_mini-cane-trellis_olive_retry_1778708055767_1028961083.png",
- "generator": "wallco.ai",
- "seed": 1028961083,
- "is_published": false,
- "created_at": "2026-05-13T21:34:15.875454+00:00",
- "motifs": [
- "coordinate",
- "mini-cane-trellis",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 4091,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#e3dfd2",
- "saturation": 0.233,
- "title": "Honey Studio No.4091",
- "handle": "wallco-4091",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_706_retry_1778708064493_275345120.png",
- "filename": "bh_coord_bamboo-stripe_706_retry_1778708064493_275345120.png",
- "generator": "wallco.ai",
- "seed": 275345120,
- "is_published": false,
- "created_at": "2026-05-13T21:34:24.609417+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 4092,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#ebe7db",
- "saturation": 0.286,
- "title": "Honey Origin No.4092",
- "handle": "wallco-4092",
- "image_url": "/designs/img/bh_coord_bamboo-stripe_olive_retry_1778708073332_232221208.png",
- "filename": "bh_coord_bamboo-stripe_olive_retry_1778708073332_232221208.png",
- "generator": "wallco.ai",
- "seed": 232221208,
- "is_published": false,
- "created_at": "2026-05-13T21:34:33.437721+00:00",
- "motifs": [
- "coordinate",
- "bamboo-stripe",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 4093,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#bdba9d",
- "saturation": 0.195,
- "title": "Honey Folio No.4093",
- "handle": "wallco-4093",
- "image_url": "/designs/img/bh_coord_tonal-damask_olive_retry_1778708081055_1243539889.png",
- "filename": "bh_coord_tonal-damask_olive_retry_1778708081055_1243539889.png",
- "generator": "wallco.ai",
- "seed": 1243539889,
- "is_published": false,
- "created_at": "2026-05-13T21:34:41.177306+00:00",
- "motifs": [
- "coordinate",
- "tonal-damask",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
- {
- "id": 4094,
- "kind": "seamless_tile",
- "category": "bh-coordinates",
- "dominant_hex": "#c6b999",
- "saturation": 0.283,
- "title": "Honey Reverie No.4094",
- "handle": "wallco-4094",
- "image_url": "/designs/img/bh_coord_grasscloth-texture_olive_retry_1778708098281_242638754.png",
- "filename": "bh_coord_grasscloth-texture_olive_retry_1778708098281_242638754.png",
- "generator": "wallco.ai",
- "seed": 242638754,
- "is_published": false,
- "created_at": "2026-05-13T21:34:58.448869+00:00",
- "motifs": [
- "coordinate",
- "grasscloth-texture",
- "bh90210"
- ],
- "user_removed": false,
- "user_color_good": null,
- "user_style_good": null,
- "user_scale_good": null,
- "user_stars": null,
- "room_mockups": []
- },
{
"id": 4096,
"kind": "seamless_tile",
@@ -84736,7 +83668,7 @@
"category": "drunk-animals",
"dominant_hex": "#344a88",
"saturation": 0.447,
- "title": "Sapphire Soirée No.4104",
+ "title": "Sapphire Soir\u00e9e No.4104",
"handle": "wallco-4104",
"image_url": "/designs/img/1778708192362_1257086762.png",
"filename": "1778708192362_1257086762.png",
@@ -84956,7 +83888,7 @@
"category": "drunk-animals",
"dominant_hex": "#252122",
"saturation": 0.057,
- "title": "Noir Soirée No.4114",
+ "title": "Noir Soir\u00e9e No.4114",
"handle": "wallco-4114",
"image_url": "/designs/img/1778708372361_290094801.png",
"filename": "1778708372361_290094801.png",
@@ -86935,7 +85867,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#121212",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Salon No.4204",
"handle": "wallco-4204",
"image_url": "/designs/img/1778709972346_493807210.png",
@@ -87001,7 +85933,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#121212",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Heirloom No.4207",
"handle": "wallco-4207",
"image_url": "/designs/img/var_4204_hue+60_1778710042561.png",
@@ -87023,7 +85955,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#121212",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Atelier No.4208",
"handle": "wallco-4208",
"image_url": "/designs/img/var_4204_hue+180_1778710120529.png",
@@ -87089,7 +86021,7 @@
"kind": "seamless_tile",
"category": "damask",
"dominant_hex": "#121212",
- "saturation": 0,
+ "saturation": 0.0,
"title": "Noir Damask No.4211",
"handle": "wallco-4211",
"image_url": "/designs/img/var_4204_hue-60_1778710159352.png",
@@ -88036,7 +86968,7 @@
"category": "drunk-animals",
"dominant_hex": "#c8317f",
"saturation": 0.606,
- "title": "Plum Soirée No.4254",
+ "title": "Plum Soir\u00e9e No.4254",
"handle": "wallco-4254",
"image_url": "/designs/img/1778711101318_1951310066.png",
"filename": "1778711101318_1951310066.png",
@@ -88696,7 +87628,7 @@
"category": "drunk-animals",
"dominant_hex": "#9e3c7c",
"saturation": 0.45,
- "title": "Plum Soirée No.4284",
+ "title": "Plum Soir\u00e9e No.4284",
"handle": "wallco-4284",
"image_url": "/designs/img/1778711554185_1103482347.png",
"filename": "1778711554185_1103482347.png",
@@ -88916,7 +87848,7 @@
"category": "drunk-animals",
"dominant_hex": "#a6387e",
"saturation": 0.495,
- "title": "Plum Soirée No.4294",
+ "title": "Plum Soir\u00e9e No.4294",
"handle": "wallco-4294",
"image_url": "/designs/img/1778711731427_727102549.png",
"filename": "1778711731427_727102549.png",
@@ -90456,7 +89388,7 @@
"category": "drunk-animals",
"dominant_hex": "#3c1229",
"saturation": 0.538,
- "title": "Plum Soirée No.4364",
+ "title": "Plum Soir\u00e9e No.4364",
"handle": "wallco-4364",
"image_url": "/designs/img/1778713006816_1608727588.png",
"filename": "1778713006816_1608727588.png",
@@ -90676,7 +89608,7 @@
"category": "drunk-animals",
"dominant_hex": "#7a4d74",
"saturation": 0.226,
- "title": "Plum Soirée No.4374",
+ "title": "Plum Soir\u00e9e No.4374",
"handle": "wallco-4374",
"image_url": "/designs/img/1778713220249_274618064.png",
"filename": "1778713220249_274618064.png",
@@ -91116,7 +90048,7 @@
"category": "drunk-animals",
"dominant_hex": "#c05b76",
"saturation": 0.445,
- "title": "Rose Soirée No.4394",
+ "title": "Rose Soir\u00e9e No.4394",
"handle": "wallco-4394",
"image_url": "/designs/img/1778713505225_836477746.png",
"filename": "1778713505225_836477746.png",
@@ -92656,7 +91588,7 @@
"category": "drunk-animals",
"dominant_hex": "#1b1c1f",
"saturation": 0.069,
- "title": "Noir Soirée No.4464",
+ "title": "Noir Soir\u00e9e No.4464",
"handle": "wallco-4464",
"image_url": "/designs/img/1778714774359_2070718935.png",
"filename": "1778714774359_2070718935.png",
@@ -93756,7 +92688,7 @@
"category": "drunk-animals",
"dominant_hex": "#9aaa63",
"saturation": 0.295,
- "title": "Olive Soirée No.4514",
+ "title": "Olive Soir\u00e9e No.4514",
"handle": "wallco-4514",
"image_url": "/designs/img/1778715877545_1889545124.png",
"filename": "1778715877545_1889545124.png",
@@ -93976,7 +92908,7 @@
"category": "drunk-animals",
"dominant_hex": "#edb12b",
"saturation": 0.843,
- "title": "Honey Soirée No.4524",
+ "title": "Honey Soir\u00e9e No.4524",
"handle": "wallco-4524",
"image_url": "/designs/img/var_4521_hue+180_1778716153939.png",
"filename": "var_4521_hue+180_1778716153939.png",
@@ -94196,7 +93128,7 @@
"category": "drunk-animals",
"dominant_hex": "#db4061",
"saturation": 0.683,
- "title": "Rose Soirée No.4534",
+ "title": "Rose Soir\u00e9e No.4534",
"handle": "wallco-4534",
"image_url": "/designs/img/var_4529_hue-60_1778716336699.png",
"filename": "var_4529_hue-60_1778716336699.png",
@@ -94416,7 +93348,7 @@
"category": "drunk-animals",
"dominant_hex": "#c33f79",
"saturation": 0.524,
- "title": "Rose Soirée No.4544",
+ "title": "Rose Soir\u00e9e No.4544",
"handle": "wallco-4544",
"image_url": "/designs/img/1778716597602_256216514.png",
"filename": "1778716597602_256216514.png",
@@ -94944,7 +93876,7 @@
"category": "drunk-animals",
"dominant_hex": "#4e3f57",
"saturation": 0.16,
- "title": "Mauve Soirée No.4604",
+ "title": "Mauve Soir\u00e9e No.4604",
"handle": "wallco-4604",
"image_url": "/designs/img/var_4603_hue+60_1778717231617.png",
"filename": "var_4603_hue+60_1778717231617.png",
@@ -95157,5 +94089,1567 @@
"user_scale_good": null,
"user_stars": null,
"room_mockups": []
+ },
+ {
+ "id": 4614,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#35211e",
+ "saturation": 0.277,
+ "title": "Rose Soir\u00e9e No.4614",
+ "handle": "wallco-4614",
+ "image_url": "/designs/img/var_4610_hue+180_1778717416591.png",
+ "filename": "var_4610_hue+180_1778717416591.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:10:18.687233+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4615,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#35211e",
+ "saturation": 0.277,
+ "title": "Rose Vignette No.4615",
+ "handle": "wallco-4615",
+ "image_url": "/designs/img/var_4610_hue-60_1778717418694.png",
+ "filename": "var_4610_hue-60_1778717418694.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:10:20.888349+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4616,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#35211e",
+ "saturation": 0.277,
+ "title": "Rose Carouse No.4616",
+ "handle": "wallco-4616",
+ "image_url": "/designs/img/var_4610_mono_1778717420893.png",
+ "filename": "var_4610_mono_1778717420893.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:10:23.024836+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4617,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#45c153",
+ "saturation": 0.5,
+ "title": "Sage Caprice No.4617",
+ "handle": "wallco-4617",
+ "image_url": "/designs/img/1778717497615_1590448688.png",
+ "filename": "1778717497615_1590448688.png",
+ "generator": "wallco.ai",
+ "seed": 1590448688,
+ "is_published": false,
+ "created_at": "2026-05-14T00:11:46.11245+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4618,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Saunter No.4618",
+ "handle": "wallco-4618",
+ "image_url": "/designs/img/1778717561730_1834360213.png",
+ "filename": "1778717561730_1834360213.png",
+ "generator": "wallco.ai",
+ "seed": 1834360213,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:00.356754+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4619,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Folly No.4619",
+ "handle": "wallco-4619",
+ "image_url": "/designs/img/var_4618_hue+60_1778717592463.png",
+ "filename": "var_4618_hue+60_1778717592463.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:14.708667+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4620,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#8c5936",
+ "saturation": 0.443,
+ "title": "Amber Hiccup No.4620",
+ "handle": "wallco-4620",
+ "image_url": "/designs/img/1778717587605_1622316140.png",
+ "filename": "1778717587605_1622316140.png",
+ "generator": "wallco.ai",
+ "seed": 1622316140,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:16.13974+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4621,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Tipple No.4621",
+ "handle": "wallco-4621",
+ "image_url": "/designs/img/var_4618_hue+120_1778717594716.png",
+ "filename": "var_4618_hue+120_1778717594716.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:16.877033+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4622,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Tableau No.4622",
+ "handle": "wallco-4622",
+ "image_url": "/designs/img/var_4618_hue+180_1778717596883.png",
+ "filename": "var_4618_hue+180_1778717596883.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:19.028454+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4623,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Reverie No.4623",
+ "handle": "wallco-4623",
+ "image_url": "/designs/img/var_4618_hue-60_1778717599034.png",
+ "filename": "var_4618_hue-60_1778717599034.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:21.195008+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4624,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#ab4575",
+ "saturation": 0.425,
+ "title": "Rose Soir\u00e9e No.4624",
+ "handle": "wallco-4624",
+ "image_url": "/designs/img/var_4618_mono_1778717601202.png",
+ "filename": "var_4618_mono_1778717601202.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:13:23.38441+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4625,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Vignette No.4625",
+ "handle": "wallco-4625",
+ "image_url": "/designs/img/1778717677641_1035573904.png",
+ "filename": "1778717677641_1035573904.png",
+ "generator": "wallco.ai",
+ "seed": 1035573904,
+ "is_published": false,
+ "created_at": "2026-05-14T00:14:46.613617+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4626,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Carouse No.4626",
+ "handle": "wallco-4626",
+ "image_url": "/designs/img/var_4625_hue+60_1778717772879.png",
+ "filename": "var_4625_hue+60_1778717772879.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:15.361158+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4627,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#a73c4b",
+ "saturation": 0.471,
+ "title": "Rose Caprice No.4627",
+ "handle": "wallco-4627",
+ "image_url": "/designs/img/1778717767594_137184568.png",
+ "filename": "1778717767594_137184568.png",
+ "generator": "wallco.ai",
+ "seed": 137184568,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:16.019811+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4628,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Saunter No.4628",
+ "handle": "wallco-4628",
+ "image_url": "/designs/img/var_4625_hue+120_1778717775367.png",
+ "filename": "var_4625_hue+120_1778717775367.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:17.906813+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4629,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Folly No.4629",
+ "handle": "wallco-4629",
+ "image_url": "/designs/img/var_4625_hue+180_1778717777913.png",
+ "filename": "var_4625_hue+180_1778717777913.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:20.405221+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4630,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Hiccup No.4630",
+ "handle": "wallco-4630",
+ "image_url": "/designs/img/var_4625_hue-60_1778717780411.png",
+ "filename": "var_4625_hue-60_1778717780411.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:22.702365+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4631,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cf6c89",
+ "saturation": 0.508,
+ "title": "Rose Tipple No.4631",
+ "handle": "wallco-4631",
+ "image_url": "/designs/img/var_4625_mono_1778717782709.png",
+ "filename": "var_4625_mono_1778717782709.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:16:25.429722+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4632,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#8c6a40",
+ "saturation": 0.373,
+ "title": "Amber Tableau No.4632",
+ "handle": "wallco-4632",
+ "image_url": "/designs/img/1778717820656_758127793.png",
+ "filename": "1778717820656_758127793.png",
+ "generator": "wallco.ai",
+ "seed": 758127793,
+ "is_published": false,
+ "created_at": "2026-05-14T00:17:09.356238+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4633,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Reverie No.4633",
+ "handle": "wallco-4633",
+ "image_url": "/designs/img/1778717857669_1382737285.png",
+ "filename": "1778717857669_1382737285.png",
+ "generator": "wallco.ai",
+ "seed": 1382737285,
+ "is_published": false,
+ "created_at": "2026-05-14T00:17:52.903504+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4634,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Soir\u00e9e No.4634",
+ "handle": "wallco-4634",
+ "image_url": "/designs/img/var_4633_hue+60_1778717953402.png",
+ "filename": "var_4633_hue+60_1778717953402.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:15.758881+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4635,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Vignette No.4635",
+ "handle": "wallco-4635",
+ "image_url": "/designs/img/var_4633_hue+120_1778717955778.png",
+ "filename": "var_4633_hue+120_1778717955778.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:18.12879+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4636,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Carouse No.4636",
+ "handle": "wallco-4636",
+ "image_url": "/designs/img/var_4633_hue+180_1778717958136.png",
+ "filename": "var_4633_hue+180_1778717958136.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:20.58773+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4637,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Caprice No.4637",
+ "handle": "wallco-4637",
+ "image_url": "/designs/img/var_4633_hue-60_1778717960594.png",
+ "filename": "var_4633_hue-60_1778717960594.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:22.893696+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4638,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#9a5b7e",
+ "saturation": 0.257,
+ "title": "Plum Saunter No.4638",
+ "handle": "wallco-4638",
+ "image_url": "/designs/img/var_4633_mono_1778717962897.png",
+ "filename": "var_4633_mono_1778717962897.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:25.319189+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4639,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#6f5846",
+ "saturation": 0.227,
+ "title": "Amber Folly No.4639",
+ "handle": "wallco-4639",
+ "image_url": "/designs/img/1778717947670_1671123637.png",
+ "filename": "1778717947670_1671123637.png",
+ "generator": "wallco.ai",
+ "seed": 1671123637,
+ "is_published": false,
+ "created_at": "2026-05-14T00:19:30.013302+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4640,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#2b3447",
+ "saturation": 0.246,
+ "title": "Sapphire Atelier No.4640",
+ "handle": "wallco-4640",
+ "image_url": "/designs/img/1778718322622_1939963961.png",
+ "filename": "1778718322622_1939963961.png",
+ "generator": "wallco.ai",
+ "seed": 1939963961,
+ "is_published": true,
+ "created_at": "2026-05-14T00:26:01.901995+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4641,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#242e3d",
+ "saturation": 0.258,
+ "title": "Sapphire Studio No.4641",
+ "handle": "wallco-4641",
+ "image_url": "/designs/img/1778718364595_1361593666.png",
+ "filename": "1778718364595_1361593666.png",
+ "generator": "wallco.ai",
+ "seed": 1361593666,
+ "is_published": true,
+ "created_at": "2026-05-14T00:26:24.214717+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4642,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#d5c9b4",
+ "saturation": 0.282,
+ "title": "Honey Origin No.4642",
+ "handle": "wallco-4642",
+ "image_url": "/designs/img/1778718385389_1937641180.png",
+ "filename": "1778718385389_1937641180.png",
+ "generator": "wallco.ai",
+ "seed": 1937641180,
+ "is_published": true,
+ "created_at": "2026-05-14T00:26:42.850232+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4643,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#6f5846",
+ "saturation": 0.227,
+ "title": "Amber Reverie No.4643",
+ "handle": "wallco-4643",
+ "image_url": "/designs/img/var_4639_hue+120_1778718381015.png",
+ "filename": "var_4639_hue+120_1778718381015.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:26:55.845525+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4644,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#1d2640",
+ "saturation": 0.376,
+ "title": "Sapphire Reverie No.4644",
+ "handle": "wallco-4644",
+ "image_url": "/designs/img/1778718403659_1700720229.png",
+ "filename": "1778718403659_1700720229.png",
+ "generator": "wallco.ai",
+ "seed": 1700720229,
+ "is_published": true,
+ "created_at": "2026-05-14T00:26:59.266543+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4645,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#5b5e64",
+ "saturation": 0.047,
+ "title": "Slate Atelier No.4645",
+ "handle": "wallco-4645",
+ "image_url": "/designs/img/1778718419602_871704411.png",
+ "filename": "1778718419602_871704411.png",
+ "generator": "wallco.ai",
+ "seed": 871704411,
+ "is_published": true,
+ "created_at": "2026-05-14T00:28:10.366778+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4646,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#3d4251",
+ "saturation": 0.141,
+ "title": "Sapphire Studio No.4646",
+ "handle": "wallco-4646",
+ "image_url": "/designs/img/1778718567912_482542349.png",
+ "filename": "1778718567912_482542349.png",
+ "generator": "wallco.ai",
+ "seed": 482542349,
+ "is_published": true,
+ "created_at": "2026-05-14T00:29:52.956757+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4647,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#393f4c",
+ "saturation": 0.143,
+ "title": "Sapphire Origin No.4647",
+ "handle": "wallco-4647",
+ "image_url": "/designs/img/1778718596872_589915244.png",
+ "filename": "1778718596872_589915244.png",
+ "generator": "wallco.ai",
+ "seed": 589915244,
+ "is_published": true,
+ "created_at": "2026-05-14T00:30:12.690346+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4648,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#ece2ce",
+ "saturation": 0.441,
+ "title": "Honey Folio No.4648",
+ "handle": "wallco-4648",
+ "image_url": "/designs/img/1778718612858_90662573.png",
+ "filename": "1778718612858_90662573.png",
+ "generator": "wallco.ai",
+ "seed": 90662573,
+ "is_published": true,
+ "created_at": "2026-05-14T00:30:42.474419+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4649,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#6f5846",
+ "saturation": 0.227,
+ "title": "Amber Folly No.4649",
+ "handle": "wallco-4649",
+ "image_url": "/designs/img/var_4639_mono_1778718579901.png",
+ "filename": "var_4639_mono_1778718579901.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:31:08.633345+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4650,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#3d4251",
+ "saturation": 0.141,
+ "title": "Sapphire Atelier No.4650",
+ "handle": "wallco-4650",
+ "image_url": "/designs/img/var_4646_hue+60_1778718600334.png",
+ "filename": "var_4646_hue+60_1778718600334.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": true,
+ "created_at": "2026-05-14T00:31:46.585926+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4651,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#28364b",
+ "saturation": 0.304,
+ "title": "Sapphire Studio No.4651",
+ "handle": "wallco-4651",
+ "image_url": "/designs/img/1778718709397_1071384245.png",
+ "filename": "1778718709397_1071384245.png",
+ "generator": "wallco.ai",
+ "seed": 1071384245,
+ "is_published": true,
+ "created_at": "2026-05-14T00:32:28.927744+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4652,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#e0d2b6",
+ "saturation": 0.404,
+ "title": "Honey Origin No.4652",
+ "handle": "wallco-4652",
+ "image_url": "/designs/img/1778718776733_1636617667.png",
+ "filename": "1778718776733_1636617667.png",
+ "generator": "wallco.ai",
+ "seed": 1636617667,
+ "is_published": true,
+ "created_at": "2026-05-14T00:33:23.801153+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4653,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#67696e",
+ "saturation": 0.033,
+ "title": "Slate Folio No.4653",
+ "handle": "wallco-4653",
+ "image_url": "/designs/img/1778718805644_161773969.png",
+ "filename": "1778718805644_161773969.png",
+ "generator": "wallco.ai",
+ "seed": 161773969,
+ "is_published": true,
+ "created_at": "2026-05-14T00:33:41.982584+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4654,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#363f53",
+ "saturation": 0.212,
+ "title": "Sapphire Reverie No.4654",
+ "handle": "wallco-4654",
+ "image_url": "/designs/img/1778718822584_1287636987.png",
+ "filename": "1778718822584_1287636987.png",
+ "generator": "wallco.ai",
+ "seed": 1287636987,
+ "is_published": true,
+ "created_at": "2026-05-14T00:34:03.889457+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4655,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#3d4251",
+ "saturation": 0.141,
+ "title": "Sapphire Atelier No.4655",
+ "handle": "wallco-4655",
+ "image_url": "/designs/img/var_4646_hue-60_1778718799456.png",
+ "filename": "var_4646_hue-60_1778718799456.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": true,
+ "created_at": "2026-05-14T00:34:06.036538+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4656,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#3d4251",
+ "saturation": 0.141,
+ "title": "Sapphire Studio No.4656",
+ "handle": "wallco-4656",
+ "image_url": "/designs/img/var_4646_mono_1778718846476.png",
+ "filename": "var_4646_mono_1778718846476.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": true,
+ "created_at": "2026-05-14T00:34:42.458401+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4657,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Heirloom No.4657",
+ "handle": "wallco-4657",
+ "image_url": "/designs/img/1778718837676_1955400509.png",
+ "filename": "1778718837676_1955400509.png",
+ "generator": "wallco.ai",
+ "seed": 1955400509,
+ "is_published": false,
+ "created_at": "2026-05-14T00:34:55.669269+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4658,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Atelier No.4658",
+ "handle": "wallco-4658",
+ "image_url": "/designs/img/var_4657_hue+60_1778718913954.png",
+ "filename": "var_4657_hue+60_1778718913954.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:35:43.182607+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4659,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#a55b3e",
+ "saturation": 0.454,
+ "title": "Amber Folly No.4659",
+ "handle": "wallco-4659",
+ "image_url": "/designs/img/1778718895699_643181911.png",
+ "filename": "1778718895699_643181911.png",
+ "generator": "wallco.ai",
+ "seed": 643181911,
+ "is_published": false,
+ "created_at": "2026-05-14T00:35:46.22494+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4660,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Baroque No.4660",
+ "handle": "wallco-4660",
+ "image_url": "/designs/img/var_4657_hue+120_1778718945018.png",
+ "filename": "var_4657_hue+120_1778718945018.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:36:15.951651+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4661,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Damask No.4661",
+ "handle": "wallco-4661",
+ "image_url": "/designs/img/var_4657_hue+180_1778718976564.png",
+ "filename": "var_4657_hue+180_1778718976564.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:36:48.095658+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4662,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#c04c62",
+ "saturation": 0.479,
+ "title": "Rose Stardust No.4662",
+ "handle": "wallco-4662",
+ "image_url": "/designs/img/1778718979337_860337938.png",
+ "filename": "1778718979337_860337938.png",
+ "generator": "wallco.ai",
+ "seed": 860337938,
+ "is_published": false,
+ "created_at": "2026-05-14T00:37:12.783412+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4663,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Atelier No.4663",
+ "handle": "wallco-4663",
+ "image_url": "/designs/img/var_4657_hue-60_1778719008825.png",
+ "filename": "var_4657_hue-60_1778719008825.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:37:20.78976+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4664,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#191714",
+ "saturation": 0.111,
+ "title": "Honey Salon No.4664",
+ "handle": "wallco-4664",
+ "image_url": "/designs/img/var_4657_mono_1778719041433.png",
+ "filename": "var_4657_mono_1778719041433.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:37:50.959668+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4665,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#cb3e36",
+ "saturation": 0.589,
+ "title": "Rose Vignette No.4665",
+ "handle": "wallco-4665",
+ "image_url": "/designs/img/1778719044631_20401885.png",
+ "filename": "1778719044631_20401885.png",
+ "generator": "wallco.ai",
+ "seed": 20401885,
+ "is_published": false,
+ "created_at": "2026-05-14T00:37:52.745609+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4666,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#c9335b",
+ "saturation": 0.595,
+ "title": "Rose Sundrift No.4666",
+ "handle": "wallco-4666",
+ "image_url": "/designs/img/1778719067597_370384291.png",
+ "filename": "1778719067597_370384291.png",
+ "generator": "wallco.ai",
+ "seed": 370384291,
+ "is_published": false,
+ "created_at": "2026-05-14T00:37:59.003425+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4667,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Heirloom No.4667",
+ "handle": "wallco-4667",
+ "image_url": "/designs/img/1778719085335_1961723259.png",
+ "filename": "1778719085335_1961723259.png",
+ "generator": "wallco.ai",
+ "seed": 1961723259,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:15.0924+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4668,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Atelier No.4668",
+ "handle": "wallco-4668",
+ "image_url": "/designs/img/var_4667_hue+60_1778719095299.png",
+ "filename": "var_4667_hue+60_1778719095299.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:17.906024+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4669,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Salon No.4669",
+ "handle": "wallco-4669",
+ "image_url": "/designs/img/var_4667_hue+120_1778719097914.png",
+ "filename": "var_4667_hue+120_1778719097914.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:20.41949+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4670,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Baroque No.4670",
+ "handle": "wallco-4670",
+ "image_url": "/designs/img/var_4667_hue+180_1778719100428.png",
+ "filename": "var_4667_hue+180_1778719100428.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:23.387417+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4671,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Damask No.4671",
+ "handle": "wallco-4671",
+ "image_url": "/designs/img/var_4667_hue-60_1778719103394.png",
+ "filename": "var_4667_hue-60_1778719103394.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:27.47586+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4672,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#2c2723",
+ "saturation": 0.114,
+ "title": "Amber Heirloom No.4672",
+ "handle": "wallco-4672",
+ "image_url": "/designs/img/var_4667_mono_1778719107503.png",
+ "filename": "var_4667_mono_1778719107503.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:38:30.158846+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4674,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#28354b",
+ "saturation": 0.304,
+ "title": "Sapphire Reverie No.4674",
+ "handle": "wallco-4674",
+ "image_url": "/designs/img/1778719133707_1332263876.png",
+ "filename": "1778719133707_1332263876.png",
+ "generator": "wallco.ai",
+ "seed": 1332263876,
+ "is_published": true,
+ "created_at": "2026-05-14T00:39:12.751976+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4675,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#dad1be",
+ "saturation": 0.275,
+ "title": "Honey Atelier No.4675",
+ "handle": "wallco-4675",
+ "image_url": "/designs/img/1778719152790_65149494.png",
+ "filename": "1778719152790_65149494.png",
+ "generator": "wallco.ai",
+ "seed": 65149494,
+ "is_published": true,
+ "created_at": "2026-05-14T00:39:21.427608+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4676,
+ "kind": "seamless_tile",
+ "category": "geometric-block-leaves",
+ "dominant_hex": "#e1d7c0",
+ "saturation": 0.355,
+ "title": "Honey Studio No.4676",
+ "handle": "wallco-4676",
+ "image_url": "/designs/img/1778719240678_1233241987.png",
+ "filename": "1778719240678_1233241987.png",
+ "generator": "wallco.ai",
+ "seed": 1233241987,
+ "is_published": true,
+ "created_at": "2026-05-14T00:40:49.420481+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4677,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#a93c7e",
+ "saturation": 0.476,
+ "title": "Plum Caprice No.4677",
+ "handle": "wallco-4677",
+ "image_url": "/designs/img/1778719251494_1830600698.png",
+ "filename": "1778719251494_1830600698.png",
+ "generator": "wallco.ai",
+ "seed": 1830600698,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:00.488345+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4678,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Atelier No.4678",
+ "handle": "wallco-4678",
+ "image_url": "/designs/img/1778719275426_711130222.png",
+ "filename": "1778719275426_711130222.png",
+ "generator": "wallco.ai",
+ "seed": 711130222,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:23.888988+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4679,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Salon No.4679",
+ "handle": "wallco-4679",
+ "image_url": "/designs/img/var_4678_hue+60_1778719283999.png",
+ "filename": "var_4678_hue+60_1778719283999.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:26.254194+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4680,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Baroque No.4680",
+ "handle": "wallco-4680",
+ "image_url": "/designs/img/var_4678_hue+120_1778719286260.png",
+ "filename": "var_4678_hue+120_1778719286260.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:28.822434+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4681,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Damask No.4681",
+ "handle": "wallco-4681",
+ "image_url": "/designs/img/var_4678_hue+180_1778719288847.png",
+ "filename": "var_4678_hue+180_1778719288847.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:32.056471+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4682,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Heirloom No.4682",
+ "handle": "wallco-4682",
+ "image_url": "/designs/img/var_4678_hue-60_1778719292063.png",
+ "filename": "var_4678_hue-60_1778719292063.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:35.069196+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4683,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#151411",
+ "saturation": 0.105,
+ "title": "Honey Atelier No.4683",
+ "handle": "wallco-4683",
+ "image_url": "/designs/img/var_4678_mono_1778719295078.png",
+ "filename": "var_4678_mono_1778719295078.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-14T00:41:37.288055+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4684,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#97846d",
+ "saturation": 0.168,
+ "title": "Amber Soir\u00e9e No.4684",
+ "handle": "wallco-4684",
+ "image_url": "/designs/img/1778719313475_1130366219.png",
+ "filename": "1778719313475_1130366219.png",
+ "generator": "wallco.ai",
+ "seed": 1130366219,
+ "is_published": false,
+ "created_at": "2026-05-14T00:42:02.876528+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 4685,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#28253a",
+ "saturation": 0.221,
+ "title": "Sapphire Hazefield No.4685",
+ "handle": "wallco-4685",
+ "image_url": "/designs/img/1778719336222_878488737.png",
+ "filename": "1778719336222_878488737.png",
+ "generator": "wallco.ai",
+ "seed": 878488737,
+ "is_published": false,
+ "created_at": "2026-05-14T00:42:31.73762+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
}
]
\ No newline at end of file
diff --git a/data/marketplace/events.jsonl b/data/marketplace/events.jsonl
index 8fdbdef..5042326 100644
--- a/data/marketplace/events.jsonl
+++ b/data/marketplace/events.jsonl
@@ -42,3 +42,18 @@
{"type":"delta","key":"collections","label":"new collection","change":1,"total":9,"ts":"2026-05-13T23:51:13.049Z"}
{"type":"delta","key":"designers","label":"new designer","change":1,"total":7,"ts":"2026-05-13T23:52:13.064Z"}
{"type":"delta","key":"collections","label":"new collection","change":1,"total":9,"ts":"2026-05-13T23:52:13.065Z"}
+{"type":"poll_fail","error":"write EPIPE","ts":"2026-05-14T00:21:25.134Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:22:07.444Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:24:26.848Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:25:28.090Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:26:22.788Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:29:38.987Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:29:39.467Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:33:20.230Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:33:41.110Z"}
+{"type":"poll_fail","error":"timeout","ts":"2026-05-14T00:34:33.974Z"}
+{"type":"poll_fail","error":"connect ECONNREFUSED 127.0.0.1:9792","ts":"2026-05-14T00:37:26.688Z"}
+{"type":"delta","key":"open_inquiries","label":"new licensing inquiry","change":1,"total":15,"ts":"2026-05-14T00:39:24.346Z"}
+{"type":"delta","key":"open_inquiries","label":"new licensing inquiry","change":1,"total":15,"ts":"2026-05-14T00:40:24.151Z"}
+{"type":"delta","key":"open_inquiries","label":"new licensing inquiry","change":1,"total":15,"ts":"2026-05-14T00:41:24.142Z"}
+{"type":"delta","key":"open_inquiries","label":"new licensing inquiry","change":1,"total":15,"ts":"2026-05-14T00:42:24.157Z"}
diff --git a/data/marketplace/status-watch.json b/data/marketplace/status-watch.json
index b6abc95..889326c 100644
--- a/data/marketplace/status-watch.json
+++ b/data/marketplace/status-watch.json
@@ -1,5 +1,5 @@
{
- "ts": "2026-05-14T00:10:13.039Z",
+ "ts": "2026-05-14T00:42:24.154Z",
"db": true,
"counts": {
"designers": "7",
@@ -11,9 +11,9 @@
"patterns_pending": "0",
"collections": "9",
"commission_entries": "6",
- "pending_commission": "545.60",
- "paid_commission": "0",
- "open_inquiries": "14",
+ "pending_commission": "0",
+ "paid_commission": "545.60",
+ "open_inquiries": "15",
"open_takedowns": "0"
},
"deltas": {
@@ -29,22 +29,22 @@
"commission_entries": 0,
"pending_commission": 0,
"paid_commission": 0,
- "open_inquiries": 0,
+ "open_inquiries": 1,
"open_takedowns": 0
},
"30m": {
- "designers": 1,
- "designers_approved": 1,
- "founding": 1,
+ "designers": 0,
+ "designers_approved": 0,
+ "founding": 0,
"unclaimed": 0,
"patterns": 0,
"patterns_approved": 0,
"patterns_pending": 0,
- "collections": 1,
+ "collections": 0,
"commission_entries": 0,
- "pending_commission": 0,
- "paid_commission": 0,
- "open_inquiries": 0,
+ "pending_commission": -545.6,
+ "paid_commission": 545.6,
+ "open_inquiries": 1,
"open_takedowns": 0
},
"60m": {
@@ -57,9 +57,9 @@
"patterns_pending": 0,
"collections": 1,
"commission_entries": 0,
- "pending_commission": 0,
- "paid_commission": 0,
- "open_inquiries": 0,
+ "pending_commission": -545.6,
+ "paid_commission": 545.6,
+ "open_inquiries": 1,
"open_takedowns": 0
},
"24h": {
@@ -72,11 +72,11 @@
"patterns_pending": 0,
"collections": 1,
"commission_entries": 0,
- "pending_commission": 0,
- "paid_commission": 0,
- "open_inquiries": 12,
+ "pending_commission": -545.6,
+ "paid_commission": 545.6,
+ "open_inquiries": 13,
"open_takedowns": 0
}
},
- "history_size": 136
+ "history_size": 153
}
\ No newline at end of file
diff --git a/data/marketplace/status-watch.jsonl b/data/marketplace/status-watch.jsonl
index d3c7cd4..b0dffe1 100644
--- a/data/marketplace/status-watch.jsonl
+++ b/data/marketplace/status-watch.jsonl
@@ -134,3 +134,20 @@
{"ts":1778717293049,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
{"ts":1778717353049,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
{"ts":1778717413039,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717473042,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717533056,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717593047,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717653047,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717713053,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717773052,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717833058,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717893063,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778717953062,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"545.60","paid_commission":"0","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778718710921,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778718928879,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778718987816,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778719105064,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"14","open_takedowns":"0"},"db":true}
+{"ts":1778719164324,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"15","open_takedowns":"0"},"db":true}
+{"ts":1778719224149,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"15","open_takedowns":"0"},"db":true}
+{"ts":1778719284140,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"15","open_takedowns":"0"},"db":true}
+{"ts":1778719344154,"counts":{"designers":"7","designers_approved":"6","founding":"4","unclaimed":"4","patterns":"24","patterns_approved":"24","patterns_pending":"0","collections":"9","commission_entries":"6","pending_commission":"0","paid_commission":"545.60","open_inquiries":"15","open_takedowns":"0"},"db":true}
diff --git a/scripts/generate-geometric-block-leaves-fillin.js b/scripts/generate-geometric-block-leaves-fillin.js
new file mode 100755
index 0000000..dba306e
--- /dev/null
+++ b/scripts/generate-geometric-block-leaves-fillin.js
@@ -0,0 +1,44 @@
+#!/usr/bin/env node
+// Fill-in batch for the 8 prompts that silently failed in the first run.
+const { spawnSync } = require('child_process');
+const path = require('path');
+const ROOT = path.join(__dirname, '..');
+
+const SHAPES = [
+ 'uniform hexagonal honeycomb tiles, edge-to-edge tessellation',
+ 'vertical diamond rhombi stacked in identical orientation, tightly grid-locked',
+ 'vertical vesica piscis lens shapes, mirrored columns, single orientation',
+ 'equilateral triangle field, every triangle pointing upward, no rotation variation',
+ 'crescents all pointing left, repeated as a wallpaper tessellation',
+ 'squares with one corner cut into a triangular notch, identical orientation',
+ 'plus and cross shapes in a uniform grid, all crosses aligned to vertical axis',
+ 'vertical sheaf bundles of three parallel hairlines, regular column spacing',
+];
+
+const NEGATIVE_SUFFIX =
+ 'Seamless tile wallpaper repeat. SINGLE INK COLOR only (deep midnight navy ink on warm cream paper). ' +
+ 'STRICT geometric abstraction - pure mathematical primitives. ' +
+ 'NO foliage, NO leaves, NO leaf shapes, NO plants, NO botanical motifs, NO ferns, NO palm, NO palm fronds, NO palm leaves, NO banana, NO monstera, NO tropical, NO jungle, NO fruit, NO grapes, NO birds, NO butterflies. ' +
+ 'ALL shapes in identical orientation - NO directional variation, NO tossed layout, NO multi-orientation rotation. ' +
+ 'Edge-to-edge tessellation - minimal negative space between primitives. ' +
+ 'Architectural, minimalist, brutalist-modern, screen-print aesthetic, single-ink woodblock print feeling. ' +
+ 'Archival paper texture. No text, no watermark, no signature.';
+
+console.log('Fill-in batch: ' + SHAPES.length + ' missing geometric-block-leaves designs');
+
+for (let i = 0; i < SHAPES.length; i++) {
+ const shape = SHAPES[i];
+ const prompt = 'Geometric block leaf pattern - ' + shape + '. ' + NEGATIVE_SUFFIX;
+ console.log('[' + (i+1) + '/' + SHAPES.length + '] ' + shape.slice(0, 60));
+ const r = spawnSync('node', [
+ path.join(__dirname, 'generate_designs.js'),
+ '--n', '1', '--kind', 'seamless_tile',
+ '--category', 'geometric-block-leaves',
+ '--prompts', prompt,
+ ], { cwd: ROOT, encoding: 'utf8', env: process.env, stdio: ['inherit', 'pipe', 'pipe'] });
+ if (r.status === 0) {
+ process.stdout.write(' OK ' + (r.stdout || '').match(/id=\d+|inserted=\d+|saved/i)?.[0] + '\n');
+ } else {
+ process.stdout.write(' FAIL exit=' + r.status + ' ' + (r.stderr || r.stdout || '').slice(0, 300) + '\n');
+ }
+}
diff --git a/scripts/generate-geometric-block-leaves-fillin2.js b/scripts/generate-geometric-block-leaves-fillin2.js
new file mode 100644
index 0000000..a403667
--- /dev/null
+++ b/scripts/generate-geometric-block-leaves-fillin2.js
@@ -0,0 +1,33 @@
+#!/usr/bin/env node
+const { spawnSync } = require('child_process');
+const path = require('path');
+const ROOT = path.join(__dirname, '..');
+const SHAPES = [
+ 'vertical vesica piscis lens shapes, mirrored columns, single orientation',
+ 'equilateral triangle field, every triangle pointing upward, no rotation variation',
+ 'crescents all pointing left, repeated as a wallpaper tessellation',
+ 'squares with one corner cut into a triangular notch, identical orientation',
+ 'plus and cross shapes in a uniform grid, all crosses aligned to vertical axis',
+ 'vertical sheaf bundles of three parallel hairlines, regular column spacing',
+];
+const NEG = 'Seamless tile wallpaper repeat. SINGLE INK COLOR only (deep midnight navy ink on warm cream paper). ' +
+ 'STRICT geometric abstraction - pure mathematical primitives. ' +
+ 'NO foliage, NO leaves, NO leaf shapes, NO plants, NO botanical motifs, NO ferns, NO palm, NO palm fronds, NO palm leaves, NO banana, NO monstera, NO tropical, NO jungle, NO fruit, NO grapes, NO birds, NO butterflies. ' +
+ 'ALL shapes in identical orientation - NO directional variation. ' +
+ 'Edge-to-edge tessellation - minimal negative space. ' +
+ 'Architectural, minimalist, brutalist-modern, screen-print aesthetic, single-ink woodblock print feeling. No text, no watermark.';
+
+for (let i = 0; i < SHAPES.length; i++) {
+ const shape = SHAPES[i];
+ const prompt = 'Geometric block leaf pattern - ' + shape + '. ' + NEG;
+ console.log('[' + (i+1) + '/' + SHAPES.length + '] ' + shape.slice(0, 55));
+ const r = spawnSync('node', [
+ path.join(__dirname, 'generate_designs.js'),
+ '--n', '1', '--kind', 'seamless_tile',
+ '--category', 'geometric-block-leaves',
+ '--prompts', prompt,
+ ], { cwd: ROOT, encoding: 'utf8', env: process.env });
+ // Print full stdout so we see ✓ vs ✗
+ console.log((r.stdout || '').split('\n').slice(-4).join('\n'));
+ if (r.stderr) console.log('STDERR: ' + r.stderr.slice(0,200));
+}
diff --git a/scripts/generate-geometric-block-leaves.js b/scripts/generate-geometric-block-leaves.js
new file mode 100755
index 0000000..cd325fe
--- /dev/null
+++ b/scripts/generate-geometric-block-leaves.js
@@ -0,0 +1,77 @@
+#!/usr/bin/env node
+// Generate 20 "geometric-block leaf" wallpaper designs.
+// Settlement-safe by construction:
+// - No foliage, no botanical motifs (Part A1 fails)
+// - Edge-to-edge tessellation, not open-space scatter (A2 fails)
+// - SINGLE INK COLOR (A3 fails)
+// - No bananas, grapes, birds, butterflies (B fails)
+
+const { spawnSync } = require('child_process');
+const path = require('path');
+
+const ROOT = path.join(__dirname, '..');
+
+const SHAPES = [
+ 'uniform hexagonal honeycomb tiles, edge-to-edge tessellation',
+ 'vertical diamond rhombi stacked in identical orientation, tightly grid-locked',
+ 'vertical vesica piscis lens shapes, mirrored columns, single orientation',
+ 'equilateral triangle field, every triangle pointing upward, no rotation variation',
+ 'narrow vertical rectangle columns, identical width, full-height stripes',
+ 'regular octagons in a tessellated grid with small square interstices',
+ 'quarter-circle fan tiles, all curves opening upward, perfect grid alignment',
+ 'stacked stepped-pyramid blocks (ziggurat profile), all upright',
+ 'half-moon crescent scales, every crescent oriented horns-up, tight grid',
+ 'perfect circles in a uniform dot-grid, equal spacing horizontal and vertical',
+ 'concentric square frames nested four-deep, repeating on a flat grid',
+ 'cluster of three vertical bars, repeated as a tessellated motif',
+ 'isoceles triangle wedges arranged in vertical fan columns, single orientation',
+ 'regular pentagons in cairo-style tessellation, single orientation',
+ 'vertical lozenge shapes stacked, identical orientation, edge-to-edge',
+ 'alternating trapezoid blocks (wide-base and narrow-base alternation), grid-locked',
+ 'crescents all pointing left, repeated as a wallpaper tessellation',
+ 'squares with one corner cut into a triangular notch, identical orientation',
+ 'plus and cross shapes in a uniform grid, all crosses aligned to vertical axis',
+ 'vertical sheaf bundles of three parallel hairlines, regular column spacing',
+];
+
+const NEGATIVE_SUFFIX =
+ 'Seamless tile wallpaper repeat. SINGLE INK COLOR only (deep midnight navy ink on warm cream paper). ' +
+ 'STRICT geometric abstraction - pure mathematical primitives. ' +
+ 'NO foliage, NO leaves, NO leaf shapes, NO plants, NO botanical motifs, NO ferns, NO palm, NO palm fronds, NO palm leaves, NO banana, NO monstera, NO tropical, NO jungle, NO fruit, NO grapes, NO birds, NO butterflies. ' +
+ 'ALL shapes in identical orientation - NO directional variation, NO tossed layout, NO multi-orientation rotation. ' +
+ 'Edge-to-edge tessellation - minimal negative space between primitives. ' +
+ 'Architectural, minimalist, brutalist-modern, screen-print aesthetic, single-ink woodblock print feeling. ' +
+ 'Archival paper texture. No text, no watermark, no signature.';
+
+console.log('Generating ' + SHAPES.length + ' geometric-block leaf designs');
+console.log('Backend: ' + (process.env.GEN_BACKEND || 'replicate') + ' | Category: geometric-block-leaves\n');
+
+let success = 0, fail = 0;
+const ids = [];
+
+for (let i = 0; i < SHAPES.length; i++) {
+ const shape = SHAPES[i];
+ const prompt = 'Geometric block leaf pattern - ' + shape + '. ' + NEGATIVE_SUFFIX;
+
+ console.log('[' + (i+1) + '/' + SHAPES.length + '] ' + shape.slice(0, 60));
+ const r = spawnSync('node', [
+ path.join(__dirname, 'generate_designs.js'),
+ '--n', '1',
+ '--kind', 'seamless_tile',
+ '--category', 'geometric-block-leaves',
+ '--prompts', prompt,
+ ], { cwd: ROOT, encoding: 'utf8', env: process.env });
+
+ if (r.status === 0) {
+ success++;
+ const m = (r.stdout || '').match(/id=(\d+)/);
+ if (m) ids.push(parseInt(m[1], 10));
+ process.stdout.write(' OK\n');
+ } else {
+ fail++;
+ process.stdout.write(' FAIL ' + (r.stderr || r.stdout || '').slice(0, 200) + '\n');
+ }
+}
+
+console.log('\nDone - ' + success + ' ok, ' + fail + ' fail');
+console.log('Inserted ids: ' + JSON.stringify(ids));
diff --git a/scripts/publish-geometric-block-leaves.js b/scripts/publish-geometric-block-leaves.js
new file mode 100755
index 0000000..4a24245
--- /dev/null
+++ b/scripts/publish-geometric-block-leaves.js
@@ -0,0 +1,38 @@
+#!/usr/bin/env node
+// After generate-geometric-block-leaves.js completes, flip the 20 rows
+// to is_published=TRUE, sync designs.json, hot-reload wallco.
+
+const fs = require('fs');
+const path = require('path');
+const { execSync } = require('child_process');
+
+const DB_NAME = 'dw_unified';
+const PSQL_CMD = (process.platform === 'linux')
+ ? `sudo -n -u postgres psql ${DB_NAME} -At -q`
+ : `psql ${DB_NAME} -At -q`;
+const q = (sql) => execSync(PSQL_CMD, { input: sql, encoding: 'utf8' }).trim();
+
+console.log('Flipping is_published=TRUE for category=geometric-block-leaves');
+const result = q(`UPDATE spoon_all_designs SET is_published=TRUE WHERE category='geometric-block-leaves' AND is_published=FALSE RETURNING id;`);
+const ids = result.split('\n').filter(Boolean);
+console.log('Published ' + ids.length + ' rows: ' + JSON.stringify(ids));
+
+// Sync data/designs.json to reflect new rows
+console.log('Syncing data/designs.json…');
+const DATA_FILE = path.join(__dirname, '..', 'data', 'designs.json');
+const cols = 'id, brand, kind, width_in, height_in, panels, generator, prompt, negative_prompt, seed, steps, cfg_scale, pd_source_ids, image_url, local_path, dominant_hex, palette, motifs, tags, category, is_published, notes, created_at, parent_design_id, chat_session_id, request_text, verticals, source_shopify_id, source_dw_sku, source_url, gd_score, gd_critique, id_score, id_critique, combined_score, rating_summary, rated_at, user_score_avg, user_vote_count, poll_wins';
+const allRowsJson = q(`SELECT json_agg(t ORDER BY id) FROM (SELECT ${cols} FROM spoon_all_designs) t;`);
+const allRows = JSON.parse(allRowsJson);
+fs.writeFileSync(DATA_FILE + '.tmp', JSON.stringify(allRows, null, 2), 'utf8');
+fs.renameSync(DATA_FILE + '.tmp', DATA_FILE);
+console.log('designs.json now has ' + allRows.length + ' rows');
+
+// Hot reload
+console.log('Hot-reloading wallco-ai DESIGNS cache…');
+try {
+ execSync('curl -s -X POST http://localhost:9792/admin/reload-designs', { encoding: 'utf8', stdio: 'inherit' });
+} catch (e) {
+ console.error('reload failed: ' + e.message);
+}
+
+console.log('\nDone. Verify at http://localhost:9792/designs?cat=geometric-block-leaves');
diff --git a/scripts/settlement_postgen_vision_check.js b/scripts/settlement_postgen_vision_check.js
new file mode 100644
index 0000000..47004b2
--- /dev/null
+++ b/scripts/settlement_postgen_vision_check.js
@@ -0,0 +1,125 @@
+#!/usr/bin/env node
+/**
+ * Post-generation vision check — runs the canonical settlement-checker prompt
+ * against a local PNG/JPG via Gemini-2.0-flash and returns the verdict JSON.
+ *
+ * Mirrors:
+ * ~/Projects/Designer-Wallcoverings/DW-Programming/ImportNewSkufromURL/lib/settlement-checker.ts
+ * ~/.claude/skills/settlement-post-gen-vision/SKILL.md
+ *
+ * Per DW-Programming CLAUDE.md: ALL vision tasks must use Gemini, NOT Claude.
+ *
+ * Usage: node scripts/settlement_postgen_vision_check.js <image_path> [title]
+ */
+'use strict';
+require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') });
+const fs = require('fs');
+
+const KEY = process.env.GEMINI_API_KEY;
+if (!KEY) { console.error('GEMINI_API_KEY missing'); process.exit(1); }
+
+const IMAGE_PATH = process.argv[2];
+const TITLE = process.argv[3] || 'Imperial Garden Barone — FacesUp recompose master';
+if (!IMAGE_PATH || !fs.existsSync(IMAGE_PATH)) {
+ console.error(`usage: node settlement_postgen_vision_check.js <image_path> [title]`);
+ process.exit(1);
+}
+
+const ext = IMAGE_PATH.toLowerCase().split('.').pop();
+const mime = ext === 'png' ? 'image/png' : (ext === 'webp' ? 'image/webp' : 'image/jpeg');
+const B64 = fs.readFileSync(IMAGE_PATH).toString('base64');
+
+const PROMPT = `Analyze this wallpaper pattern image against specific settlement terms.
+
+PRODUCT INFORMATION:
+Title: ${TITLE}
+
+SETTLEMENT CRITERIA:
+
+A product is PROHIBITED if it contains BOTH Part A AND Part B:
+
+**Part A - Prohibited Design** (ALL three must be present):
+1. Repeating patterns with directional variation amongst leaves, palm fronds, or similar foliage
+2. Open space between leaves
+3. More than one ink color in the leaf/foliage layer
+
+**Part B - Prohibited Specific Elements** (ANY of these):
+- Bananas or banana pods
+- Grapes
+- Birds
+- Butterflies
+
+**DW's Acceptable Tropical Design** (at least ONE must be present if tropical):
+1. Tree trunks
+2. Clearly represented branches
+3. Fruit or animal elements (EXCEPT bananas, banana pods, grapes, birds, or butterflies)
+
+IMPORTANT: Both Part A (all 3 conditions) AND Part B (at least 1 element) must be present for prohibition.
+
+For Part A condition #1 (directional variation): look carefully at the leaves across the tile. If individual leaves are rotated to face many different directions (some up, some sideways, some down) that satisfies the condition. If ALL leaves face the same single direction (e.g., all upward), that condition is NOT satisfied.
+
+Respond in this EXACT JSON format (no preamble, no markdown):
+{
+ "a1_directional_leaves": true|false,
+ "a2_open_space": true|false,
+ "a3_multiple_colors": true|false,
+ "partA_satisfied": true|false,
+ "partB_elements_found": ["banana"|"grapes"|"birds"|"butterflies"|...],
+ "partB_satisfied": true|false,
+ "acceptable_elements_found": ["tree trunk"|"branches"|"non-prohibited fruit"|"non-prohibited animal"|...],
+ "hasAcceptableElements": true|false,
+ "violates": true|false,
+ "reasoning": "Detailed per-test explanation in 2-4 sentences",
+ "needsReview": true|false
+}`;
+
+(async () => {
+ const body = {
+ contents: [{
+ parts: [
+ { inline_data: { mime_type: mime, data: B64 } },
+ { text: PROMPT }
+ ]
+ }],
+ generationConfig: { temperature: 0, responseMimeType: 'application/json' }
+ };
+ const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${KEY}`;
+ const t0 = Date.now();
+ const r = await fetch(url, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ if (!r.ok) { console.error(`HTTP ${r.status}: ${(await r.text()).slice(0, 500)}`); process.exit(1); }
+ const j = await r.json();
+ try {
+ const { logGemini } = require(require('os').homedir() + '/.claude/skills/cost-tracker/scripts/log-gemini.js');
+ logGemini(j, { app: 'wallco-ai', note: 'settlement-postgen-vision', model: 'gemini-2.0-flash' });
+ } catch {}
+ const text = j.candidates?.[0]?.content?.parts?.find(p => p.text)?.text;
+ const elapsed = ((Date.now() - t0) / 1000).toFixed(1);
+ if (!text) { console.error('no text in response:', JSON.stringify(j).slice(0, 400)); process.exit(1); }
+
+ let result;
+ try { result = JSON.parse(text); }
+ catch (e) {
+ const m = text.match(/\{[\s\S]*\}/);
+ if (!m) { console.error('no JSON in response:', text.slice(0, 400)); process.exit(1); }
+ result = JSON.parse(m[0]);
+ }
+
+ console.log('\n=== SETTLEMENT POST-GEN VISION CHECK ===');
+ console.log(`Image: ${IMAGE_PATH}`);
+ console.log(`Title: ${TITLE}`);
+ console.log(`Elapsed: ${elapsed}s\n`);
+ console.log(`A1 (directional leaves): ${result.a1_directional_leaves}`);
+ console.log(`A2 (open space): ${result.a2_open_space}`);
+ console.log(`A3 (multi-color): ${result.a3_multiple_colors}`);
+ console.log(`Part A satisfied? ${result.partA_satisfied}`);
+ console.log(`Part B elements: ${(result.partB_elements_found || []).join(', ') || '—'}`);
+ console.log(`Part B satisfied? ${result.partB_satisfied}`);
+ console.log(`Acceptable elements: ${(result.acceptable_elements_found || []).join(', ') || '—'}`);
+ console.log(`\nVERDICT: ${result.violates ? 'BLOCK' : (result.needsReview ? 'NEEDS REVIEW' : 'OK')}`);
+ console.log(`Reasoning: ${result.reasoning}`);
+ process.exit(result.violates ? 2 : 0);
+})();
diff --git a/server.js b/server.js
index fde3773..198c3cb 100644
--- a/server.js
+++ b/server.js
@@ -150,7 +150,7 @@ app.get('/robots.txt', (req, res) => {
res.setHeader('Cache-Control', 'public, max-age=86400, must-revalidate');
if (maybe304(req, res, ROBOTS_LAST_MODIFIED)) return;
res.type('text/plain').send(
- `User-agent: *\nAllow: /\nDisallow: /admin/\nDisallow: /api/\nDisallow: /_devlogin\n\nSitemap: https://${SITE}/sitemap.xml\nSitemap: https://${SITE}/sitemap-marketplace.xml\n`
+ `User-agent: *\nAllow: /\nDisallow: /admin/\nDisallow: /api/\nDisallow: /_devlogin\n\nSitemap: https://${SITE}/sitemap-index.xml\nSitemap: https://${SITE}/sitemap.xml\nSitemap: https://${SITE}/sitemap-marketplace.xml\n`
);
});
@@ -3163,12 +3163,31 @@ app.get('/designs', (req, res) => {
if (motifQ) filtered = filtered.filter(d => (d.motifs || []).includes(motifQ));
if (hueQ) filtered = filtered.filter(d => hueBucketOf(d.dominant_hex) === hueQ);
if (roomQ) filtered = filtered.filter(d => (d.room_mockups || []).length > 0);
- if (q) filtered = filtered.filter(d =>
- d.title.toLowerCase().includes(q) ||
- d.category.toLowerCase().includes(q) ||
- d.handle.toLowerCase().includes(q) ||
- (d.motifs || []).some(m => m.includes(q))
- );
+ // Search-alias expansion — typing "bh" / "beverly hills" / "bh90210"
+ // still resolves the LA collection (and vice-versa). Group-of-synonyms:
+ // any token in the same row matches any other token in that row.
+ // Steve directive 2026-05-13: rename to LA, keep BH searchable via meta.
+ const SEARCH_ALIASES = [
+ ['bh', 'bh90210', 'beverly hills', 'beverlyhills', 'beverly-hills',
+ 'la', 'la90210', 'los angeles', 'los-angeles', 'la collection', 'la-collection'],
+ ];
+ function expandQ(qstr) {
+ const lowered = String(qstr).toLowerCase();
+ for (const group of SEARCH_ALIASES) {
+ if (group.some(token => lowered.includes(token))) return group;
+ }
+ return [lowered];
+ }
+ if (q) {
+ const queries = expandQ(q);
+ filtered = filtered.filter(d => queries.some(qq =>
+ d.title.toLowerCase().includes(qq) ||
+ d.category.toLowerCase().includes(qq) ||
+ d.handle.toLowerCase().includes(qq) ||
+ (d.motifs || []).some(m => m.toLowerCase().includes(qq)) ||
+ (d.tags || []).some(t => t.toLowerCase().includes(qq))
+ ));
+ }
filtered = sortDesigns(filtered, sort);
const total = filtered.length;
diff --git a/src/marketplace/index.js b/src/marketplace/index.js
index 69e2d8e..01b558d 100644
--- a/src/marketplace/index.js
+++ b/src/marketplace/index.js
@@ -1015,7 +1015,21 @@ function mount(app) {
}
});
- console.log(' Marketplace layer mounted (/api/marketplace, /designers, /store, /patterns, /marketplace, /sitemap-marketplace.xml)');
+ // ── /sitemap-index.xml — sitemap-of-sitemaps. Single discovery URL that
+ // crawlers can fetch once to learn about every other sitemap on the site.
+ // The catalog sitemap (/sitemap.xml) is owned by server.js; this index just
+ // points at both. Static body, no DB hits.
+ app.get('/sitemap-index.xml', (_req, res) => {
+ const today = new Date().toISOString().slice(0, 10);
+ const xml = seo.buildSitemapIndexXml([
+ { loc: `${seo.SITE}/sitemap.xml`, lastmod: today },
+ { loc: `${seo.SITE}/sitemap-marketplace.xml`, lastmod: today },
+ ]);
+ res.setHeader('Cache-Control', 'public, max-age=3600, must-revalidate');
+ res.type('application/xml').send(xml);
+ });
+
+ console.log(' Marketplace layer mounted (/api/marketplace, /designers, /store, /patterns, /marketplace, /sitemap-marketplace.xml, /sitemap-index.xml)');
}
// Mounts that must run BEFORE the global express.json() middleware in server.js.
← 3b4a284 marketplace SEO: sitemap-index + BreadcrumbList JSON-LD + og
·
back to Wallco Ai
·
security: remove public /spoonflower nav tab + admin-gate th 26dbc62 →