From 0d909f4b185c8ddcf7591a2706cc8417c975e21c Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Tue, 16 Jun 2026 20:18:21 +0300 Subject: [PATCH] Fix: single-transition 'silent' split leaked the trigger word into conditioning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- conditioning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conditioning.py b/conditioning.py index a10b4f62..384a9ceb 100644 --- a/conditioning.py +++ b/conditioning.py @@ -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)