← back to Dw Collection Banner Audit
29 room-render banners generated (16:9, settlement-clear), contact sheet, ~$1.16
04bd25e7379eac82357b89257d2d019b2345a314 · 2026-07-30 09:58:03 -0700 · steve
Files touched
A room_render.pyA room_renders/apartment-wallpaper.pngA room_renders/british-walls.pngA room_renders/european-wallpapers.pngA room_renders/gaston-nuevo-mundo.pngA room_renders/green-wall-textures.pngA room_renders/hollywood-type-2-wallpaper-collection.pngA room_renders/hollywood-wallpaper-commercial-wallpaper.pngA room_renders/luxuria-fine-textile-wallcoverings-by-phillipe-romano.pngA room_renders/maharam-wallcoverings.pngA room_renders/mark-alexander.pngA room_renders/material-leather.pngA room_renders/natural-paint.pngA room_renders/naturally-glamorous.pngA room_renders/phillipe-romano-asian-essence.pngA room_renders/phillipe-romano-elegante.pngA room_renders/phillipe-romano-enlightenment.pngA room_renders/phillipe-romano-essential-textures.pngA room_renders/phillipe-romano-fabrics.pngA room_renders/phillipe-romano-faux-leather.pngA room_renders/phillipe-romano-monument-collection.pngA room_renders/phillipe-romano-pattern-upholstery.pngA room_renders/phillipe-romano-print-basecloths.pngA room_renders/phillipe-romano-textures-vol-4.pngA room_renders/phillipe-romano-wilderie-collection.pngA room_renders/ronald-redding.pngA room_renders/surface-stick-3m-self-adhesive.pngA room_renders/surface-stick.pngA room_renders/tables.pngA room_renders/throw-blanket.pngA room_renders_all.jsonA room_renders_contact_sheet.pngA room_renders_sample.json
Diff
commit 04bd25e7379eac82357b89257d2d019b2345a314
Author: steve <steve@designerwallcoverings.com>
Date: Thu Jul 30 09:58:03 2026 -0700
29 room-render banners generated (16:9, settlement-clear), contact sheet, ~$1.16
---
room_render.py | 94 ++++++++
room_renders/apartment-wallpaper.png | Bin 0 -> 2514793 bytes
room_renders/british-walls.png | Bin 0 -> 2137990 bytes
room_renders/european-wallpapers.png | Bin 0 -> 2313906 bytes
room_renders/gaston-nuevo-mundo.png | Bin 0 -> 2375614 bytes
room_renders/green-wall-textures.png | Bin 0 -> 2421551 bytes
.../hollywood-type-2-wallpaper-collection.png | Bin 0 -> 2248672 bytes
.../hollywood-wallpaper-commercial-wallpaper.png | Bin 0 -> 2323039 bytes
...ne-textile-wallcoverings-by-phillipe-romano.png | Bin 0 -> 2095558 bytes
room_renders/maharam-wallcoverings.png | Bin 0 -> 2191525 bytes
room_renders/mark-alexander.png | Bin 0 -> 2132609 bytes
room_renders/material-leather.png | Bin 0 -> 2584846 bytes
room_renders/natural-paint.png | Bin 0 -> 2249034 bytes
room_renders/naturally-glamorous.png | Bin 0 -> 2473561 bytes
room_renders/phillipe-romano-asian-essence.png | Bin 0 -> 2308237 bytes
room_renders/phillipe-romano-elegante.png | Bin 0 -> 2257039 bytes
room_renders/phillipe-romano-enlightenment.png | Bin 0 -> 2238893 bytes
.../phillipe-romano-essential-textures.png | Bin 0 -> 2284643 bytes
room_renders/phillipe-romano-fabrics.png | Bin 0 -> 2196360 bytes
room_renders/phillipe-romano-faux-leather.png | Bin 0 -> 2293027 bytes
.../phillipe-romano-monument-collection.png | Bin 0 -> 2232201 bytes
.../phillipe-romano-pattern-upholstery.png | Bin 0 -> 2189193 bytes
room_renders/phillipe-romano-print-basecloths.png | Bin 0 -> 2184866 bytes
room_renders/phillipe-romano-textures-vol-4.png | Bin 0 -> 2349950 bytes
.../phillipe-romano-wilderie-collection.png | Bin 0 -> 2214165 bytes
room_renders/ronald-redding.png | Bin 0 -> 2423934 bytes
room_renders/surface-stick-3m-self-adhesive.png | Bin 0 -> 2061432 bytes
room_renders/surface-stick.png | Bin 0 -> 2271448 bytes
room_renders/tables.png | Bin 0 -> 2313033 bytes
room_renders/throw-blanket.png | Bin 0 -> 2261084 bytes
room_renders_all.json | 250 +++++++++++++++++++++
room_renders_contact_sheet.png | Bin 0 -> 3283687 bytes
room_renders_sample.json | 21 ++
33 files changed, 365 insertions(+)
diff --git a/room_render.py b/room_render.py
new file mode 100644
index 0000000..3c575d9
--- /dev/null
+++ b/room_render.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python3
+"""
+Room-render banner generator for no-source collections.
+For each: pull a representative product image from the collection, ask
+gemini-2.5-flash-image to place that wallcovering in a photorealistic room,
+save the render locally (NOT uploaded to Shopify yet — that write is gated).
+Usage: python3 room_render.py sample # first 3
+ python3 room_render.py all # all 38 genuine no-source
+Reads GEMINI_API_KEY from env. Cost ~$0.01-0.04/render (shown).
+"""
+import json, os, sys, base64, time, urllib.request
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+GKEY = os.environ["GEMINI_API_KEY"]
+STORE = "designer-laboratory-sandbox.myshopify.com"
+UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
+OUT = os.path.join(HERE, "room_renders"); os.makedirs(OUT, exist_ok=True)
+MODEL = "gemini-2.5-flash-image"
+
+rows = json.load(open(os.path.join(HERE, "proposal.json")))
+def w(r):
+ try: return int(r["new_dim"].split("x")[0])
+ except: return 0
+genuine = [r for r in rows if r["status"] == "NO_HIRES_SOURCE" and w(r) < 1000 and (r["products"] or 0) > 0]
+
+ROOMS = ["an elegant modern living room", "a refined dining room", "a luxe bedroom feature wall"]
+
+def product_image(handle):
+ url = f"https://{STORE}/collections/{handle}/products.json?limit=12"
+ prods = None
+ for attempt in range(4):
+ try:
+ prods = json.load(urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": UA}), timeout=25)).get("products", [])
+ break
+ except urllib.error.HTTPError as e:
+ if e.code in (403, 429): time.sleep(2.0*(attempt+1)); continue
+ return None
+ except Exception:
+ time.sleep(1.5)
+ if not prods: return None
+ for p in prods:
+ for im in p.get("images", []):
+ if "logo" not in im.get("src","").lower():
+ return im["src"]
+ return None
+
+def fetch_bytes(src):
+ return urllib.request.urlopen(urllib.request.Request(src, headers={"User-Agent": UA}), timeout=30).read()
+
+def gen_room(handle, title, idx):
+ src = product_image(handle)
+ if not src: return {"handle": handle, "ok": False, "note": "no product image"}
+ img_b = fetch_bytes(src)
+ b64 = base64.b64encode(img_b).decode()
+ mime = "image/png" if src.lower().split("?")[0].endswith(".png") else "image/jpeg"
+ room = ROOMS[idx % len(ROOMS)]
+ prompt = (f"Photorealistic interior photograph: the wallcovering pattern shown in the reference image "
+ f"installed on the main wall of {room}. Elegant, luxury interior design, natural lighting, "
+ f"tasteful furniture, magazine-quality. The wallcovering pattern must match the reference exactly. "
+ f"Wide landscape composition suitable for a website banner. No text, no watermark.")
+ body = json.dumps({
+ "contents": [{"parts": [{"text": prompt}, {"inline_data": {"mime_type": mime, "data": b64}}]}],
+ "generationConfig": {"imageConfig": {"aspectRatio": "16:9"}}
+ }).encode()
+ url = f"https://generativelanguage.googleapis.com/v1beta/models/{MODEL}:generateContent?key={GKEY}"
+ req = urllib.request.Request(url, data=body, headers={"Content-Type": "application/json"})
+ try:
+ res = json.load(urllib.request.urlopen(req, timeout=120))
+ except Exception as e:
+ return {"handle": handle, "ok": False, "note": f"api err: {str(e)[:100]}"}
+ # extract inline image
+ try:
+ for part in res["candidates"][0]["content"]["parts"]:
+ d = part.get("inline_data") or part.get("inlineData")
+ if d:
+ out = os.path.join(OUT, f"{handle}.png")
+ open(out, "wb").write(base64.b64decode(d["data"]))
+ return {"handle": handle, "ok": True, "file": out, "src_used": src, "room": room}
+ return {"handle": handle, "ok": False, "note": "no image in response"}
+ except Exception as e:
+ return {"handle": handle, "ok": False, "note": f"parse err: {str(e)[:100]}"}
+
+mode = sys.argv[1] if len(sys.argv) > 1 else "sample"
+target = genuine[:3] if mode == "sample" else genuine
+print(f"generating {len(target)} room-render banners (model {MODEL}, ~$0.04 each -> ~${len(target)*0.04:.2f})")
+results = []
+for i, r in enumerate(target):
+ res = gen_room(r["handle"], r["title"], i)
+ print((" OK " if res["ok"] else " FAIL ") + res["handle"] + ("" if res["ok"] else " :: " + res.get("note","")))
+ results.append(res)
+ time.sleep(1.0)
+json.dump(results, open(os.path.join(HERE, f"room_renders_{mode}.json"), "w"), indent=1)
+ok = sum(1 for r in results if r["ok"])
+print(f"\ndone: {ok}/{len(target)} rendered -> {OUT} est cost ~${ok*0.04:.2f}")
diff --git a/room_renders/apartment-wallpaper.png b/room_renders/apartment-wallpaper.png
new file mode 100644
index 0000000..20c7bec
Binary files /dev/null and b/room_renders/apartment-wallpaper.png differ
diff --git a/room_renders/british-walls.png b/room_renders/british-walls.png
new file mode 100644
index 0000000..02a4810
Binary files /dev/null and b/room_renders/british-walls.png differ
diff --git a/room_renders/european-wallpapers.png b/room_renders/european-wallpapers.png
new file mode 100644
index 0000000..4e1090c
Binary files /dev/null and b/room_renders/european-wallpapers.png differ
diff --git a/room_renders/gaston-nuevo-mundo.png b/room_renders/gaston-nuevo-mundo.png
new file mode 100644
index 0000000..a022a72
Binary files /dev/null and b/room_renders/gaston-nuevo-mundo.png differ
diff --git a/room_renders/green-wall-textures.png b/room_renders/green-wall-textures.png
new file mode 100644
index 0000000..801e0ef
Binary files /dev/null and b/room_renders/green-wall-textures.png differ
diff --git a/room_renders/hollywood-type-2-wallpaper-collection.png b/room_renders/hollywood-type-2-wallpaper-collection.png
new file mode 100644
index 0000000..8eef6e7
Binary files /dev/null and b/room_renders/hollywood-type-2-wallpaper-collection.png differ
diff --git a/room_renders/hollywood-wallpaper-commercial-wallpaper.png b/room_renders/hollywood-wallpaper-commercial-wallpaper.png
new file mode 100644
index 0000000..c927dd4
Binary files /dev/null and b/room_renders/hollywood-wallpaper-commercial-wallpaper.png differ
diff --git a/room_renders/luxuria-fine-textile-wallcoverings-by-phillipe-romano.png b/room_renders/luxuria-fine-textile-wallcoverings-by-phillipe-romano.png
new file mode 100644
index 0000000..770c6cb
Binary files /dev/null and b/room_renders/luxuria-fine-textile-wallcoverings-by-phillipe-romano.png differ
diff --git a/room_renders/maharam-wallcoverings.png b/room_renders/maharam-wallcoverings.png
new file mode 100644
index 0000000..70331bd
Binary files /dev/null and b/room_renders/maharam-wallcoverings.png differ
diff --git a/room_renders/mark-alexander.png b/room_renders/mark-alexander.png
new file mode 100644
index 0000000..d88ac48
Binary files /dev/null and b/room_renders/mark-alexander.png differ
diff --git a/room_renders/material-leather.png b/room_renders/material-leather.png
new file mode 100644
index 0000000..ec82c96
Binary files /dev/null and b/room_renders/material-leather.png differ
diff --git a/room_renders/natural-paint.png b/room_renders/natural-paint.png
new file mode 100644
index 0000000..5b5070c
Binary files /dev/null and b/room_renders/natural-paint.png differ
diff --git a/room_renders/naturally-glamorous.png b/room_renders/naturally-glamorous.png
new file mode 100644
index 0000000..1c872f9
Binary files /dev/null and b/room_renders/naturally-glamorous.png differ
diff --git a/room_renders/phillipe-romano-asian-essence.png b/room_renders/phillipe-romano-asian-essence.png
new file mode 100644
index 0000000..19279c2
Binary files /dev/null and b/room_renders/phillipe-romano-asian-essence.png differ
diff --git a/room_renders/phillipe-romano-elegante.png b/room_renders/phillipe-romano-elegante.png
new file mode 100644
index 0000000..735bc4a
Binary files /dev/null and b/room_renders/phillipe-romano-elegante.png differ
diff --git a/room_renders/phillipe-romano-enlightenment.png b/room_renders/phillipe-romano-enlightenment.png
new file mode 100644
index 0000000..d7d22ab
Binary files /dev/null and b/room_renders/phillipe-romano-enlightenment.png differ
diff --git a/room_renders/phillipe-romano-essential-textures.png b/room_renders/phillipe-romano-essential-textures.png
new file mode 100644
index 0000000..1225d34
Binary files /dev/null and b/room_renders/phillipe-romano-essential-textures.png differ
diff --git a/room_renders/phillipe-romano-fabrics.png b/room_renders/phillipe-romano-fabrics.png
new file mode 100644
index 0000000..004536f
Binary files /dev/null and b/room_renders/phillipe-romano-fabrics.png differ
diff --git a/room_renders/phillipe-romano-faux-leather.png b/room_renders/phillipe-romano-faux-leather.png
new file mode 100644
index 0000000..9b17d03
Binary files /dev/null and b/room_renders/phillipe-romano-faux-leather.png differ
diff --git a/room_renders/phillipe-romano-monument-collection.png b/room_renders/phillipe-romano-monument-collection.png
new file mode 100644
index 0000000..14ec33d
Binary files /dev/null and b/room_renders/phillipe-romano-monument-collection.png differ
diff --git a/room_renders/phillipe-romano-pattern-upholstery.png b/room_renders/phillipe-romano-pattern-upholstery.png
new file mode 100644
index 0000000..91157c6
Binary files /dev/null and b/room_renders/phillipe-romano-pattern-upholstery.png differ
diff --git a/room_renders/phillipe-romano-print-basecloths.png b/room_renders/phillipe-romano-print-basecloths.png
new file mode 100644
index 0000000..f36e21d
Binary files /dev/null and b/room_renders/phillipe-romano-print-basecloths.png differ
diff --git a/room_renders/phillipe-romano-textures-vol-4.png b/room_renders/phillipe-romano-textures-vol-4.png
new file mode 100644
index 0000000..f4fb4ee
Binary files /dev/null and b/room_renders/phillipe-romano-textures-vol-4.png differ
diff --git a/room_renders/phillipe-romano-wilderie-collection.png b/room_renders/phillipe-romano-wilderie-collection.png
new file mode 100644
index 0000000..c168731
Binary files /dev/null and b/room_renders/phillipe-romano-wilderie-collection.png differ
diff --git a/room_renders/ronald-redding.png b/room_renders/ronald-redding.png
new file mode 100644
index 0000000..34238fa
Binary files /dev/null and b/room_renders/ronald-redding.png differ
diff --git a/room_renders/surface-stick-3m-self-adhesive.png b/room_renders/surface-stick-3m-self-adhesive.png
new file mode 100644
index 0000000..99796e0
Binary files /dev/null and b/room_renders/surface-stick-3m-self-adhesive.png differ
diff --git a/room_renders/surface-stick.png b/room_renders/surface-stick.png
new file mode 100644
index 0000000..1a3a372
Binary files /dev/null and b/room_renders/surface-stick.png differ
diff --git a/room_renders/tables.png b/room_renders/tables.png
new file mode 100644
index 0000000..8bab417
Binary files /dev/null and b/room_renders/tables.png differ
diff --git a/room_renders/throw-blanket.png b/room_renders/throw-blanket.png
new file mode 100644
index 0000000..10b58b2
Binary files /dev/null and b/room_renders/throw-blanket.png differ
diff --git a/room_renders_all.json b/room_renders_all.json
new file mode 100644
index 0000000..27c71dd
--- /dev/null
+++ b/room_renders_all.json
@@ -0,0 +1,250 @@
+[
+ {
+ "handle": "apartment-wallpaper",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/apartment-wallpaper.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/PSW1113RL.jpg?v=1740774986",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "benu-recycled",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "british-walls",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/british-walls.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/93a7007651f206f845f9748e35512953.jpg?v=1572309861",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "collezione-italia",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "european-wallpapers",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/european-wallpapers.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abaca_3eauctnpzewfnc2v.jpg?v=1782461830",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "gaston-nuevo-mundo",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/gaston-nuevo-mundo.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/GDT5566_001_ed4a7108-c9dc-4f51-8030-ec977a5adbdd.jpg?v=1738179846",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "green-wall-textures",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/green-wall-textures.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/billy-burlap-grs-9039-cropped.jpg?v=1774341288",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "hermes",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "hinson",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "hollywood-wallpaper-commercial-wallpaper",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/hollywood-wallpaper-commercial-wallpaper.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72460-sample-clean.jpg?v=1774485650",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "hollywood-type-2-wallpaper-collection",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/hollywood-type-2-wallpaper-collection.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/circ_panel-iron.jpg?v=1785423738",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "material-leather",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/material-leather.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/RS15051_image1.jpg?v=1756312793",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "luxuria-fine-textile-wallcoverings-by-phillipe-romano",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/luxuria-fine-textile-wallcoverings-by-phillipe-romano.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2090_quadrat_80cc13fd-c965-480e-8c93-e2480ff15bd8.jpg?v=1576170487",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "maharam-wallcoverings",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/maharam-wallcoverings.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MH-ESKER-007_0.jpg?v=1785419247",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "mark-alexander",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/mark-alexander.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MW110-03-kami-lake_03_50d9cb5c-8dae-41f2-afe6-547a8bd539fd.jpg?v=1775598512",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "natural-paint",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/natural-paint.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c7ee6b6518ea1c535e2461b3b45bf226.jpg?v=1572309829",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "naturally-glamorous",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/naturally-glamorous.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hlw-73042-sample-gregory-diamonds-drive-hollywood-wallcoverings.jpg?v=1775714870",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "nlxl",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "paul-montgomery-all-products",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "paul-montgomery-murals",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "phillip-jeffries",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "phillipe-romano-enlightenment",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-enlightenment.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/prw-920396-innovations_fuse-fus-001-barium-01.jpg?v=1781715896",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "phillipe-romano-faux-leather",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-faux-leather.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/TR-VT-01_0f374878-69d0-4656-9fc2-ba0b4e44bca4.jpg?v=1733889811",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "phillipe-romano-monument-collection",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-monument-collection.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/grs-20492-cropped.jpg?v=1774345427",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "phillipe-romano-pattern-upholstery",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-pattern-upholstery.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ScreenShot2023-01-13at12.59.59PM.png?v=1745455417",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "phillipe-romano-print-basecloths",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-print-basecloths.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T2-BL-11_a321a15d-f92e-4833-81e7-1559488db75c.jpg?v=1733891640",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "phillipe-romano-wilderie-collection",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-wilderie-collection.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ScreenShot2023-01-13at12.59.59PM.png?v=1745455417",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "phillipe-romano-asian-essence",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-asian-essence.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/WOS3471_WT_ba85ae6e-2aef-4f79-8bec-e8d28a5c4f34.jpg?v=1753317602",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "phillipe-romano-elegante",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-elegante.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3839_106_8341302d-92e0-4490-92ac-8d6eb7858fc0.jpg?v=1753290523",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "phillipe-romano-essential-textures",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-essential-textures.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f8e389c16f71245906b0d75c6ffdc549_5a65ac67-a446-4bcf-a5dc-9d78c58702cb.jpg?v=1572310382",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "phillipe-romano-fabrics",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-fabrics.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9b289f123d712ff505fcd084dafc6128.jpg?v=1734632259",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "phillipe-romano-faux-leathers-upholstery-more",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "phillipe-romano-textures-vol-4",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/phillipe-romano-textures-vol-4.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/85a79b6b9caa3dc82b75057671150b71.jpg?v=1745458523",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "ronald-redding",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/ronald-redding.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3744_5_5b39a56c-7391-4d7c-b421-2c7ac397d32b.jpg?v=1753292001",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "surface-stick",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/surface-stick.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/007bf2c5f1d16fe0cf685c3c251b258f.jpg?v=1572309697",
+ "room": "a refined dining room"
+ },
+ {
+ "handle": "surface-stick-3m-self-adhesive",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/surface-stick-3m-self-adhesive.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/007bf2c5f1d16fe0cf685c3c251b258f.jpg?v=1572309697",
+ "room": "a luxe bedroom feature wall"
+ },
+ {
+ "handle": "tables",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/tables.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wood-black-self-adhesive-film-jeffrey-stevens.jpg?v=1783972211",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "throw-blanket",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/throw-blanket.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/11859510-dig-762164-chibabay-blue-by-designerwallcoverings_19-1_a3ea7102-1f49-4d97-9c9b-15dd0926b182.jpg?v=1630525797",
+ "room": "a refined dining room"
+ }
+]
\ No newline at end of file
diff --git a/room_renders_contact_sheet.png b/room_renders_contact_sheet.png
new file mode 100644
index 0000000..ff05e94
Binary files /dev/null and b/room_renders_contact_sheet.png differ
diff --git a/room_renders_sample.json b/room_renders_sample.json
new file mode 100644
index 0000000..8c794bf
--- /dev/null
+++ b/room_renders_sample.json
@@ -0,0 +1,21 @@
+[
+ {
+ "handle": "apartment-wallpaper",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/apartment-wallpaper.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/PSW1113RL.jpg?v=1740774986",
+ "room": "an elegant modern living room"
+ },
+ {
+ "handle": "benu-recycled",
+ "ok": false,
+ "note": "no product image"
+ },
+ {
+ "handle": "british-walls",
+ "ok": true,
+ "file": "/Users/macstudio3/Projects/dw-collection-banner-audit/room_renders/british-walls.png",
+ "src_used": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/93a7007651f206f845f9748e35512953.jpg?v=1572309861",
+ "room": "a luxe bedroom feature wall"
+ }
+]
\ No newline at end of file
← 17c3bca auto-save: 2026-07-30T09:46:44 (2 files) — apply_live.py rol
·
back to Dw Collection Banner Audit
·
landed 29 room-render banners live (custom+smart), 29/29 ok, 0917475 →