← back to Dw Marketing Reels
Majilite flip book: real walls+furniture room renders in verso (24x nano-banana)
105bde394226c4837d5ac1c208b2681bfe23bd83 · 2026-08-10 11:53:30 -0700 · Steve Abrams
Files touched
M data/majilite-metallics.jsonA flipbooks/majilite-metallics/assets/roomgen/r0.jpgA flipbooks/majilite-metallics/assets/roomgen/r1.jpgA flipbooks/majilite-metallics/assets/roomgen/r10.jpgA flipbooks/majilite-metallics/assets/roomgen/r11.jpgA flipbooks/majilite-metallics/assets/roomgen/r12.jpgA flipbooks/majilite-metallics/assets/roomgen/r13.jpgA flipbooks/majilite-metallics/assets/roomgen/r14.jpgA flipbooks/majilite-metallics/assets/roomgen/r15.jpgA flipbooks/majilite-metallics/assets/roomgen/r16.jpgA flipbooks/majilite-metallics/assets/roomgen/r17.jpgA flipbooks/majilite-metallics/assets/roomgen/r18.jpgA flipbooks/majilite-metallics/assets/roomgen/r19.jpgA flipbooks/majilite-metallics/assets/roomgen/r2.jpgA flipbooks/majilite-metallics/assets/roomgen/r20.jpgA flipbooks/majilite-metallics/assets/roomgen/r21.jpgA flipbooks/majilite-metallics/assets/roomgen/r22.jpgA flipbooks/majilite-metallics/assets/roomgen/r23.jpgA flipbooks/majilite-metallics/assets/roomgen/r3.jpgA flipbooks/majilite-metallics/assets/roomgen/r4.jpgA flipbooks/majilite-metallics/assets/roomgen/r5.jpgA flipbooks/majilite-metallics/assets/roomgen/r6.jpgA flipbooks/majilite-metallics/assets/roomgen/r7.jpgA flipbooks/majilite-metallics/assets/roomgen/r8.jpgA flipbooks/majilite-metallics/assets/roomgen/r9.jpgA flipbooks/majilite-metallics/gen-rooms.pyM flipbooks/majilite-metallics/index.htmlA flipbooks/majilite-metallics/roomsrc/r1.jpgA flipbooks/majilite-metallics/roomsrc/r2.jpgA flipbooks/majilite-metallics/roomsrc/r3.jpgA flipbooks/majilite-metallics/roomsrc/r4.jpgA flipbooks/majilite-metallics/roomsrc/r5.jpgM public/collections/majilite-metallics-banner.jpgM public/collections/majilite-metallics-poster.jpgM public/collections/majilite-metallics.html
Diff
commit 105bde394226c4837d5ac1c208b2681bfe23bd83
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 10 11:53:30 2026 -0700
Majilite flip book: real walls+furniture room renders in verso (24x nano-banana)
---
data/majilite-metallics.json | 96 ++++++++++-----------
flipbooks/majilite-metallics/assets/roomgen/r0.jpg | Bin 0 -> 188958 bytes
flipbooks/majilite-metallics/assets/roomgen/r1.jpg | Bin 0 -> 109807 bytes
.../majilite-metallics/assets/roomgen/r10.jpg | Bin 0 -> 107231 bytes
.../majilite-metallics/assets/roomgen/r11.jpg | Bin 0 -> 88359 bytes
.../majilite-metallics/assets/roomgen/r12.jpg | Bin 0 -> 82878 bytes
.../majilite-metallics/assets/roomgen/r13.jpg | Bin 0 -> 93224 bytes
.../majilite-metallics/assets/roomgen/r14.jpg | Bin 0 -> 82233 bytes
.../majilite-metallics/assets/roomgen/r15.jpg | Bin 0 -> 78922 bytes
.../majilite-metallics/assets/roomgen/r16.jpg | Bin 0 -> 97448 bytes
.../majilite-metallics/assets/roomgen/r17.jpg | Bin 0 -> 100962 bytes
.../majilite-metallics/assets/roomgen/r18.jpg | Bin 0 -> 104802 bytes
.../majilite-metallics/assets/roomgen/r19.jpg | Bin 0 -> 101233 bytes
flipbooks/majilite-metallics/assets/roomgen/r2.jpg | Bin 0 -> 96016 bytes
.../majilite-metallics/assets/roomgen/r20.jpg | Bin 0 -> 86829 bytes
.../majilite-metallics/assets/roomgen/r21.jpg | Bin 0 -> 150644 bytes
.../majilite-metallics/assets/roomgen/r22.jpg | Bin 0 -> 101642 bytes
.../majilite-metallics/assets/roomgen/r23.jpg | Bin 0 -> 121500 bytes
flipbooks/majilite-metallics/assets/roomgen/r3.jpg | Bin 0 -> 150910 bytes
flipbooks/majilite-metallics/assets/roomgen/r4.jpg | Bin 0 -> 121699 bytes
flipbooks/majilite-metallics/assets/roomgen/r5.jpg | Bin 0 -> 104005 bytes
flipbooks/majilite-metallics/assets/roomgen/r6.jpg | Bin 0 -> 119791 bytes
flipbooks/majilite-metallics/assets/roomgen/r7.jpg | Bin 0 -> 166204 bytes
flipbooks/majilite-metallics/assets/roomgen/r8.jpg | Bin 0 -> 146031 bytes
flipbooks/majilite-metallics/assets/roomgen/r9.jpg | Bin 0 -> 128854 bytes
flipbooks/majilite-metallics/gen-rooms.py | 83 ++++++++++++++++++
flipbooks/majilite-metallics/index.html | 48 +++++------
flipbooks/majilite-metallics/roomsrc/r1.jpg | Bin 0 -> 345594 bytes
flipbooks/majilite-metallics/roomsrc/r2.jpg | Bin 0 -> 297017 bytes
flipbooks/majilite-metallics/roomsrc/r3.jpg | Bin 0 -> 334986 bytes
flipbooks/majilite-metallics/roomsrc/r4.jpg | Bin 0 -> 307753 bytes
flipbooks/majilite-metallics/roomsrc/r5.jpg | Bin 0 -> 374022 bytes
public/collections/majilite-metallics-banner.jpg | Bin 1367223 -> 188958 bytes
public/collections/majilite-metallics-poster.jpg | Bin 1427192 -> 1688007 bytes
public/collections/majilite-metallics.html | 2 +-
35 files changed, 156 insertions(+), 73 deletions(-)
diff --git a/data/majilite-metallics.json b/data/majilite-metallics.json
index cc1aee4..fa93053 100644
--- a/data/majilite-metallics.json
+++ b/data/majilite-metallics.json
@@ -4,8 +4,8 @@
"handle": "majilite-stature-rose-gold",
"url": "https://www.designerwallcoverings.com/products/majilite-stature-rose-gold",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600123.png?v=1786382271",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600123.png?v=1786382271",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r0.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -13,8 +13,8 @@
"handle": "majilite-attache-rose-gold",
"url": "https://www.designerwallcoverings.com/products/majilite-attache-rose-gold",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600156.png?v=1786382322",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600156.png?v=1786382322",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r1.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -22,8 +22,8 @@
"handle": "majilite-hive-antique-gold",
"url": "https://www.designerwallcoverings.com/products/majilite-hive-antique-gold",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600111.png?v=1786382254",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600111.png?v=1786382254",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r2.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -31,8 +31,8 @@
"handle": "majilite-nuance-gold-leaf",
"url": "https://www.designerwallcoverings.com/products/majilite-nuance-gold-leaf",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600073.png?v=1786382201",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600073.png?v=1786382201",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r3.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -40,8 +40,8 @@
"handle": "majilite-brushed-finesse-champagne",
"url": "https://www.designerwallcoverings.com/products/majilite-brushed-finesse-champagne",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600130.png?v=1786382280",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600130.png?v=1786382280",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r4.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -49,8 +49,8 @@
"handle": "majilite-apollo-chardonnay",
"url": "https://www.designerwallcoverings.com/products/majilite-apollo-chardonnay",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600108.png?v=1786382250",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600108.png?v=1786382250",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r5.jpg",
+ "has_room": true,
"chapter": "golds"
},
{
@@ -58,8 +58,8 @@
"handle": "majilite-apollo-silver-icon",
"url": "https://www.designerwallcoverings.com/products/majilite-apollo-silver-icon",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600002.png?v=1786382087",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600002.png?v=1786382087",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r6.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -67,8 +67,8 @@
"handle": "majilite-metallic-paragon-silver",
"url": "https://www.designerwallcoverings.com/products/majilite-metallic-paragon-silver",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600004.png?v=1786382091",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600004.png?v=1786382091",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r7.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -76,8 +76,8 @@
"handle": "majilite-brushed-finesse-stainless-steel",
"url": "https://www.designerwallcoverings.com/products/majilite-brushed-finesse-stainless-steel",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600036.png?v=1786382149",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600036.png?v=1786382149",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r8.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -85,8 +85,8 @@
"handle": "majilite-nuance-platinum",
"url": "https://www.designerwallcoverings.com/products/majilite-nuance-platinum",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600059.png?v=1786382180",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600059.png?v=1786382180",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r9.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -94,8 +94,8 @@
"handle": "majilite-charm-ii-platinum",
"url": "https://www.designerwallcoverings.com/products/majilite-charm-ii-platinum",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600075.png?v=1786382204",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600075.png?v=1786382204",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r10.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -103,8 +103,8 @@
"handle": "majilite-reflection-aluminum",
"url": "https://www.designerwallcoverings.com/products/majilite-reflection-aluminum",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600007.png?v=1786382098",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600007.png?v=1786382098",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r11.jpg",
+ "has_room": true,
"chapter": "silvers"
},
{
@@ -112,8 +112,8 @@
"handle": "majilite-legacy-pearl-gelato",
"url": "https://www.designerwallcoverings.com/products/majilite-legacy-pearl-gelato",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600074.png?v=1786382203",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600074.png?v=1786382203",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r12.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -121,8 +121,8 @@
"handle": "majilite-celestial-pearl-gelato",
"url": "https://www.designerwallcoverings.com/products/majilite-celestial-pearl-gelato",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600102.png?v=1786382242",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600102.png?v=1786382242",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r13.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -130,8 +130,8 @@
"handle": "majilite-deco-white-pearl",
"url": "https://www.designerwallcoverings.com/products/majilite-deco-white-pearl",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600065.png?v=1786382190",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600065.png?v=1786382190",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r14.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -139,8 +139,8 @@
"handle": "majilite-shimmer-polar-white",
"url": "https://www.designerwallcoverings.com/products/majilite-shimmer-polar-white",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600045.png?v=1786382161",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600045.png?v=1786382161",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r15.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -148,8 +148,8 @@
"handle": "majilite-radiance-pearl-white",
"url": "https://www.designerwallcoverings.com/products/majilite-radiance-pearl-white",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600048.png?v=1786382166",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600048.png?v=1786382166",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r16.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -157,8 +157,8 @@
"handle": "majilite-charm-featherbed",
"url": "https://www.designerwallcoverings.com/products/majilite-charm-featherbed",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600066.png?v=1786382191",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600066.png?v=1786382191",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r17.jpg",
+ "has_room": true,
"chapter": "pearls"
},
{
@@ -166,8 +166,8 @@
"handle": "majilite-finesse-mercury",
"url": "https://www.designerwallcoverings.com/products/majilite-finesse-mercury",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600011.png?v=1786382106",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600011.png?v=1786382106",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r18.jpg",
+ "has_room": true,
"chapter": "smoke"
},
{
@@ -175,8 +175,8 @@
"handle": "majilite-burnished-metal-mercury",
"url": "https://www.designerwallcoverings.com/products/majilite-burnished-metal-mercury",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600147.png?v=1786382304",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600147.png?v=1786382304",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r19.jpg",
+ "has_room": true,
"chapter": "smoke"
},
{
@@ -184,8 +184,8 @@
"handle": "majilite-eclipse-fx-carbon",
"url": "https://www.designerwallcoverings.com/products/majilite-eclipse-fx-carbon",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600032.png?v=1786382143",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600032.png?v=1786382143",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r20.jpg",
+ "has_room": true,
"chapter": "smoke"
},
{
@@ -193,8 +193,8 @@
"handle": "majilite-shimmer-charcoal",
"url": "https://www.designerwallcoverings.com/products/majilite-shimmer-charcoal",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600037.png?v=1786382150",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600037.png?v=1786382150",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r21.jpg",
+ "has_room": true,
"chapter": "smoke"
},
{
@@ -202,8 +202,8 @@
"handle": "majilite-metallic-paragon-slate",
"url": "https://www.designerwallcoverings.com/products/majilite-metallic-paragon-slate",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600155.png?v=1786382319",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600155.png?v=1786382319",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r22.jpg",
+ "has_room": true,
"chapter": "smoke"
},
{
@@ -211,8 +211,8 @@
"handle": "majilite-hammered-metal-midnight",
"url": "https://www.designerwallcoverings.com/products/majilite-hammered-metal-midnight",
"image": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600160.png?v=1786382327",
- "room": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWMJ-600160.png?v=1786382327",
- "has_room": false,
+ "room": "/Users/macstudio3/Projects/dw-marketing-reels/flipbooks/majilite-metallics/assets/roomgen/r23.jpg",
+ "has_room": true,
"chapter": "smoke"
}
]
\ No newline at end of file
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r0.jpg b/flipbooks/majilite-metallics/assets/roomgen/r0.jpg
new file mode 100644
index 0000000..ed42cb2
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r0.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r1.jpg b/flipbooks/majilite-metallics/assets/roomgen/r1.jpg
new file mode 100644
index 0000000..7b7e243
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r1.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r10.jpg b/flipbooks/majilite-metallics/assets/roomgen/r10.jpg
new file mode 100644
index 0000000..e291e59
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r10.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r11.jpg b/flipbooks/majilite-metallics/assets/roomgen/r11.jpg
new file mode 100644
index 0000000..91ef442
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r11.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r12.jpg b/flipbooks/majilite-metallics/assets/roomgen/r12.jpg
new file mode 100644
index 0000000..0508fa2
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r12.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r13.jpg b/flipbooks/majilite-metallics/assets/roomgen/r13.jpg
new file mode 100644
index 0000000..1afec18
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r13.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r14.jpg b/flipbooks/majilite-metallics/assets/roomgen/r14.jpg
new file mode 100644
index 0000000..bd9733a
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r14.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r15.jpg b/flipbooks/majilite-metallics/assets/roomgen/r15.jpg
new file mode 100644
index 0000000..93d3cf0
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r15.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r16.jpg b/flipbooks/majilite-metallics/assets/roomgen/r16.jpg
new file mode 100644
index 0000000..ce67f61
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r16.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r17.jpg b/flipbooks/majilite-metallics/assets/roomgen/r17.jpg
new file mode 100644
index 0000000..9efb747
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r17.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r18.jpg b/flipbooks/majilite-metallics/assets/roomgen/r18.jpg
new file mode 100644
index 0000000..f8f4a2c
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r18.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r19.jpg b/flipbooks/majilite-metallics/assets/roomgen/r19.jpg
new file mode 100644
index 0000000..f6c5125
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r19.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r2.jpg b/flipbooks/majilite-metallics/assets/roomgen/r2.jpg
new file mode 100644
index 0000000..4a717fd
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r2.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r20.jpg b/flipbooks/majilite-metallics/assets/roomgen/r20.jpg
new file mode 100644
index 0000000..7add31e
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r20.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r21.jpg b/flipbooks/majilite-metallics/assets/roomgen/r21.jpg
new file mode 100644
index 0000000..1ed0e96
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r21.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r22.jpg b/flipbooks/majilite-metallics/assets/roomgen/r22.jpg
new file mode 100644
index 0000000..085adb0
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r22.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r23.jpg b/flipbooks/majilite-metallics/assets/roomgen/r23.jpg
new file mode 100644
index 0000000..6071cb5
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r23.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r3.jpg b/flipbooks/majilite-metallics/assets/roomgen/r3.jpg
new file mode 100644
index 0000000..e141145
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r3.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r4.jpg b/flipbooks/majilite-metallics/assets/roomgen/r4.jpg
new file mode 100644
index 0000000..b798563
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r4.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r5.jpg b/flipbooks/majilite-metallics/assets/roomgen/r5.jpg
new file mode 100644
index 0000000..810c8e5
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r5.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r6.jpg b/flipbooks/majilite-metallics/assets/roomgen/r6.jpg
new file mode 100644
index 0000000..d15b0f4
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r6.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r7.jpg b/flipbooks/majilite-metallics/assets/roomgen/r7.jpg
new file mode 100644
index 0000000..b966b53
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r7.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r8.jpg b/flipbooks/majilite-metallics/assets/roomgen/r8.jpg
new file mode 100644
index 0000000..07da5da
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r8.jpg differ
diff --git a/flipbooks/majilite-metallics/assets/roomgen/r9.jpg b/flipbooks/majilite-metallics/assets/roomgen/r9.jpg
new file mode 100644
index 0000000..3b223b2
Binary files /dev/null and b/flipbooks/majilite-metallics/assets/roomgen/r9.jpg differ
diff --git a/flipbooks/majilite-metallics/gen-rooms.py b/flipbooks/majilite-metallics/gen-rooms.py
new file mode 100644
index 0000000..a6d8386
--- /dev/null
+++ b/flipbooks/majilite-metallics/gen-rooms.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python3
+# Generate walls+furniture commercial renders for each Majilite metallic via Replicate nano-banana.
+import json, os, time, urllib.request, urllib.error, pathlib, re
+
+ROOT = pathlib.Path(__file__).resolve().parent
+DATA = ROOT.parent.parent / "data" / "majilite-metallics.json"
+OUT = ROOT / "assets" / "roomgen"
+OUT.mkdir(parents=True, exist_ok=True)
+VERSION = "5bdc2c7cd642ae33611d8c33f79615f98ff02509ab8db9d8ec1cc6c36d378fba"
+
+def token():
+ for line in (pathlib.Path.home()/ "Projects/secrets-manager/.env").read_text().splitlines():
+ if line.startswith("REPLICATE_API_TOKEN="):
+ return line.split("=",1)[1].strip()
+ raise SystemExit("no replicate token")
+TOKEN = token()
+
+# room + furniture scene by chapter (two variants cycled per chapter for variety)
+SCENES = {
+ "golds": [("an upscale hotel lobby","a pair of upholstered lounge chairs AND the reception feature wall behind them"),
+ ("a high-end restaurant dining room","a curved tufted banquette booth AND the full wall behind it")],
+ "silvers": [("an executive conference boardroom","the upholstered high-back boardroom chairs AND a full-height accent wall panel"),
+ ("a modern corporate office lounge","an upholstered sofa AND the feature wall behind it")],
+ "pearls": [("a premium retail showroom","an upholstered display bench AND a feature wall"),
+ ("a bright, calm healthcare waiting room","the upholstered waiting chairs AND a wall panel")],
+ "smoke": [("a moody fine-dining restaurant","a deep tufted banquette booth AND the dark wall behind it"),
+ ("a low-lit executive boardroom","the upholstered high-back chairs AND an accent wall")],
+}
+
+def prompt_for(title, room, furniture):
+ return (f"Photorealistic interior design photograph of {room}. Take the supplied swatch — a metallic "
+ f"faux-leather contract material called '{title}' — and apply its EXACT color, metallic sheen and "
+ f"texture to BOTH {furniture}. Contract-grade upholstery and wallcovering finish, realistic "
+ f"architectural lighting with soft reflections on the metallic surface, editorial design-magazine "
+ f"quality, shallow depth of field. No text, no logos, no watermark, no people.")
+
+def post(url, body):
+ req = urllib.request.Request(url, data=json.dumps(body).encode(),
+ headers={"Authorization": f"Bearer {TOKEN}", "Content-Type":"application/json"})
+ return json.load(urllib.request.urlopen(req, timeout=60))
+
+def get(url):
+ req = urllib.request.Request(url, headers={"Authorization": f"Bearer {TOKEN}"})
+ return json.load(urllib.request.urlopen(req, timeout=60))
+
+products = json.loads(DATA.read_text())
+per_chapter = {}
+ok = 0
+for i, p in enumerate(products):
+ ch = p.get("chapter","golds")
+ idx = per_chapter.get(ch,0); per_chapter[ch]=idx+1
+ room, furniture = SCENES.get(ch, SCENES["golds"])[idx % 2]
+ prm = prompt_for(p["title"], room, furniture)
+ swatch = p["image"]
+ dest = OUT / f"r{i}.jpg"
+ if dest.exists() and dest.stat().st_size > 20000:
+ print(f"[{i:02d}] cached {p['title']}"); ok+=1; continue
+ try:
+ pred = post("https://api.replicate.com/v1/predictions",
+ {"version": VERSION, "input": {"prompt": prm, "image_input":[swatch],
+ "aspect_ratio":"4:3", "output_format":"jpg"}})
+ purl = pred["urls"]["get"]
+ for _ in range(90):
+ time.sleep(2)
+ pred = get(purl)
+ if pred["status"] in ("succeeded","failed","canceled"): break
+ if pred["status"] != "succeeded":
+ print(f"[{i:02d}] FAIL {p['title']}: {pred.get('error') or pred['status']}"); continue
+ out = pred["output"]
+ img_url = out[0] if isinstance(out,list) else out
+ urllib.request.urlretrieve(img_url, dest)
+ ok += 1
+ print(f"[{i:02d}] ok {p['title']:28s} [{ch}/{room[:24]}]")
+ except Exception as e:
+ print(f"[{i:02d}] ERR {p['title']}: {e}")
+
+# stamp local room paths + has_room into the data JSON
+for i, p in enumerate(products):
+ dest = OUT / f"r{i}.jpg"
+ if dest.exists() and dest.stat().st_size > 20000:
+ p["room"] = str(dest); p["has_room"] = True
+DATA.write_text(json.dumps(products, indent=2))
+print(f"\nDONE {ok}/{len(products)} rooms; est cost ${ok*0.039:.2f} (nano-banana @ ~$0.039/img)")
diff --git a/flipbooks/majilite-metallics/index.html b/flipbooks/majilite-metallics/index.html
index f3533c1..9a49d25 100644
--- a/flipbooks/majilite-metallics/index.html
+++ b/flipbooks/majilite-metallics/index.html
@@ -63,122 +63,122 @@
<div class="verso">
<div class="wordmark"><div class="wm">Designer Wallcoverings</div><div class="wsub">est. lookbook</div><div class="wr"></div></div>
<div class="roomstack">
- <div class="room fallback" id="room0">
+ <div class="room" id="room0">
<img class="rimg" src="assets/room/r0.jpg" alt="Stature Rose Gold room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Stature Rose Gold</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room1">
+ <div class="room" id="room1">
<img class="rimg" src="assets/room/r1.jpg" alt="Attache Rose Gold room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Attache Rose Gold</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room2">
+ <div class="room" id="room2">
<img class="rimg" src="assets/room/r2.jpg" alt="Hive Antique Gold room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Hive Antique Gold</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room3">
+ <div class="room" id="room3">
<img class="rimg" src="assets/room/r3.jpg" alt="Nuance Gold Leaf room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Nuance Gold Leaf</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room4">
+ <div class="room" id="room4">
<img class="rimg" src="assets/room/r4.jpg" alt="Brushed Finesse Champagne room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Brushed Finesse Champagne</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room5">
+ <div class="room" id="room5">
<img class="rimg" src="assets/room/r5.jpg" alt="Apollo Chardonnay room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Apollo Chardonnay</div><div class="rcol">Majilite Metallics · golds</div></div>
</div>
- <div class="room fallback" id="room6">
+ <div class="room" id="room6">
<img class="rimg" src="assets/room/r6.jpg" alt="Apollo Silver Icon room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Apollo Silver Icon</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room7">
+ <div class="room" id="room7">
<img class="rimg" src="assets/room/r7.jpg" alt="Metallic Paragon Silver room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Metallic Paragon Silver</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room8">
+ <div class="room" id="room8">
<img class="rimg" src="assets/room/r8.jpg" alt="Brushed Finesse Stainless Steel room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Brushed Finesse Stainless Steel</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room9">
+ <div class="room" id="room9">
<img class="rimg" src="assets/room/r9.jpg" alt="Nuance Platinum room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Nuance Platinum</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room10">
+ <div class="room" id="room10">
<img class="rimg" src="assets/room/r10.jpg" alt="Charm II Platinum room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Charm II Platinum</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room11">
+ <div class="room" id="room11">
<img class="rimg" src="assets/room/r11.jpg" alt="Reflection Aluminum room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Reflection Aluminum</div><div class="rcol">Majilite Metallics · silvers</div></div>
</div>
- <div class="room fallback" id="room12">
+ <div class="room" id="room12">
<img class="rimg" src="assets/room/r12.jpg" alt="Legacy Pearl Gelato room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Legacy Pearl Gelato</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room13">
+ <div class="room" id="room13">
<img class="rimg" src="assets/room/r13.jpg" alt="Celestial Pearl Gelato room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Celestial Pearl Gelato</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room14">
+ <div class="room" id="room14">
<img class="rimg" src="assets/room/r14.jpg" alt="Deco White Pearl room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Deco White Pearl</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room15">
+ <div class="room" id="room15">
<img class="rimg" src="assets/room/r15.jpg" alt="Shimmer Polar White room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Shimmer Polar White</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room16">
+ <div class="room" id="room16">
<img class="rimg" src="assets/room/r16.jpg" alt="Radiance Pearl White room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Radiance Pearl White</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room17">
+ <div class="room" id="room17">
<img class="rimg" src="assets/room/r17.jpg" alt="Charm Featherbed room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Charm Featherbed</div><div class="rcol">Majilite Metallics · pearls</div></div>
</div>
- <div class="room fallback" id="room18">
+ <div class="room" id="room18">
<img class="rimg" src="assets/room/r18.jpg" alt="Finesse Mercury room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Finesse Mercury</div><div class="rcol">Majilite Metallics · smoke</div></div>
</div>
- <div class="room fallback" id="room19">
+ <div class="room" id="room19">
<img class="rimg" src="assets/room/r19.jpg" alt="Burnished Metal Mercury room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Burnished Metal Mercury</div><div class="rcol">Majilite Metallics · smoke</div></div>
</div>
- <div class="room fallback" id="room20">
+ <div class="room" id="room20">
<img class="rimg" src="assets/room/r20.jpg" alt="Eclipse FX Carbon room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Eclipse FX Carbon</div><div class="rcol">Majilite Metallics · smoke</div></div>
</div>
- <div class="room fallback" id="room21">
+ <div class="room" id="room21">
<img class="rimg" src="assets/room/r21.jpg" alt="Shimmer Charcoal room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Shimmer Charcoal</div><div class="rcol">Majilite Metallics · smoke</div></div>
</div>
- <div class="room fallback" id="room22">
+ <div class="room" id="room22">
<img class="rimg" src="assets/room/r22.jpg" alt="Metallic Paragon Slate room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Metallic Paragon Slate</div><div class="rcol">Majilite Metallics · smoke</div></div>
</div>
- <div class="room fallback" id="room23">
+ <div class="room" id="room23">
<img class="rimg" src="assets/room/r23.jpg" alt="Hammered Metal Midnight room" />
<div class="rtint"></div>
<div class="rcap"><div class="rpat">Hammered Metal Midnight</div><div class="rcol">Majilite Metallics · smoke</div></div>
diff --git a/flipbooks/majilite-metallics/roomsrc/r1.jpg b/flipbooks/majilite-metallics/roomsrc/r1.jpg
new file mode 100644
index 0000000..1a0ff50
Binary files /dev/null and b/flipbooks/majilite-metallics/roomsrc/r1.jpg differ
diff --git a/flipbooks/majilite-metallics/roomsrc/r2.jpg b/flipbooks/majilite-metallics/roomsrc/r2.jpg
new file mode 100644
index 0000000..d63037b
Binary files /dev/null and b/flipbooks/majilite-metallics/roomsrc/r2.jpg differ
diff --git a/flipbooks/majilite-metallics/roomsrc/r3.jpg b/flipbooks/majilite-metallics/roomsrc/r3.jpg
new file mode 100644
index 0000000..4da8b3d
Binary files /dev/null and b/flipbooks/majilite-metallics/roomsrc/r3.jpg differ
diff --git a/flipbooks/majilite-metallics/roomsrc/r4.jpg b/flipbooks/majilite-metallics/roomsrc/r4.jpg
new file mode 100644
index 0000000..69e56d0
Binary files /dev/null and b/flipbooks/majilite-metallics/roomsrc/r4.jpg differ
diff --git a/flipbooks/majilite-metallics/roomsrc/r5.jpg b/flipbooks/majilite-metallics/roomsrc/r5.jpg
new file mode 100644
index 0000000..ee84542
Binary files /dev/null and b/flipbooks/majilite-metallics/roomsrc/r5.jpg differ
diff --git a/public/collections/majilite-metallics-banner.jpg b/public/collections/majilite-metallics-banner.jpg
index 220e45d..ed42cb2 100644
Binary files a/public/collections/majilite-metallics-banner.jpg and b/public/collections/majilite-metallics-banner.jpg differ
diff --git a/public/collections/majilite-metallics-poster.jpg b/public/collections/majilite-metallics-poster.jpg
index ff971ed..2173214 100644
Binary files a/public/collections/majilite-metallics-poster.jpg and b/public/collections/majilite-metallics-poster.jpg differ
diff --git a/public/collections/majilite-metallics.html b/public/collections/majilite-metallics.html
index b07d5d2..687aae7 100644
--- a/public/collections/majilite-metallics.html
+++ b/public/collections/majilite-metallics.html
@@ -51,6 +51,6 @@
sd.addEventListener('click',function(){v.muted=!v.muted;if(!v.muted&&v.volume===0)v.volume=1;paint();});
v.addEventListener('volumechange',paint);paint();
})();</script>
- <div class="cta"><a href="https://www.designerwallcoverings.com/collections/all/majilite">Shop the collection →</a></div>
+ <div class="cta"><a href="https://www.designerwallcoverings.com/collections/majilite">Shop the collection →</a></div>
<footer><div class="mark">Designer Wallcoverings</div><a href="https://designerwallcoverings.com">designerwallcoverings.com →</a></footer>
</body></html>
\ No newline at end of file
← 692459d reels: 15/30s runtime + open on a product image (no blank IG
·
back to Dw Marketing Reels
·
Majilite flip book: real Replicate commercial rooms on verso 305a06c →