[object Object]

← back to Wallco Ai

room mockups: fix framed-panel defect — clean full-wall template + quad

fff1c63f8a457c5994e6b67d30eee9616e7fa40b · 2026-05-30 12:30:48 -0700 · Steve Abrams

The 7,500 'failed' room renders were NOT live Gemini calls — they are free PIL
composites (pil-room-composite.py) pasting each pattern into a small centered
rectangle of a BAD blank template that had a framed white panel surrounded by
bare stone wall. Result: every render looked like a framed picture hung on the
wall, not wallpaper covering the wall.

Fix (no per-render cost): replace _template_blank_living_room.png with a clean
contemporary room whose feature wall fills the frame edge to edge, and set
WALL_QUAD to bleed off the left/right/top edges down to the furniture line. The
pattern now reads as the wall surface itself. Old framed template kept as
_template_blank_living_room.FRAMED-BAK.png. Validated with frame-qa.mjs.

Files touched

Diff

commit fff1c63f8a457c5994e6b67d30eee9616e7fa40b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat May 30 12:30:48 2026 -0700

    room mockups: fix framed-panel defect — clean full-wall template + quad
    
    The 7,500 'failed' room renders were NOT live Gemini calls — they are free PIL
    composites (pil-room-composite.py) pasting each pattern into a small centered
    rectangle of a BAD blank template that had a framed white panel surrounded by
    bare stone wall. Result: every render looked like a framed picture hung on the
    wall, not wallpaper covering the wall.
    
    Fix (no per-render cost): replace _template_blank_living_room.png with a clean
    contemporary room whose feature wall fills the frame edge to edge, and set
    WALL_QUAD to bleed off the left/right/top edges down to the furniture line. The
    pattern now reads as the wall surface itself. Old framed template kept as
    _template_blank_living_room.FRAMED-BAK.png. Validated with frame-qa.mjs.
---
 scripts/pil-room-composite.py | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/scripts/pil-room-composite.py b/scripts/pil-room-composite.py
index a690b8e..6273b34 100644
--- a/scripts/pil-room-composite.py
+++ b/scripts/pil-room-composite.py
@@ -25,10 +25,17 @@ ROOT = Path(__file__).resolve().parents[1]
 ROOMS_DIR = ROOT / 'data' / 'rooms'
 DESIGNS_JSON = ROOT / 'data' / 'designs.json'
 
-BASE_TEMPLATE = ROOMS_DIR / '_template_blank_living_room.png'   # cv2-prepared blank wall
-# Approx wall quad (visual inspection of the 53872 living room). The mock is
-# centered, walls visible. Order: TL, TR, BR, BL in pixel coords on 1024x1024.
-WALL_QUAD = [(150, 95), (875, 95), (855, 690), (170, 690)]
+BASE_TEMPLATE = ROOMS_DIR / '_template_blank_living_room.png'   # clean full-wall blank room
+# WALL_QUAD (2026-05-30 fix): the OLD template + quad pasted the pattern into a
+# small centered rectangle surrounded by bare stone wall — i.e. the "framed
+# picture on the wall" defect Steve flagged across all 7,500 renders. The new
+# template (_template_blank_living_room.png) is a clean contemporary room whose
+# feature wall fills the frame edge to edge; this quad bleeds OFF the left/right/
+# top image edges and runs down to the furniture line so the pattern reads as the
+# wall surface itself (no border, no bare-wall margin). Validated with
+# scripts/frame-qa.mjs (room-setting-app) — full-wall PASS, never framed.
+# Order: TL, TR, BR, BL in pixel coords on 1024x1024.
+WALL_QUAD = [(-15, 36), (1039, 36), (1039, 700), (-15, 700)]
 # Optional: a brightness multiplier to make the pasted pattern feel like wall
 # light (the upstream renderer adds soft shadows + lighting falloff; we just
 # darken slightly so it doesn't look pasted).

← b47680d Fix /designs grid: accept ?category= as alias for ?cat=  ·  back to Wallco Ai  ·  room mockups: tune template to full-width-credenza + quad bo 8c09397 →