← 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
M scripts/generate_designs.js
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 →