A 17-agent bench classified 103 models across the 125GB civit library and ran 12 live LoRA
tests. Headline: NO LoRA BEATS THE PLAIN BASELINE — all 12 came back unusable, so the
recommended recipe for both tiers contains zero LoRAs. The failure is at the checkpoint, not
the LoRAs: comfyui_sd is the only farm operator that loads a LoRA and it can reach exactly one
checkpoint, a person-photoreal SD1.5 merge that draws a woman for any clothing noun no matter
how hard you negative-prompt it. flux_local, the lane that actually works, has no lora param
at all. The two lanes are disjoint, so no LoRA here got a fair garment evaluation.
Real bug found and fixed: the farm IGNORES ?parent_job=. A bogus id still returns the entire
asset table (measured: 2,578 rows, 34 distinct parents), so mb_outputs()[0] was only ever
correct because the table happens to come back newest-first — two jobs in flight would
download each other's images, which is exactly what happened to two agents in the bench.
Now filtered client-side.
Measured changes:
· Default backend CF -> flux_local klein-4b. At matched prompt and seed, klein holds corduroy
wale across the garment where CF flux-1-schnell flattens it to smooth canvas. CF stays
selectable: ~2s and never queues behind the farm's serial GPU lane.
· Seeds are reproducible. /api/gen used time.time()%99991 so nothing could ever be reproduced,
and /api/doll/gen inherited the operator default seed=42 so a phrase produced a byte-identical
image forever and reroll did nothing. Both now hash the phrase + a variant counter; rerolling
is bumping variant.
· The painterly white doll2d template that actually shipped the 441 sprites wasn't in this repo
at all — only djsim's later green variant. Added, and made the default; green is now the
documented escape hatch for plaid and busy patterns, since the bench measured klein on pure
white keying 7/7 flood seeds on both a dark solid and a busy multicolour knit.
· Doll generation moved 1024 -> 704 to match the canvas, so we stop downscaling before the key
and softening the edges the keyer depends on.
· Templates hoisted to one registry; /api/gen returns the resolved prompt and seed and the UI
shows them under the preview.
· Local keyer warns loudly: flat3d product shots come back on studio grey with a drop shadow
(border 215-244, zero pixels >=250), which only partially seeds the >232 gate. RMBG is
semantic and unaffected.
Verified: seeds deterministic and variant-sensitive, templates resolve view/year, and a live
klein-4b generation produced a flat-lay corduroy jacket with legible wale and no person.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>