[object Object]

← back to Wallco Ai

Revert seamless guard to TILE_CATEGORIES — mirror genComfy tileable gate

0b10f3659f0522ed72a46399b98129ce097a695e · 2026-05-26 10:03:18 -0700 · Steve Abrams

genComfy applies the SeamlessTile+MakeCircularVAE patch ONLY for
TILE_CATEGORIES (line 324 tileable flag). Routing figure-on-ground categories
(drunk-*, designer-bugs) to comfy via the kind=='seamless_tile' broadening
gave them no seamless patch (still tileable=false) — zero benefit plus a Mac1
dependency. Worse, circular padding for figure-on-ground would bisect the
figure at the seam, which is why the author excluded them on purpose. The
backend-override gate must equal genComfy's tileable gate: exactly
TILE_CATEGORIES.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 0b10f3659f0522ed72a46399b98129ce097a695e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 26 10:03:18 2026 -0700

    Revert seamless guard to TILE_CATEGORIES — mirror genComfy tileable gate
    
    genComfy applies the SeamlessTile+MakeCircularVAE patch ONLY for
    TILE_CATEGORIES (line 324 tileable flag). Routing figure-on-ground categories
    (drunk-*, designer-bugs) to comfy via the kind=='seamless_tile' broadening
    gave them no seamless patch (still tileable=false) — zero benefit plus a Mac1
    dependency. Worse, circular padding for figure-on-ground would bisect the
    figure at the seam, which is why the author excluded them on purpose. The
    backend-override gate must equal genComfy's tileable gate: exactly
    TILE_CATEGORIES.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 scripts/generate_designs.js | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/scripts/generate_designs.js b/scripts/generate_designs.js
index 9442ee0..ac9235e 100644
--- a/scripts/generate_designs.js
+++ b/scripts/generate_designs.js
@@ -448,20 +448,19 @@ function genReplicateFlux(prompt, seed, outPath) {
 }
 
 function generate(prompt, seed, outPath, meta) {
-  // 2026-05-26 — Any seamless tile must wrap edge-to-edge, which only the comfy
-  // backend delivers: it patches the UNet+VAE Conv2d to circular padding
-  // (SeamlessTile + MakeCircularVAE). replicate/flux/stub ship padding='zeros'
-  // → guaranteed top-bottom edge-wrap FAIL that no prompt can fix.
+  // 2026-05-26 — Dense edge-to-edge repeats (TILE_CATEGORIES) only render
+  // seamlessly on the comfy backend, which patches the UNet+VAE Conv2d to
+  // circular padding (SeamlessTile + MakeCircularVAE). replicate/flux/stub ship
+  // padding='zeros' → guaranteed top-bottom edge-wrap FAIL that no prompt fixes.
   // Validated: replicate damask tb=15-65 ΔE FAIL vs comfy damask tb=2.14 PASS.
-  // Gate on kind==='seamless_tile' (every tile the cron emits) plus the
-  // TILE_CATEGORIES set as a belt-and-suspenders, so the cron (which defaults
-  // to replicate) can't silently produce broken tile inventory — drunk-*
-  // silhouettes included. Murals (kind==='mural') are single scenes that don't
-  // tile, so they keep whatever GEN_BACKEND is set.
+  // Force comfy for exactly TILE_CATEGORIES regardless of GEN_BACKEND so the
+  // cron (which defaults to replicate) can't silently regenerate broken tile
+  // inventory. This gate MUST mirror genComfy's `tileable` flag — figure-on-
+  // ground categories (drunk-*, designer-bugs) are deliberately NOT here:
+  // circular padding would wrap the figure around the seam (bisected monkey),
+  // and comfy gives them no benefit, so they keep GEN_BACKEND.
   let backend = BACKEND;
-  const needsCircularPadding = meta &&
-    (meta.kind === 'seamless_tile' || TILE_CATEGORIES.has(meta.category));
-  if (needsCircularPadding && backend !== 'comfy') {
+  if (meta && TILE_CATEGORIES.has(meta.category) && backend !== 'comfy') {
     backend = 'comfy';
   }
   switch (backend) {

← 9ca0509 edge_seam_heal: combined mids+edges offset-heal for the edge  ·  back to Wallco Ai  ·  TODO: edge-heal scaled 630/630 (~72% PASS, ~454 promotable) f168a77 →