← back to Dw Collection Banner Audit
5 original settlement-clear banner candidates for logo-only collections (Steve to approve before landing)
9801c11dc6f3de53120a69a23081865192a813ca · 2026-07-30 10:53:08 -0700 · steve
Files touched
A candidates_contact_sheet.pngA gen_candidates.pyA room_renders_candidates/collezione-italia.pngA room_renders_candidates/hermes.pngA room_renders_candidates/paul-montgomery-all-products.pngA room_renders_candidates/paul-montgomery-murals.pngA room_renders_candidates/phillipe-romano-faux-leathers-upholstery-more.png
Diff
commit 9801c11dc6f3de53120a69a23081865192a813ca
Author: steve <steve@designerwallcoverings.com>
Date: Thu Jul 30 10:53:08 2026 -0700
5 original settlement-clear banner candidates for logo-only collections (Steve to approve before landing)
---
candidates_contact_sheet.png | Bin 0 -> 827127 bytes
gen_candidates.py | 36 +++++++++++++++++++++
room_renders_candidates/collezione-italia.png | Bin 0 -> 1895998 bytes
room_renders_candidates/hermes.png | Bin 0 -> 1718607 bytes
.../paul-montgomery-all-products.png | Bin 0 -> 1671180 bytes
room_renders_candidates/paul-montgomery-murals.png | Bin 0 -> 1754469 bytes
...illipe-romano-faux-leathers-upholstery-more.png | Bin 0 -> 1829735 bytes
7 files changed, 36 insertions(+)
diff --git a/candidates_contact_sheet.png b/candidates_contact_sheet.png
new file mode 100644
index 0000000..833821d
Binary files /dev/null and b/candidates_contact_sheet.png differ
diff --git a/gen_candidates.py b/gen_candidates.py
new file mode 100644
index 0000000..c301cfb
--- /dev/null
+++ b/gen_candidates.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python3
+"""Generate 5 ORIGINAL text-to-image room-render candidates (no external image copied)
+for the logo-only collections. Settlement-safe prompts. NOT auto-landed."""
+import json, os, base64, time, urllib.request
+HERE = os.path.dirname(os.path.abspath(__file__))
+GKEY = os.environ["GEMINI_API_KEY"]; MODEL = "gemini-2.5-flash-image"
+OUT = os.path.join(HERE, "room_renders_candidates"); os.makedirs(OUT, exist_ok=True)
+
+BASE = ("Photorealistic luxury interior photograph, wide 16:9 banner composition, natural lighting, "
+ "tasteful furniture, magazine editorial quality, no text, no watermark, no brand logos, no monograms. ")
+PROMPTS = {
+ "paul-montgomery-all-products": BASE + "The main wall features an elegant hand-painted decorative mural in soft muted blues and creams — an abstract architectural landscape scene. NO birds, NO butterflies, NO tropical palm or banana foliage. Refined living room.",
+ "paul-montgomery-murals": BASE + "The main wall is a large hand-painted panoramic mural in gentle sepia and sage tones depicting a serene abstract garden-architecture scene. NO birds, NO butterflies, NO tropical palm or banana leaves. Elegant dining room.",
+ "phillipe-romano-faux-leathers-upholstery-more": BASE + "The main wall is clad in rich embossed faux-leather wallcovering with a subtle pebbled texture in warm cognac tone. Modern room with leather and brushed-brass accents.",
+ "collezione-italia": BASE + "The main wall is an ornate tone-on-tone Italian damask wallcovering in soft champagne and pearl. Opulent Milanese-glamour room with marble and gilt accents.",
+ "hermes": BASE + "The main wall is an understated geometric textured wallcovering in warm neutral taupe. Sophisticated refined room with leather and walnut accents, quiet luxury.",
+}
+
+def gen(handle, prompt):
+ body = json.dumps({"contents": [{"parts": [{"text": prompt}]}],
+ "generationConfig": {"imageConfig": {"aspectRatio": "16:9"}}}).encode()
+ url = f"https://generativelanguage.googleapis.com/v1beta/models/{MODEL}:generateContent?key={GKEY}"
+ res = json.load(urllib.request.urlopen(urllib.request.Request(url, data=body, headers={"Content-Type": "application/json"}), timeout=120))
+ 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 out
+ return None
+
+for h, p in PROMPTS.items():
+ try:
+ out = gen(h, p); print(f" {'OK ' if out else 'FAIL'} {h}")
+ except Exception as e:
+ print(f" ERR {h}: {str(e)[:90]}")
+ time.sleep(1.2)
+print("candidates in", OUT)
diff --git a/room_renders_candidates/collezione-italia.png b/room_renders_candidates/collezione-italia.png
new file mode 100644
index 0000000..b8b2311
Binary files /dev/null and b/room_renders_candidates/collezione-italia.png differ
diff --git a/room_renders_candidates/hermes.png b/room_renders_candidates/hermes.png
new file mode 100644
index 0000000..4e67e33
Binary files /dev/null and b/room_renders_candidates/hermes.png differ
diff --git a/room_renders_candidates/paul-montgomery-all-products.png b/room_renders_candidates/paul-montgomery-all-products.png
new file mode 100644
index 0000000..3ae551b
Binary files /dev/null and b/room_renders_candidates/paul-montgomery-all-products.png differ
diff --git a/room_renders_candidates/paul-montgomery-murals.png b/room_renders_candidates/paul-montgomery-murals.png
new file mode 100644
index 0000000..4266650
Binary files /dev/null and b/room_renders_candidates/paul-montgomery-murals.png differ
diff --git a/room_renders_candidates/phillipe-romano-faux-leathers-upholstery-more.png b/room_renders_candidates/phillipe-romano-faux-leathers-upholstery-more.png
new file mode 100644
index 0000000..54da4f4
Binary files /dev/null and b/room_renders_candidates/phillipe-romano-faux-leathers-upholstery-more.png differ
← c04b88d created 6 collection 301 redirects via content token (dedup
·
back to Dw Collection Banner Audit
·
landed 5 original banners for logo-only collections live; 24 51ba7b2 →