Send the live cast to the resolver, not cosine's top-k

The gallery gemma chose from was the union of the tracklet members' cosine
shortlists. Cosine cannot separate people on this data, so a metric that
cannot tell two men apart decided who gemma was allowed to consider, and the
right character was often not on the list.

The gallery is now the live cast: gender-compatible rows from
get_known_characters, named first, capped, re-read per tracklet so a minted
character is visible to later ones. Every crop reaches the resolver now,
including one whose cosine top-k was empty; those used to be dropped.

worker_vision spreads reference images across a budget instead of sending 3
per candidate, so a 9-character cast costs 9 images and not 27.

Ran on a GPU, 19:44-19:52 UTC. The lead's assignments drop from 36 to 16 and
14 of the 16 are him; the other two are art inside a panel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 00:15:52 +04:00
parent de7e34bc0f
commit a386e9d910
5 changed files with 133 additions and 17 deletions
+20 -15
View File
@@ -9,28 +9,33 @@ The chapter runs end to end. The A/V sync defect is fixed and `chapter.mp4` is r
against audio 364.122s at `25/1`.
Job `778297bc-e7ce-439d-91b5-8a027060d17f`, chapter `7c944dd4-e972-42c7-ba60-9f6939548e80`, 116 panels.
Three GPU cycles ran on 2026-08-12, the last 18:07-18:13 UTC on a reset registry. The job is `running` and
Four GPU cycles ran on 2026-08-12, the last 19:44-19:52 UTC on a reset registry. The job is `running` and
parked at `dialogue waiting`. Everything from `dialogue` down is cleared and stale. All 9 workers are
current.
Eight changes are proven on real panels. The fourth session contributed four. The fifth added the
roster-hint removal, merge-chain flattening and `name_claims` reset. This session added bbox corner
ordering.
Eleven changes are proven on real panels. This session added bbox corner ordering. It then deployed and ran
the tracklet span cap, the shared `GENERIC` tokenizer and the cast gallery together.
**The registry is not trustworthy.** `LIM SEONHO`'s 36 assignments cover at least six different men, a
chibi and a cat, confirmed by eye in the review UI. 22 of those are native resolves and 14 came from
reconcile merges, so both mechanisms are wrong.
**The registry is now roughly right and is worth reading.** Checked by eye, crop by crop, confirmed by the
user. The lead holds 16 assignments. 14 are him and 2 are art inside a panel, the photograph at `order 17`
and the chibi at `order 20`. `character_2b1b12a1` holds 13, all of them her, and she is a main character
the registry never named. `character_f0d4e901` holds 9, of which 7 are her and 2 are `2b1b12a1`. On the
18:07 run the lead alone held 36, covering six men, a chibi and a cat.
Two fixes are written and tested but NOT deployed and NOT run on a GPU, both in the orchestrator repo:
So every wrong crop on the lead is one defect, item 7, and not a linker failure. The registry's other
weakness is that its biggest character has no name.
- `link_tracklets` caps a tracklet's panel span (`decisions/identity-bbox.md#tracklet-span-cap`)
- one shared appearance tokenizer drops generic words (`decisions/identity-bbox.md#generic-tokens`)
| metric | 18:07 run | 19:44 run |
| --- | --- | --- |
| detections | 119 | 119 |
| assignments | 60 | 60 |
| coverage | 57% | 50% |
| tracklets over crops | 12 / 64 | 33 / 72 |
| lead's assignments | 36 | 16 |
| characters after reconcile | 18 | 14 |
On the same 22 crops, 3 tracklets at worst span 30 becomes 9 at worst span 8.
Coverage was 57% on the 18:07 run, and it is the `has_face` gate and nothing else. All 68 assignments
landed on face-bearing detections, so recall among them is 68 of 71. Degenerate boxes are 0 in 119 and the
merge chain is flat with 22 `merged_from` stamps.
Coverage fell because gemma now clears 12 crops instead of naming them from a shortlist that did not
contain the right person. Coverage is still the `has_face` gate plus those refusals, and nothing else.
## Next