tts-voice-creator-clone-and.../routes
mARTin-B78 55f147d7a7
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
fix(magazine): derive figure boundaries from the page render
A vision OCR engine grounds a figure far less precisely than it
transcribes one. Over all 138 figure regions of a 204-page issue the
transcribed contents were right while the boxes were routinely offset,
undersized, or sitting on the neighbouring text column -- page 23's card
grid was reported at x 0.24-0.54 where the graphic runs 0.41-0.95.

snap_visual_bboxes() reduces the page render to an ink-coverage grid,
seeds a connected-component search with the engine's box, and re-joins
tiles a gutter apart so a card grid comes back as one figure. Text
blocks are excluded from the mask, which is what stops a figure
swallowing the column beside it. A candidate must be solidly inked or
framed on nearly all of its rows and columns (admitting a white-interior
screenshot), may not shrink below 30% of the seed, and reverts when two
figures land on the same graphic; anything else keeps the box it had.

Runs before the figure crop in both OCR paths, so the images shown
during playback are framed correctly too. Replaces refine_picture_
bounds(), which only recognised coloured panels and had no text fence.

Also adds "Fix figure boundaries" in review and POST
/api/magazine/{id}/figures/refine behind it, so an issue ingested before
this pass can be corrected without re-running OCR. Verified live against
c't KI Wissen 2026: 78 of 138 boxes corrected, the rest declined.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 10:17:00 +02:00
..
__init__.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
admin.py Release v1.22.2 2026-09-03 16:12:02 +02:00
characters.py feat: validate canonical image asset digests 2026-09-04 09:53:50 +02:00
conversation.py fix: recover character sheet requests from gateway 405 2026-09-09 06:49:52 +02:00
docker.py feat: add OCR engine profiles 2026-09-04 22:29:11 +02:00
history.py feat: record protected generation history 2026-09-04 08:07:42 +02:00
jobs.py feat: expand resource diagnostics 2026-09-04 10:42:08 +02:00
library.py security: validate upload filenames and archive paths 2026-09-04 08:04:26 +02:00
magazine.py fix(magazine): derive figure boundaries from the page render 2026-09-12 10:17:00 +02:00
reader.py Refine character sheets and live output UI 2026-07-09 19:47:16 +02:00
recovery.py security: harden P0 boundaries and recovery 2026-09-04 07:33:41 +02:00
rehearsals_db.py Release v1.22.3 2026-09-04 07:28:26 +02:00
settings.py fix: prevent caching of API key handoff 2026-09-04 08:52:46 +02:00
sources.py perf: bound fish audio response cache 2026-09-04 07:53:17 +02:00
stt.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00
tts.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00