From 2d9ba91a7b1abae4c3f84b7360aa95a4b0b38ae7 Mon Sep 17 00:00:00 2001 From: Melbar Date: Sat, 2 May 2026 18:25:16 +0200 Subject: [PATCH] Probe broader long-scene action windows --- README.md | 4 ++++ src/llm/vision_cache.py | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 098d57e..20f25f2 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,10 @@ Vision-Modell stammen. Bei langen semantisch passenden Source-Szenen beschreibt der Vision-Layer zusätzlich wenige lokale Zeitfenster und cached auch diese Fenster, damit eine grob ähnliche Szene nicht automatisch mit dem falschen Bewegungs- oder Dialogmoment gleichgesetzt wird. +Dieser lokale Fenster-Probe ist bewusst breiter als die finale Seed-Auswahl: +Eine lange Dialogszene kann in der Gesamtbeschreibung nur als Gespräch +erscheinen, aber an einer späteren Stelle trotzdem genau die gesuchte +Aktionsphase enthalten. Nach dem CV-Match kann derselbe Vision-Layer den konkreten finalen Source- Zeitbereich nochmals gegen den Trailer-Beat prüfen. Starke Aktionsphasen wie Annäherung, Kuss/Stirnkontakt, Handbewegungen oder Schneiden müssen dann auch diff --git a/src/llm/vision_cache.py b/src/llm/vision_cache.py index 2ac449c..ee80232 100644 --- a/src/llm/vision_cache.py +++ b/src/llm/vision_cache.py @@ -363,7 +363,11 @@ def _add_window_seed_descriptions( if budget[0] <= 0: return points - scenes_to_probe = ranked[: max(1, cfg.vision.max_seed_scenes)] + probe_limit = max( + cfg.vision.max_seed_scenes * 4, + cfg.vision.scene_candidate_top_k // 2, + ) + scenes_to_probe = ranked[: max(1, min(len(ranked), probe_limit))] windows_per_scene = max(1, min(6, cfg.vision.seed_points_per_scene // 2)) for _, scene, _ in scenes_to_probe: if budget[0] <= 0: