From b3784d51d8c884f88cd19ac99005a8d5672b66e5 Mon Sep 17 00:00:00 2001 From: Jedrzej Kosinski Date: Thu, 30 Nov 2023 18:23:31 -0600 Subject: [PATCH] Added clone() to KeyframePartGroup to prevent keyframe bleedover between subsequent Queue prompts --- keyframe/interface.py | 6 ++++++ keyframe/nodes.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/keyframe/interface.py b/keyframe/interface.py index 7631498..f111f10 100644 --- a/keyframe/interface.py +++ b/keyframe/interface.py @@ -37,6 +37,12 @@ class KeyframePartGroup: def is_empty(self) -> bool: return len(self.keyframes) == 0 + + def clone(self) -> 'KeyframePartGroup': + cloned = KeyframePartGroup() + for k in self.keyframes: + cloned.add(k) + return cloned @dataclass diff --git a/keyframe/nodes.py b/keyframe/nodes.py index 7eb14a3..2fc450c 100644 --- a/keyframe/nodes.py +++ b/keyframe/nodes.py @@ -34,6 +34,7 @@ class KeyframePartNode: def load_keyframe_part(self, image, batch_index, denoise, part=None): if not part: part = KeyframePartGroup() + part = part.clone() keyframe = KeyframePart(batch_index, image, denoise) part.add(keyframe) return (part,) @@ -75,6 +76,7 @@ class KeyframeInterpolationPartNode: if not part: part = KeyframePartGroup() + part = part.clone() current_group = KeyframePartGroup() steps = batch_index_to - batch_index_from