Per-shot match for beats with internal cuts; protect cache on --beat runs

Two issues fixed:

1. Beats with internal hard cuts (e.g. man-shot then back to woman) were
   being approximated by a single source clip because the multi-segment
   path only triggered for fade-bounded multi-island beats. Added
   _reference_shot_segments(), which returns the shot ranges by splitting
   each visible island at detected internal cuts. The multi-island gate in
   cmd_match and the per-island loop in _match_unmatched_visual_segments
   now use shots, so any beat with cuts > 0 produces one MatchSegment per
   shot. Each shot is matched independently against the source movie.

   Effect on Beat 10: 1 segment (3.32 s in scene 558) -> 3 segments
   covering shots 0-0.88 s, 0.88-2.64 s, 2.64-3.32 s in scenes 554, 559,
   556 respectively, with the previously missing "back to woman" cut now
   correctly placed in scene 556.

2. Targeted --beat N runs were silently dropping cache entries for other
   beats whose old scores no longer pass current quality gates
   (_normalize_cached_results runs at load time and removes them). The
   save path now re-loads the raw cache from disk and writes back every
   non-targeted beat verbatim, so a per-beat run can never regress
   another beat's stored match.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Melbar
2026-05-05 00:06:39 +02:00
parent 2a3840e528
commit cc27208d2a
3 changed files with 68 additions and 11 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
# Cutter-Report — manuelles Nachschneiden
Stand: 2026-05-04
Stand: 2026-05-05
- **Trailer**: `BehindTheRedDoor_Trailer_REFERENCE.mp4` @ 25.000 fps
- **Source** : `BehindTheRedDoor_FTR_1080P_2398_Fixed.mp4` @ 23.976 fps
@@ -33,7 +33,7 @@ Bilder sind base64-eingebettet (kein toter Link). Für Video-Vorschau siehe `CUT
| 7 | 00:00:29:06-00:00:31:17 | 01:20:10:10-01:20:12:14 | 0.497 | ? | man appears to be engaged in conversation |
| 8 | 00:00:31:17-00:00:33:16 | 00:00:51:07-00:00:53:01 | 0.620 | ? | static or slow drifting |
| 9 | 00:00:33:16-00:00:36:19 | 01:20:29:03-01:20:32:06 | 0.674 | OK | speaking, transitioning from closed eyes to open mouth and focused gaze |
| 10 | 00:00:36:19-00:00:40:02 | 01:20:35:16-01:20:39:00 | 0.560 | ? | conversation |
| 10 | 00:00:36:19-00:00:40:02 | 01:20:13:13-01:20:14:11 | 0.660 | ? | conversation |
| 11 | 00:00:40:02-00:00:42:03 | 01:20:40:18-01:20:42:18 | 0.636 | ? | static talking head with slight facial expression changes |
| 12 | 00:00:42:03-00:00:50:06 | 01:14:26:06-01:14:29:18 | 0.701 | OK | static profile shot transitioning to black/darkness |
| 13 | 00:00:50:06-00:00:53:21 | 00:43:19:13-00:43:23:04 | 0.636 | ? | static conversation; woman on right is standing and holding a cup |
@@ -164,7 +164,7 @@ Bilder sind base64-eingebettet (kein toter Link). Für Video-Vorschau siehe `CUT
### Beat 10 — Status `?`
- **Trailer**: 00:00:36:19 00:00:40:02
- **Source** : 01:20:35:16 01:20:39:00 (scene 558, score 0.560)
- **Source** : 01:20:13:13 01:20:14:11 (scene 554, score 0.660)
- **Phase** : conversation
- **Bild** : alternating close-ups and a medium two-shot, indoor living room with large windows showing a blue exterior landscape