From 1002e003ce5ea09933233b36a689522333f35fe6 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 17:33:07 -0400 Subject: [PATCH 01/15] Make test_stage_2.py callable as a function --- test_stage_2.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index bed3ee6..8272f3a 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -63,10 +63,8 @@ def scale_video(video,width,height): return scaled_video -def main(): - args = parse_args() - - config = OmegaConf.load(args.config) +def run_video_generation(config_path, width, height, length, slice_num, overlap, cfg, seed, steps, fps, skip): + config = OmegaConf.load(config_path) if config.weight_dtype == "fp16": weight_dtype = torch.float16 @@ -200,21 +198,25 @@ def handle_single(ref_image_path,pose_video_path): save_dir.mkdir(exist_ok=True, parents=True) result = scale_video(video[:,:,:L], original_width, original_height) + output_path1 = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}.mp4" save_videos_grid( result, - f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}.mp4", + output_path2, n_rows=1, fps=src_fps if args.fps is None else args.fps, ) video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) video = scale_video(video, original_width, original_height) + output_path = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}_{m1}_{m2}.mp4" save_videos_grid( video, - f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}_{m1}_{m2}.mp4", + output_path, n_rows=3, fps=src_fps if args.fps is None else args.fps, ) + + return { "output_path1": output_path1, "output_path2": output_path2 } for ref_image_path_dir in config["test_cases"].keys(): if os.path.isdir(ref_image_path_dir): @@ -228,10 +230,15 @@ def handle_single(ref_image_path,pose_video_path): else: pose_video_paths = [pose_video_path_dir] for pose_video_path in pose_video_paths: - handle_single(ref_image_path, pose_video_path) - + video_paths = handle_single(ref_image_path, pose_video_path) + all_video_paths.extend(video_paths) + return all_video_paths if __name__ == "__main__": - main() + args = parse_args() + video_paths = run_video_generation( + args.config, args.W, args.H, args.L, args.S, args.O, args.cfg, args.seed, args.steps, args.fps, args.skip + ) + print(json.dumps(video_paths)) From dd88f7e4adaa412bc42f6d2a888fe7231cb78cc8 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 18:08:43 -0400 Subject: [PATCH 02/15] Variable name mismatch --- test_stage_2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 8272f3a..b403f8e 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -208,10 +208,10 @@ def handle_single(ref_image_path,pose_video_path): video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) video = scale_video(video, original_width, original_height) - output_path = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}_{m1}_{m2}.mp4" + output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}_{m1}_{m2}.mp4" save_videos_grid( video, - output_path, + output_path2, n_rows=3, fps=src_fps if args.fps is None else args.fps, ) From e05abaae518f53d6f9dd004267bfd9c187f025a9 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 18:17:59 -0400 Subject: [PATCH 03/15] dumb --- test_stage_2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_stage_2.py b/test_stage_2.py index b403f8e..072ffde 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -201,7 +201,7 @@ def handle_single(ref_image_path,pose_video_path): output_path1 = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}.mp4" save_videos_grid( result, - output_path2, + output_path1, n_rows=1, fps=src_fps if args.fps is None else args.fps, ) From 2e8916027bd8ac4a0d7c16e8e721eb0384a2652b Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 19:16:43 -0400 Subject: [PATCH 04/15] Added default args to test_stage_2.py:run_video_generation() --- test_stage_2.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test_stage_2.py b/test_stage_2.py index 072ffde..37ad6f8 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -63,7 +63,19 @@ def scale_video(video,width,height): return scaled_video -def run_video_generation(config_path, width, height, length, slice_num, overlap, cfg, seed, steps, fps, skip): +def run_video_generation( + config_path="./configs/test_stage_2.yaml", + width=768, + height=768, + length=300, + slice_num=48, + overlap=4, + cfg=3.5, + seed=99, + steps=20, + fps=None, + skip=1 +): config = OmegaConf.load(config_path) if config.weight_dtype == "fp16": From a67091cc4c71015e950638434277b50d1122dee1 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 19:26:04 -0400 Subject: [PATCH 05/15] Cleanup args from test_stage_2.py --- test_stage_2.py | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 37ad6f8..5437132 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -112,9 +112,7 @@ def run_video_generation( sched_kwargs = OmegaConf.to_container(infer_config.noise_scheduler_kwargs) scheduler = DDIMScheduler(**sched_kwargs) - generator = torch.manual_seed(args.seed) - - width, height = args.W, args.H + generator = torch.manual_seed(seed) # load pretrained weights denoising_unet.load_state_dict( @@ -153,17 +151,17 @@ def handle_single(ref_image_path,pose_video_path): pose_images = read_frames(pose_video_path) src_fps = get_fps(pose_video_path) print(f"pose video has {len(pose_images)} frames, with {src_fps} fps") - L = min(args.L, len(pose_images)) + L = min(length, len(pose_images)) pose_transform = transforms.Compose( [transforms.Resize((height, width)), transforms.ToTensor()] ) original_width,original_height = 0,0 - pose_images = pose_images[::args.skip+1] + pose_images = pose_images[::skip+1] print("processing length:", len(pose_images)) - src_fps = src_fps // (args.skip + 1) + src_fps = src_fps // (skip + 1) print("fps", src_fps) - L = L // ((args.skip + 1)) + L = L // ((skip + 1)) for pose_image_pil in pose_images[: L]: pose_tensor_list.append(pose_transform(pose_image_pil)) @@ -172,8 +170,8 @@ def handle_single(ref_image_path,pose_video_path): pose_image_pil = pose_image_pil.resize((width,height)) # repeart the last segment - last_segment_frame_num = (L - args.S) % (args.S - args.O) - repeart_frame_num = (args.S - args.O - last_segment_frame_num) % (args.S - args.O) + last_segment_frame_num = (L - slice) % (slice - overlap) + repeart_frame_num = (slice - overlap - last_segment_frame_num) % (slice - overlap) for i in range(repeart_frame_num): pose_list.append(pose_list[-1]) pose_tensor_list.append(pose_tensor_list[-1]) @@ -193,39 +191,39 @@ def handle_single(ref_image_path,pose_video_path): width, height, len(pose_list), - args.steps, - args.cfg, + steps, + cfg, generator=generator, - context_frames=args.S, + context_frames=slice, context_stride=1, - context_overlap=args.O, + context_overlap=overlap, ).videos m1 = config.pose_guider_path.split('.')[0].split('/')[-1] m2 = config.motion_module_path.split('.')[0].split('/')[-1] - save_dir_name = f"{time_str}-{args.cfg}-{m1}-{m2}" + save_dir_name = f"{time_str}-{cfg}-{m1}-{m2}" save_dir = Path(f"./output/video-{date_str}/{save_dir_name}") save_dir.mkdir(exist_ok=True, parents=True) result = scale_video(video[:,:,:L], original_width, original_height) - output_path1 = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}.mp4" + output_path1 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}.mp4" save_videos_grid( result, output_path1, n_rows=1, - fps=src_fps if args.fps is None else args.fps, + fps=src_fps if fps is None else fps, ) video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) video = scale_video(video, original_width, original_height) - output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{args.cfg}_{args.steps}_{args.skip}_{m1}_{m2}.mp4" + output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" save_videos_grid( video, output_path2, n_rows=3, - fps=src_fps if args.fps is None else args.fps, + fps=src_fps if fps is None else fps, ) return { "output_path1": output_path1, "output_path2": output_path2 } From 7a3f9e9a257b8fa0ea83a6abee6f40bcb4216ccf Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 21:14:22 -0400 Subject: [PATCH 06/15] Update test_stage_2.py --- test_stage_2.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 5437132..20a371c 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -170,8 +170,8 @@ def handle_single(ref_image_path,pose_video_path): pose_image_pil = pose_image_pil.resize((width,height)) # repeart the last segment - last_segment_frame_num = (L - slice) % (slice - overlap) - repeart_frame_num = (slice - overlap - last_segment_frame_num) % (slice - overlap) + last_segment_frame_num = (L - slice_num) % (slice_num - overlap) + repeart_frame_num = (slice_num - overlap - last_segment_frame_num) % (slice_num - overlap) for i in range(repeart_frame_num): pose_list.append(pose_list[-1]) pose_tensor_list.append(pose_tensor_list[-1]) @@ -194,7 +194,7 @@ def handle_single(ref_image_path,pose_video_path): steps, cfg, generator=generator, - context_frames=slice, + context_frames=slice_num, context_stride=1, context_overlap=overlap, ).videos From f09e86d9aa319f323830b5e8b81a8cd267cf1a83 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 21:31:59 -0400 Subject: [PATCH 07/15] Tensor mismatch fix in test_stage_2.py --- test_stage_2.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 20a371c..e8f7c66 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -214,9 +214,25 @@ def handle_single(ref_image_path,pose_video_path): output_path1, n_rows=1, fps=src_fps if fps is None else fps, - ) + ) + + print("ref_image_tensor size:", ref_image_tensor.size()) + print("pose_tensor size:", pose_tensor[:, :, :L].size()) + print("video size:", video[:, :, :L].size()) - video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) + # Ensure all tensors are the same size + ref_image_tensor = F.interpolate(ref_image_tensor, size=(original_height, original_width), mode='bilinear', align_corners=False) + pose_tensor = F.interpolate(pose_tensor[:, :, :L], size=(original_height, original_width), mode='bilinear', align_corners=False) + video = F.interpolate(video[:, :, :L], size=(original_height, original_width), mode='bilinear', align_corners=False) + + # Print sizes for debugging + print("Adjusted ref_image_tensor size:", ref_image_tensor.size()) + print("Adjusted pose_tensor size:", pose_tensor.size()) + print("Adjusted video size:", video.size()) + + # Concatenate the tensors + video = torch.cat([ref_image_tensor, pose_tensor, video], dim=0) + # video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) video = scale_video(video, original_width, original_height) output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" save_videos_grid( From 98e48134a529eb720e760befc894ff5f2a82de0f Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 22:21:47 -0400 Subject: [PATCH 08/15] Commented out broken code in test_stage_2.py --- test_stage_2.py | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index e8f7c66..0a91212 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -216,33 +216,22 @@ def handle_single(ref_image_path,pose_video_path): fps=src_fps if fps is None else fps, ) - print("ref_image_tensor size:", ref_image_tensor.size()) - print("pose_tensor size:", pose_tensor[:, :, :L].size()) - print("video size:", video[:, :, :L].size()) - - # Ensure all tensors are the same size - ref_image_tensor = F.interpolate(ref_image_tensor, size=(original_height, original_width), mode='bilinear', align_corners=False) - pose_tensor = F.interpolate(pose_tensor[:, :, :L], size=(original_height, original_width), mode='bilinear', align_corners=False) - video = F.interpolate(video[:, :, :L], size=(original_height, original_width), mode='bilinear', align_corners=False) - - # Print sizes for debugging - print("Adjusted ref_image_tensor size:", ref_image_tensor.size()) - print("Adjusted pose_tensor size:", pose_tensor.size()) - print("Adjusted video size:", video.size()) - - # Concatenate the tensors - video = torch.cat([ref_image_tensor, pose_tensor, video], dim=0) + # print("ref_image_tensor size:", ref_image_tensor.size()) + # print("pose_tensor size:", pose_tensor[:, :, :L].size()) + # print("video size:", video[:, :, :L].size()) + # video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) - video = scale_video(video, original_width, original_height) - output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" - save_videos_grid( - video, - output_path2, - n_rows=3, - fps=src_fps if fps is None else fps, - ) + # video = scale_video(video, original_width, original_height) + # output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" + # save_videos_grid( + # video, + # output_path2, + # n_rows=3, + # fps=src_fps if fps is None else fps, + # ) - return { "output_path1": output_path1, "output_path2": output_path2 } + # return { "output_path1": output_path1, "output_path2": output_path2 } + return { "output_path": output_path } for ref_image_path_dir in config["test_cases"].keys(): if os.path.isdir(ref_image_path_dir): From ceb882327395c228831974bcff53270808662ab7 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 22:31:26 -0400 Subject: [PATCH 09/15] Update test_stage_2.py --- test_stage_2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_stage_2.py b/test_stage_2.py index 0a91212..7e8db16 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -231,7 +231,7 @@ def handle_single(ref_image_path,pose_video_path): # ) # return { "output_path1": output_path1, "output_path2": output_path2 } - return { "output_path": output_path } + return { "output_path": output_path1 } for ref_image_path_dir in config["test_cases"].keys(): if os.path.isdir(ref_image_path_dir): From c91ec4c9c74192369bd44c85a025f377ba576ecb Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 22:38:04 -0400 Subject: [PATCH 10/15] Update test_stage_2.py --- test_stage_2.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test_stage_2.py b/test_stage_2.py index 7e8db16..2dd5122 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -233,6 +233,8 @@ def handle_single(ref_image_path,pose_video_path): # return { "output_path1": output_path1, "output_path2": output_path2 } return { "output_path": output_path1 } + all_video_paths = [] + for ref_image_path_dir in config["test_cases"].keys(): if os.path.isdir(ref_image_path_dir): ref_image_paths = glob.glob(os.path.join(ref_image_path_dir, '*.jpg')) From 1e7ffd7f1e933772bb87ff089bf2d79c19e75467 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 22:48:34 -0400 Subject: [PATCH 11/15] Update test_stage_2.py --- test_stage_2.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 2dd5122..bcc68b5 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -231,7 +231,7 @@ def handle_single(ref_image_path,pose_video_path): # ) # return { "output_path1": output_path1, "output_path2": output_path2 } - return { "output_path": output_path1 } + return output_path1 all_video_paths = [] @@ -247,8 +247,8 @@ def handle_single(ref_image_path,pose_video_path): else: pose_video_paths = [pose_video_path_dir] for pose_video_path in pose_video_paths: - video_paths = handle_single(ref_image_path, pose_video_path) - all_video_paths.extend(video_paths) + video_path = handle_single(ref_image_path, pose_video_path) + all_video_paths.extend(video_path) return all_video_paths From 8e64a999aea91e58b132dc17b22efbfbf75e768e Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Tue, 11 Jun 2024 22:56:56 -0400 Subject: [PATCH 12/15] Update test_stage_2.py --- test_stage_2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_stage_2.py b/test_stage_2.py index bcc68b5..241fad2 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -248,7 +248,7 @@ def handle_single(ref_image_path,pose_video_path): pose_video_paths = [pose_video_path_dir] for pose_video_path in pose_video_paths: video_path = handle_single(ref_image_path, pose_video_path) - all_video_paths.extend(video_path) + all_video_paths.append(video_path) return all_video_paths From 33beefe2b7cbeade515ad32d38f4255d46cfc246 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Wed, 12 Jun 2024 09:50:12 -0400 Subject: [PATCH 13/15] Update test_stage_2.py --- test_stage_2.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 241fad2..2e3067f 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -216,22 +216,18 @@ def handle_single(ref_image_path,pose_video_path): fps=src_fps if fps is None else fps, ) - # print("ref_image_tensor size:", ref_image_tensor.size()) - # print("pose_tensor size:", pose_tensor[:, :, :L].size()) - # print("video size:", video[:, :, :L].size()) - - # video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) - # video = scale_video(video, original_width, original_height) - # output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" - # save_videos_grid( - # video, - # output_path2, - # n_rows=3, - # fps=src_fps if fps is None else fps, - # ) + video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) + video = scale_video(video, original_width, original_height) + output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" + save_videos_grid( + video, + output_path2, + n_rows=3, + fps=src_fps if fps is None else fps, + ) - # return { "output_path1": output_path1, "output_path2": output_path2 } - return output_path1 + return [output_path1, output_path2] + # return output_path1 all_video_paths = [] @@ -248,7 +244,8 @@ def handle_single(ref_image_path,pose_video_path): pose_video_paths = [pose_video_path_dir] for pose_video_path in pose_video_paths: video_path = handle_single(ref_image_path, pose_video_path) - all_video_paths.append(video_path) + # all_video_paths.append(video_path) + all_video_paths.extend(video_path) return all_video_paths From 909820fae76d50d9d4f7eec3cbf165fb0d49cd19 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Wed, 12 Jun 2024 11:00:16 -0400 Subject: [PATCH 14/15] Compare option added to test_stage_2.py --- test_stage_2.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test_stage_2.py b/test_stage_2.py index 2e3067f..441a8c7 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -40,7 +40,8 @@ def parse_args(): parser.add_argument("--steps", type=int, default=20, help="DDIM sampling steps") parser.add_argument("--fps", type=int) - parser.add_argument("--skip", type=int, default=1, help="frame sample rate = (skip+1)") + parser.add_argument("--skip", type=int, default=1, help="frame sample rate = (skip+1)") + parser.add_argument("--compare", type=int, default=1, help="render a side by side comparison of reference, pose, and result") args = parser.parse_args() print('Width:', args.W) @@ -75,6 +76,7 @@ def run_video_generation( steps=20, fps=None, skip=1 + compare=1 ): config = OmegaConf.load(config_path) @@ -216,6 +218,9 @@ def handle_single(ref_image_path,pose_video_path): fps=src_fps if fps is None else fps, ) + if not compare: + return [output_path1] + video = torch.cat([ref_image_tensor, pose_tensor[:,:,:L], video[:,:,:L]], dim=0) video = scale_video(video, original_width, original_height) output_path2 = f"{save_dir}/{ref_name}_{pose_name}_{cfg}_{steps}_{skip}_{m1}_{m2}.mp4" @@ -227,7 +232,6 @@ def handle_single(ref_image_path,pose_video_path): ) return [output_path1, output_path2] - # return output_path1 all_video_paths = [] @@ -244,7 +248,6 @@ def handle_single(ref_image_path,pose_video_path): pose_video_paths = [pose_video_path_dir] for pose_video_path in pose_video_paths: video_path = handle_single(ref_image_path, pose_video_path) - # all_video_paths.append(video_path) all_video_paths.extend(video_path) return all_video_paths @@ -253,6 +256,6 @@ def handle_single(ref_image_path,pose_video_path): if __name__ == "__main__": args = parse_args() video_paths = run_video_generation( - args.config, args.W, args.H, args.L, args.S, args.O, args.cfg, args.seed, args.steps, args.fps, args.skip + args.config, args.W, args.H, args.L, args.S, args.O, args.cfg, args.seed, args.steps, args.fps, args.skip, args.compare ) print(json.dumps(video_paths)) From eee4a9460b9d5357866e433074c73962bd0c22e1 Mon Sep 17 00:00:00 2001 From: Anson Kao Date: Fri, 14 Jun 2024 22:56:59 -0400 Subject: [PATCH 15/15] Update test_stage_2.py --- test_stage_2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_stage_2.py b/test_stage_2.py index 441a8c7..4bd289d 100644 --- a/test_stage_2.py +++ b/test_stage_2.py @@ -75,7 +75,7 @@ def run_video_generation( seed=99, steps=20, fps=None, - skip=1 + skip=1, compare=1 ): config = OmegaConf.load(config_path)