Oliver put two pictures side by side — z_rufall3 as the fam_ru sheet drew it, and z_rufall3 as it shipped — and they were not even close. The sheets were never the problem: every one of the eleven family rolls came back FINE, and the pipeline pixelated seven of them on the way down. _fine.block_size() scores b x b blocks by uniformity, and it scored ALL of them. key() zeroes the background, a zeroed block is uniform at every b, and on a 9-row family sheet the background is ~85% of the bounding box — so the detector's 0.82 bar was cleared by the background alone, at any block size it tried. Measured on the ru sheet: 0.0% of ink blocks uniform at b=11, 99.2% of empty ones, overall 0.821. Detected block: 11. _zsheet then honestly snapped 428 px figures down to 39 art px and scaled them back up — the pixelation was MANUFACTURED there, not drawn. br survived at 0.775 (its ink coverage is 4 points higher) and the whole per-family chunkiness table — br fine, ch/ru/sh/st at 6 px blocks — was ink-coverage noise around one threshold. The fix is one line where every caller routes through: background-only blocks get no vote. Then every family re-cut from the sheets already on disk — no new rolls, no tokens — and all eleven came down at art block 1. br's re-cut is the regression check: byte-identical result. Dimensions drift at most 3 px, so nothing on court changes size. SPRV 112 -> 113 so phones drop the year-long cache on the chunky art. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 KiB
196x303px
27 KiB
196x303px