Fix: single-transition 'silent' split leaked the trigger word into conditioning

With exactly one transition trigger in the prompt (one "cut", one "qcut", etc.),
split_scenes produced anchor + 1 scene — so len(canon_scenes) == 1. The
previous guard `> 1` skipped the clean-text encode path, leaving
output_conditioning built from the raw prompt_to_encode which still contained
the trigger word. The CLIP encoder received "cut" and the model generated it
in audio.

Changing to `>= 1` ensures any split with at least one clean scene uses the
properly stripped scene text, even when there's only one scene to encode.
The chain sampler receiving a single conditioning entry is fine — it just
renders a single pass with no chaining.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
digital-garbage
2026-06-16 20:18:21 +03:00
co-authored by Claude Sonnet 4.6
parent ec61f169fe
commit 0d909f4b18
+1 -1
View File
@@ -11928,7 +11928,7 @@ class FunPackVideoRefinerV2(FunPackVideoRefiner):
canonical = split_scenes(_raw_positive_prompt, placement=split_transition_placement)
canon_scenes = [s for s in (canonical.get("scenes", []) or [])
if (s.get("expanded") or "").strip()]
if len(canon_scenes) > 1:
if len(canon_scenes) >= 1:
segments = [(canonical.get("anchor_expanded", ""), None)] + \
[(s.get("expanded", ""), s.get("effect")) for s in canon_scenes]
split_scene_texts, split_scene_effects = self._v2_transition_scene_texts(segments)