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