[object Object]

← back to Wallco Ai

TODO: ControlNet redo sample landed (1 PASS, 2 near-miss WARN, 2 fail); note un-deletable orphan rows + DB no-replica-identity constraint

b9e1b4d0d650319897631fe14aa139d756db2db9 · 2026-06-11 16:34:47 -0700 · Steve Abrams

Files touched

Diff

commit b9e1b4d0d650319897631fe14aa139d756db2db9
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jun 11 16:34:47 2026 -0700

    TODO: ControlNet redo sample landed (1 PASS, 2 near-miss WARN, 2 fail); note un-deletable orphan rows + DB no-replica-identity constraint
---
 TODO.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/TODO.md b/TODO.md
index 830521e..e283018 100644
--- a/TODO.md
+++ b/TODO.md
@@ -103,3 +103,17 @@ up unchecked rows automatically.
 - [x] SANITY SAMPLE generated: 5 heterogeneous roots → children #58050(2662/grasscloth WARN), #58051(54266/raffia WARN), #58052(54076/linen FAIL), #58053(54610/sisal WARN), #58054(53896/paperweave WARN). NO smear on any (raw ComfyUI bytes, no numpy touch).
 - [ ] **STEVE: eyeball the sample before scaling.** Findings: (1) NO smudge — fixed. (2) Best two (#58053 elephants, #58054 red panda) NAIL the open/clean/sparse brief, subject preserved. (3) Two drifted to ABSTRACT (#58050 giraffe→waves, #58051 frog→leaf-blades) — SDXL lost subject under the heavy open+flat+ground prompt. (4) Natural-FIBRE TEXTURE did NOT render — SDXL paints a flat solid ground, not woven grasscloth/linen; real fibre needs compositing onto a real DW natural-material SKU (elements/seamless-bg-swap path), NOT prompting SDXL. (5) Edge gate not all-PASS: literal line_diff near-zero (native wrap clean) but the 2x2 tiled cross-seam flags real subject-sliced-at-seam structure.
 - [ ] **NEXT (pending Steve OK on direction):** (a) add img2img/ref-anchor or stronger subject-weight to stop abstract drift; (b) composite onto real natural-ground SKU for true fibre texture instead of prompting it; (c) re-roll the survivors' approach across the rest. Do NOT scale the current prompt as-is.
+
+## REDO (2026-06-11, Steve "redo them") — sample BLOCKED on missing anchor
+- [x] Built scripts/make-fibre-ground.py — deterministic SEAMLESS natural-fibre swatch generator (grasscloth/raffia/linen/sisal/paperweave), wraps by construction (edge ΔE 0.00). FIXES the real-fibre-ground gap: composite of root onto these swatches reads as GENUINE woven fibre (validated on #54266→raffia). No local DW fibre swatch library existed; this is it.
+- [x] Built scripts/seamless-bg-swap-file.py — file-input wrapper around seamless-bg-swap.py so the deterministic real-fibre composite runs on a fresh motif PNG, not just a DB id.
+- [x] Built scripts/native-seamless-redo.py — img2img native-seamless orchestrator (VAEEncode root + circular-pad, subject-anchored from root latent) → real-fibre composite. Sacred roots, is_published=FALSE.
+- [x] PROVED the blocker: txt2img circular-pad PASSES edges cleanly (3.18/2.18). But (a) txt2img has NO subject anchor → drift; (b) img2img anchors subject but breaks native-seamless to WARN AND can't open the busy root. NO ControlNet model + NO IPAdapter on Mac1 ComfyUI = no anchor usable at denoise-1.0 (the only strength that PASSES seamless).
+- [x] **STEVE — BLOCKED, decision needed:** redo sample CANNOT hit all 4 goals (subject survives + open + real fibre + native-seamless PASS) with current Mac1 ComfyUI nodes. MINIMUM MISSING = an SDXL canny/lineart ControlNet model on Mac1 (~2.5GB download to Mac1, Steve-gated). With it: txt2img denoise-1.0 (PASSES seamless) steered by root edge-map (preserves subject) + open prompt (controls density) → all 4. The real-fibre composite half is DONE and validated. Probes 58056/58057 removed (FALSE + user_removed). Did NOT ship another drifted/WARN sample.
+
+## CONTROLNET REDO (2026-06-11, Steve approved CN download) — sample landed, MIXED result
+- [x] ControlNet installed + verified: `controlnet-canny-sdxl-1.0.safetensors` (2.30GB / 2,502,139,104 bytes) at `/Users/steveabramsdesignsgmail.com/Projects/ComfyUI/models/controlnet/` on Mac1. ComfyUI 0.21.1 lists it in /object_info/ControlNetLoader — no restart needed. Native Canny preprocessor node present.
+- [x] Built scripts/controlnet-anchored-redo.py — DTD-verdict (3/3): canny CN fed a CROPPED single focal motif of the root on a blank canvas (not the full busy root) at strength 0.5, end 0.55, so subject identity survives while layout opens. Circular-pad SeamlessTile+MakeCircularVAE txt2img denoise 1.0 = zero smear. Real-fibre composite. Sacred roots, is_published/user_removed FALSE, parent=root, explicit id (no seq USAGE), image_url inline (table in no-replica-identity publication → UPDATE/DELETE error). Commit on master.
+- [x] 5-root sanity sample landed (children #10000011-15, ALL is_published=FALSE, curator-mode): edge line_diff small everywhere (ZERO smear), cross-seam is the WARN driver (motif copies touch the tile boundary). 10000014 elephant=PASS both axes (cs ~1). 10000011 giraffe + 10000015 panda = strong visuals (subject recovered, open even, real fibre) but WARN from thin line-art crossing the seam. 10000012 frog (49.8% cov, busy/abstract) + 10000013 orangutan (real white horizontal seam + fragmented) = FAIL the brief.
+- [ ] **STEVE: eyeball /tmp/cnar_contact_5.png + per-root tiles.** 1 clean PASS, 2 strong near-miss WARN, 2 fails. The architecture WORKS (elephant proves all-four-goals are co-achievable). To chase PASS on the other 4 I can add a seam-retry loop (re-roll seed until motif-only passes cross-seam) + tighter-crop/smaller-motif so copies stay off edges — but each re-run INSERTS new rows and CANNOT delete the prior ones (all_designs has no replica identity/PK in dw_unified_pub, so dw_admin can only INSERT). Decision is yours: accept near-miss WARNs, or direct a re-roll (which roots / grounds / tighter-crop). Did NOT auto-double the orphan rows before your eyeball.
+- [ ] **DB hygiene note (Steve):** all_designs in dw_unified_pub has NO replica identity + NO primary key → no UPDATE/DELETE possible for dw_admin. Orphan curator rows 10000010-15 (is_published=FALSE, user_removed=FALSE, not in live catalog, harmless) are un-removable by me. If you want them cleaned, that's a Steve-gated ALTER TABLE / superuser delete.

← c63a1ff Add controlnet-anchored-redo.py: SDXL canny-CN anchored nati  ·  back to Wallco Ai  ·  Add controlnet-anchored-reroll-2: seam-retry loop for the tw 9ec758e →