From 400b880f63494142ee3fad2452a3d132b97d0e30 Mon Sep 17 00:00:00 2001 From: j Date: Fri, 30 Jan 2026 15:41:27 +0100 Subject: [PATCH] annotation segment mode --- generate.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/generate.py b/generate.py index cb5e89b..3d940c7 100644 --- a/generate.py +++ b/generate.py @@ -995,7 +995,7 @@ def reshoot_item_segments(item, character, keep=False): source = item.files.all()[0].data.path info = ox.avinfo(source) duration = info["duration"] - if duration < max_duration: + if duration < max_duration and character != "annotation": segments = [duration] else: segments = get_item_segments(item, max_duration=max_duration) @@ -1024,15 +1024,15 @@ def reshoot_item_segments(item, character, keep=False): if character == "annotation": a = item.annotations.filter( layer='prompts', start__gte=position, end__gt=position - ).order_by('start').first() + ).exclude(start__gte=segment).order_by('start').first() if a: segment_character = a.value + print('use character from annotation', a, segment_character, 'for %s-%s' % (position, segment)) else: segment_character = None + print('use no character for %s-%s' % (position, segment)) else: segment_character = character - if position: - segment_character = segment_first_frame_url if segment_character: segment_first_frame = replace_character( item, segment_character, position, seed=seed @@ -1048,7 +1048,8 @@ def reshoot_item_segments(item, character, keep=False): frames = int(segment_duration * 24) trim_video(output_ai, trimmed, frames, stype == "c") processed.append(trimmed) - first_frames.append(segment_first_frame) + if segment_character: + first_frames.append(segment_first_frame) n += 1 position = segment joined_output = "%s/joined.mp4" % (prefix) @@ -1318,6 +1319,7 @@ def fragment_video(filename, segmentdir, segments): if last is None: os.unlink(output_path) else: + print(frame_count, output_path) cv2.imwrite(output_path.replace(".mp4", "_last.jpg"), last)