Baraaqasem commited on
Commit
dea6c7a
1 Parent(s): 5d32408

Upload 14 files

Browse files
src/videogen_hub/benchmark/VBench_full_info.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/__init__.py ADDED
File without changes
src/videogen_hub/benchmark/fal_text_guided_t2v.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Optional
2
+ import os
3
+ from tqdm import tqdm
4
+ import json, requests
5
+ import fal_client
6
+ # import json
7
+
8
+ def infer_text_guided_vg_bench(
9
+ model_name,
10
+ result_folder: str = "results",
11
+ experiment_name: str = "Exp_Text-Guided_VG",
12
+ overwrite_model_outputs: bool = False,
13
+ overwrite_inputs: bool = False,
14
+ limit_videos_amount: Optional[int] = None,
15
+ ):
16
+ """
17
+ Performs inference on the VideogenHub dataset using the provided text-guided video generation model.
18
+
19
+ Args:
20
+ model_name: name of the model we want to run inference on
21
+ result_folder (str, optional): Path to the root directory where the results should be saved.
22
+ Defaults to 'results'.
23
+ experiment_name (str, optional): Name of the folder inside 'result_folder' where results
24
+ for this particular experiment will be stored. Defaults to "Exp_Text-Guided_IG".
25
+ overwrite_model_outputs (bool, optional): If set to True, will overwrite any pre-existing
26
+ model outputs. Useful for resuming runs. Defaults to False.
27
+ overwrite_inputs (bool, optional): If set to True, will overwrite any pre-existing input
28
+ samples. Typically, should be set to False unless there's a need to update the inputs.
29
+ Defaults to False.
30
+ limit_videos_amount (int, optional): Limits the number of videos to be processed. If set to
31
+ None, all videos in the dataset will be processed.
32
+
33
+ Returns:
34
+ None. Results are saved in the specified directory.
35
+
36
+ Notes:
37
+ The function processes each sample from the dataset, uses the model to infer an video based
38
+ on text prompts, and then saves the resulting videos in the specified directories.
39
+ """
40
+ benchmark_prompt_path = "t2v_vbench_1000.json"
41
+ prompts = json.load(open(benchmark_prompt_path, "r"))
42
+ save_path = os.path.join(result_folder, experiment_name, "dataset_lookup.json")
43
+ if overwrite_inputs or not os.path.exists(save_path):
44
+ if not os.path.exists(os.path.join(result_folder, experiment_name)):
45
+ os.makedirs(os.path.join(result_folder, experiment_name))
46
+ with open(save_path, "w") as f:
47
+ json.dump(prompts, f, indent=4)
48
+
49
+ print(
50
+ "========> Running Benchmark Dataset:",
51
+ experiment_name,
52
+ "| Model:",
53
+ model_name,
54
+ )
55
+
56
+ if model_name == 'AnimateDiff':
57
+ fal_model_name = 'fast-animatediff/text-to-video'
58
+ elif model_name == 'AnimateDiffTurbo':
59
+ fal_model_name = 'fast-animatediff/turbo/text-to-video'
60
+ elif model_name == 'FastSVD':
61
+ fal_model_name = 'fast-svd/text-to-video'
62
+ else:
63
+ raise ValueError("Invalid model_name")
64
+
65
+ for file_basename, prompt in tqdm(prompts.items()):
66
+ idx = int(file_basename.split('_')[0])
67
+ dest_folder = os.path.join(
68
+ result_folder, experiment_name, model_name
69
+ )
70
+ # file_basename = f"{idx}_{prompt['prompt_en'].replace(' ', '_')}.mp4"
71
+ if not os.path.exists(dest_folder):
72
+ os.mkdir(dest_folder)
73
+ dest_file = os.path.join(dest_folder, file_basename)
74
+ if overwrite_model_outputs or not os.path.exists(dest_file):
75
+ print("========> Inferencing", dest_file)
76
+
77
+ handler = fal_client.submit(
78
+ f"fal-ai/{fal_model_name}",
79
+ arguments={
80
+ "prompt": prompt["prompt_en"]
81
+ },
82
+ )
83
+
84
+ # for event in handler.iter_events(with_logs=True):
85
+ # if isinstance(event, fal_client.InProgress):
86
+ # print('Request in progress')
87
+ # print(event.logs)
88
+
89
+ result = handler.get()
90
+ result_url = result['video']['url']
91
+ download_mp4(result_url, dest_file)
92
+ else:
93
+ print("========> Skipping", dest_file, ", it already exists")
94
+
95
+ if limit_videos_amount is not None and (idx >= limit_videos_amount):
96
+ break
97
+
98
+ def download_mp4(url, filename):
99
+ try:
100
+ # Send a GET request to the URL
101
+ response = requests.get(url, stream=True)
102
+ response.raise_for_status() # Check if the request was successful
103
+
104
+ # Open a local file with write-binary mode
105
+ with open(filename, 'wb') as file:
106
+ # Write the response content to the file in chunks
107
+ for chunk in response.iter_content(chunk_size=8192):
108
+ file.write(chunk)
109
+
110
+ # print(f"Download complete: {filename}")
111
+
112
+ except requests.exceptions.RequestException as e:
113
+ print(f"Error downloading file: {e}")
114
+
115
+ if __name__ == "__main__":
116
+ pass
117
+ # infer_text_guided_vg_bench(model_name="AnimateDiff")
118
+ infer_text_guided_vg_bench(result_folder="/mnt/tjena/maxku/max_projects/VideoGenHub/results", model_name="FastSVD")
119
+ # infer_text_guided_vg_bench(result_folder="/mnt/tjena/maxku/max_projects/VideoGenHub/results", model_name="AnimateDiff")
120
+ # infer_text_guided_vg_bench(result_folder="/mnt/tjena/maxku/max_projects/VideoGenHub/results", model_name="AnimateDiffTurbo")
src/videogen_hub/benchmark/merge_prompt.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ def main(prmopts_path_1, prompts_path_2):
4
+ prompts_1 = json.load(open(prmopts_path_1, "r"))
5
+ prompts_2 = json.load(open(prompts_path_2, "r"))
6
+
7
+ new_prompts = {}
8
+ new_idx = 0
9
+ for prompt_key in prompts_1:
10
+ prompt_key_lst = prompt_key.split("_")
11
+ prompt_key_lst[0] = str(new_idx)
12
+ new_prompts['_'.join(prompt_key_lst)] = prompts_1[prompt_key]
13
+ new_idx += 1
14
+
15
+ for prompt_key in prompts_2:
16
+ prompt_key_lst = prompt_key.split("_")
17
+ prompt_key_lst[0] = str(new_idx)
18
+ new_prompts['_'.join(prompt_key_lst)] = prompts_2[prompt_key]
19
+ new_idx += 1
20
+
21
+ with open(f"t2v_vbench_1000.json", "w") as f:
22
+ json.dump(new_prompts, f, indent=4)
23
+
24
+ if __name__ == "__main__":
25
+ main("t2v_vbench_200.json", "t2v_vbench_800.json")
src/videogen_hub/benchmark/prompt_generation.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ import numpy as np
4
+ import random
5
+
6
+ # Randomly sample a subset of prompts for benchmarking
7
+ def main(prompt_path, overwrite_inputs=False):
8
+ prompts = json.load(open(prompt_path, "r"))
9
+
10
+ # construct dimension_count map
11
+ dimension_count_map = {}
12
+ dimension_prompt_idx_map = {}
13
+ dimensions_count = 0
14
+ for i in range(len(prompts)):
15
+ prompt = prompts[i]
16
+ dimensions = prompt["dimension"]
17
+ for dimension in dimensions:
18
+ if dimension not in dimension_prompt_idx_map:
19
+ dimension_prompt_idx_map[dimension] = []
20
+ dimension_prompt_idx_map[dimension].append(i)
21
+
22
+ if dimension not in dimension_count_map:
23
+ dimension_count_map[dimension] = 0
24
+
25
+ dimension_count_map[dimension] += 1
26
+
27
+ dimensions_count += 1
28
+
29
+ print(
30
+ "Dimensions count (each prompt can contribute to more than one dimension count):",
31
+ dimensions_count,
32
+ )
33
+ print(dimension_count_map)
34
+
35
+ target_prompts_count = 800
36
+ # sample prompts based on the distribution of dimensions
37
+ sampled_prompts = list()
38
+ remaining_prompts = list()
39
+ dimension_probs = np.array(list(dimension_count_map.values())) / dimensions_count
40
+ dimensions = list(dimension_count_map.keys())
41
+ sample_counts = np.random.multinomial(target_prompts_count, dimension_probs)
42
+ print(sample_counts)
43
+ for dimension, count in zip(dimensions, sample_counts):
44
+
45
+ sampled_prompts_idx = random.sample(dimension_prompt_idx_map[dimension], count)
46
+ for idx in range(len(prompts)):
47
+ if idx in sampled_prompts_idx:
48
+ sampled_prompts.append(prompts[idx])
49
+ else:
50
+ remaining_prompts.append(prompts[idx])
51
+
52
+ save_path = "./t2v_vbench_1000.json"
53
+ remaing_data_save_path = "./t2v_vbench_remain_1000.json"
54
+ if overwrite_inputs or not os.path.exists(save_path):
55
+ # if not os.path.exists(os.path.join(result_folder, experiment_name)):
56
+ # os.makedirs(os.path.join(result_folder, experiment_name))
57
+ with open(save_path, "w") as f:
58
+ json.dump(sampled_prompts, f, indent=4)
59
+
60
+ with open(remaing_data_save_path, "w") as f:
61
+ json.dump(remaining_prompts, f, indent=4)
62
+ else:
63
+ print("Dataset already exists, skipping generation")
64
+
65
+ if __name__ == "__main__":
66
+ main(prompt_path="VBench_full_info.json")
67
+ # main(prompt_path="t2v_vbench_remain_200.json")
src/videogen_hub/benchmark/sample_prompt.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ import numpy as np
4
+ import random
5
+
6
+ # Randomly sample a subset of prompts for benchmarking
7
+ def main(prompt_path, overwrite_inputs=False):
8
+ prompts = json.load(open(prompt_path, "r"))
9
+
10
+ # construct dimension_count map
11
+ dimension_count_map = {}
12
+ dimension_prompt_idx_map = {}
13
+ dimensions_count = 0
14
+ for key, prompt in prompts.items():
15
+ dimensions = prompt["dimension"]
16
+ for dimension in dimensions:
17
+ if dimension not in dimension_prompt_idx_map:
18
+ dimension_prompt_idx_map[dimension] = []
19
+ dimension_prompt_idx_map[dimension].append(key)
20
+
21
+ if dimension not in dimension_count_map:
22
+ dimension_count_map[dimension] = 0
23
+
24
+ dimension_count_map[dimension] += 1
25
+
26
+ dimensions_count += 1
27
+
28
+ print(
29
+ "Dimensions count (each prompt can contribute to more than one dimension count):",
30
+ dimensions_count,
31
+ )
32
+ print(dimension_count_map)
33
+
34
+ target_prompts_count = 800
35
+ # sample prompts based on the distribution of dimensions
36
+ sampled_prompts = {}
37
+ remaining_prompts = {}
38
+ dimension_probs = np.array(list(dimension_count_map.values())) / dimensions_count
39
+ dimensions = list(dimension_count_map.keys())
40
+ sample_counts = np.random.multinomial(target_prompts_count, dimension_probs)
41
+ print(np.sum(sample_counts))
42
+ print(sample_counts)
43
+ for dimension, count in zip(dimensions, sample_counts):
44
+
45
+ sampled_prompts_keys = random.sample(dimension_prompt_idx_map[dimension], count)
46
+ for key in prompts.keys():
47
+ if key in sampled_prompts_keys:
48
+ while key in sampled_prompts:
49
+ key = random.sample(dimension_prompt_idx_map[dimension], 1)[0]
50
+ sampled_prompts[key] = prompts[key]
51
+ else:
52
+ remaining_prompts[key] = prompts[key]
53
+
54
+ save_path = "./t2v_vbench_800.json"
55
+ remaing_data_save_path = "./t2v_vbench_remain_1000.json"
56
+ print(len(sampled_prompts.keys()))
57
+ if overwrite_inputs or not os.path.exists(save_path):
58
+ # if not os.path.exists(os.path.join(result_folder, experiment_name)):
59
+ # os.makedirs(os.path.join(result_folder, experiment_name))
60
+ with open(save_path, "w") as f:
61
+ json.dump(sampled_prompts, f, indent=4)
62
+
63
+ with open(remaing_data_save_path, "w") as f:
64
+ json.dump(remaining_prompts, f, indent=4)
65
+ else:
66
+ print("Dataset already exists, skipping generation")
67
+
68
+ if __name__ == "__main__":
69
+ # main(prompt_path="VBench_full_info.json")
70
+ main(prompt_path="t2v_vbench_remain_200.json")
src/videogen_hub/benchmark/t2v_vbench_1000.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/t2v_vbench_200.json ADDED
@@ -0,0 +1,1956 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "0_a_toilet,_frozen_in_time.mp4": {
3
+ "prompt_en": "a toilet, frozen in time",
4
+ "dimension": [
5
+ "temporal_flickering"
6
+ ]
7
+ },
8
+ "1_a_laptop,_frozen_in_time.mp4": {
9
+ "prompt_en": "a laptop, frozen in time",
10
+ "dimension": [
11
+ "temporal_flickering"
12
+ ]
13
+ },
14
+ "2_In_a_still_frame,_phone_booth.mp4": {
15
+ "prompt_en": "In a still frame, phone booth",
16
+ "dimension": [
17
+ "temporal_flickering"
18
+ ]
19
+ },
20
+ "3_A_tranquil_tableau_of_an_apple.mp4": {
21
+ "prompt_en": "A tranquil tableau of an apple",
22
+ "dimension": [
23
+ "temporal_flickering"
24
+ ]
25
+ },
26
+ "4_A_tranquil_tableau_of_a_bench.mp4": {
27
+ "prompt_en": "A tranquil tableau of a bench",
28
+ "dimension": [
29
+ "temporal_flickering"
30
+ ]
31
+ },
32
+ "5_A_tranquil_tableau_of_an_exquisite_mahogany_dining_table.mp4": {
33
+ "prompt_en": "A tranquil tableau of an exquisite mahogany dining table",
34
+ "dimension": [
35
+ "temporal_flickering"
36
+ ]
37
+ },
38
+ "6_A_tranquil_tableau_of_the_jail_cell_was_small_and_dimly_lit,_with_cold,_steel_bars.mp4": {
39
+ "prompt_en": "A tranquil tableau of the jail cell was small and dimly lit, with cold, steel bars",
40
+ "dimension": [
41
+ "temporal_flickering"
42
+ ]
43
+ },
44
+ "7_In_a_still_frame,_the_Temple_of_Hephaestus,_with_its_timeless_Doric_grace,_stands_stoically_against_the_backdrop_of_a_quiet_Athens.mp4": {
45
+ "prompt_en": "In a still frame, the Temple of Hephaestus, with its timeless Doric grace, stands stoically against the backdrop of a quiet Athens",
46
+ "dimension": [
47
+ "temporal_flickering"
48
+ ]
49
+ },
50
+ "8_In_a_still_frame,_the_ornate_Victorian_streetlamp_stands_solemnly,_adorned_with_intricate_ironwork_and_stained_glass_panels.mp4": {
51
+ "prompt_en": "In a still frame, the ornate Victorian streetlamp stands solemnly, adorned with intricate ironwork and stained glass panels",
52
+ "dimension": [
53
+ "temporal_flickering"
54
+ ]
55
+ },
56
+ "9_A_tranquil_tableau_of_in_the_quaint_village_square,_a_traditional_wrought-iron_streetlamp_featured_delicate_filigree_patterns_and_amber-hued_glass_panels.mp4": {
57
+ "prompt_en": "A tranquil tableau of in the quaint village square, a traditional wrought-iron streetlamp featured delicate filigree patterns and amber-hued glass panels",
58
+ "dimension": [
59
+ "temporal_flickering"
60
+ ]
61
+ },
62
+ "10_In_a_still_frame,_in_the_heart_of_the_old_city,_a_row_of_ornate_lantern-style_streetlamps_bathed_the_narrow_alleyway_in_a_warm,_welcoming_light.mp4": {
63
+ "prompt_en": "In a still frame, in the heart of the old city, a row of ornate lantern-style streetlamps bathed the narrow alleyway in a warm, welcoming light",
64
+ "dimension": [
65
+ "temporal_flickering"
66
+ ]
67
+ },
68
+ "11_In_a_still_frame,_a_tranquil_pond_was_fringed_by_weeping_cherry_trees,_their_blossoms_drifting_lazily_onto_the_glassy_surface.mp4": {
69
+ "prompt_en": "In a still frame, a tranquil pond was fringed by weeping cherry trees, their blossoms drifting lazily onto the glassy surface",
70
+ "dimension": [
71
+ "temporal_flickering"
72
+ ]
73
+ },
74
+ "12_a_bird_and_a_cat.mp4": {
75
+ "prompt_en": "a bird and a cat",
76
+ "dimension": [
77
+ "multiple_objects"
78
+ ],
79
+ "auxiliary_info": {
80
+ "multiple_objects": {
81
+ "object": "bird and cat"
82
+ }
83
+ }
84
+ },
85
+ "13_a_cat_and_a_dog.mp4": {
86
+ "prompt_en": "a cat and a dog",
87
+ "dimension": [
88
+ "multiple_objects"
89
+ ],
90
+ "auxiliary_info": {
91
+ "multiple_objects": {
92
+ "object": "cat and dog"
93
+ }
94
+ }
95
+ },
96
+ "14_a_sheep_and_a_cow.mp4": {
97
+ "prompt_en": "a sheep and a cow",
98
+ "dimension": [
99
+ "multiple_objects"
100
+ ],
101
+ "auxiliary_info": {
102
+ "multiple_objects": {
103
+ "object": "sheep and cow"
104
+ }
105
+ }
106
+ },
107
+ "15_an_elephant_and_a_bear.mp4": {
108
+ "prompt_en": "an elephant and a bear",
109
+ "dimension": [
110
+ "multiple_objects"
111
+ ],
112
+ "auxiliary_info": {
113
+ "multiple_objects": {
114
+ "object": "elephant and bear"
115
+ }
116
+ }
117
+ },
118
+ "16_a_giraffe_and_a_bird.mp4": {
119
+ "prompt_en": "a giraffe and a bird",
120
+ "dimension": [
121
+ "multiple_objects"
122
+ ],
123
+ "auxiliary_info": {
124
+ "multiple_objects": {
125
+ "object": "giraffe and bird"
126
+ }
127
+ }
128
+ },
129
+ "17_a_couch_and_a_potted_plant.mp4": {
130
+ "prompt_en": "a couch and a potted plant",
131
+ "dimension": [
132
+ "multiple_objects"
133
+ ],
134
+ "auxiliary_info": {
135
+ "multiple_objects": {
136
+ "object": "couch and potted plant"
137
+ }
138
+ }
139
+ },
140
+ "18_a_laptop_and_a_remote.mp4": {
141
+ "prompt_en": "a laptop and a remote",
142
+ "dimension": [
143
+ "multiple_objects"
144
+ ],
145
+ "auxiliary_info": {
146
+ "multiple_objects": {
147
+ "object": "laptop and remote"
148
+ }
149
+ }
150
+ },
151
+ "19_a_clock_and_a_backpack.mp4": {
152
+ "prompt_en": "a clock and a backpack",
153
+ "dimension": [
154
+ "multiple_objects"
155
+ ],
156
+ "auxiliary_info": {
157
+ "multiple_objects": {
158
+ "object": "clock and backpack"
159
+ }
160
+ }
161
+ },
162
+ "20_a_vase_and_scissors.mp4": {
163
+ "prompt_en": "a vase and scissors",
164
+ "dimension": [
165
+ "multiple_objects"
166
+ ],
167
+ "auxiliary_info": {
168
+ "multiple_objects": {
169
+ "object": "vase and scissors"
170
+ }
171
+ }
172
+ },
173
+ "21_a_teddy_bear_and_a_frisbee.mp4": {
174
+ "prompt_en": "a teddy bear and a frisbee",
175
+ "dimension": [
176
+ "multiple_objects"
177
+ ],
178
+ "auxiliary_info": {
179
+ "multiple_objects": {
180
+ "object": "teddy bear and frisbee"
181
+ }
182
+ }
183
+ },
184
+ "22_skis_and_a_snowboard.mp4": {
185
+ "prompt_en": "skis and a snowboard",
186
+ "dimension": [
187
+ "multiple_objects"
188
+ ],
189
+ "auxiliary_info": {
190
+ "multiple_objects": {
191
+ "object": "skis and snowboard"
192
+ }
193
+ }
194
+ },
195
+ "23_a_bottle_and_a_chair.mp4": {
196
+ "prompt_en": "a bottle and a chair",
197
+ "dimension": [
198
+ "multiple_objects"
199
+ ],
200
+ "auxiliary_info": {
201
+ "multiple_objects": {
202
+ "object": "bottle and chair"
203
+ }
204
+ }
205
+ },
206
+ "24_a_bicycle_and_a_car.mp4": {
207
+ "prompt_en": "a bicycle and a car",
208
+ "dimension": [
209
+ "multiple_objects"
210
+ ],
211
+ "auxiliary_info": {
212
+ "multiple_objects": {
213
+ "object": "bicycle and car"
214
+ }
215
+ }
216
+ },
217
+ "25_a_bowl_and_a_remote.mp4": {
218
+ "prompt_en": "a bowl and a remote",
219
+ "dimension": [
220
+ "multiple_objects"
221
+ ],
222
+ "auxiliary_info": {
223
+ "multiple_objects": {
224
+ "object": "bowl and remote"
225
+ }
226
+ }
227
+ },
228
+ "26_broccoli_and_a_backpack.mp4": {
229
+ "prompt_en": "broccoli and a backpack",
230
+ "dimension": [
231
+ "multiple_objects"
232
+ ],
233
+ "auxiliary_info": {
234
+ "multiple_objects": {
235
+ "object": "broccoli and backpack"
236
+ }
237
+ }
238
+ },
239
+ "27_a_refrigerator_and_skis.mp4": {
240
+ "prompt_en": "a refrigerator and skis",
241
+ "dimension": [
242
+ "multiple_objects"
243
+ ],
244
+ "auxiliary_info": {
245
+ "multiple_objects": {
246
+ "object": "refrigerator and skis"
247
+ }
248
+ }
249
+ },
250
+ "28_A_person_is_riding_a_bike.mp4": {
251
+ "prompt_en": "A person is riding a bike",
252
+ "dimension": [
253
+ "human_action"
254
+ ]
255
+ },
256
+ "29_A_person_is_marching.mp4": {
257
+ "prompt_en": "A person is marching",
258
+ "dimension": [
259
+ "human_action"
260
+ ]
261
+ },
262
+ "30_A_person_is_playing_harp.mp4": {
263
+ "prompt_en": "A person is playing harp",
264
+ "dimension": [
265
+ "human_action"
266
+ ]
267
+ },
268
+ "31_A_person_is_wrestling.mp4": {
269
+ "prompt_en": "A person is wrestling",
270
+ "dimension": [
271
+ "human_action"
272
+ ]
273
+ },
274
+ "32_A_person_is_sweeping_floor.mp4": {
275
+ "prompt_en": "A person is sweeping floor",
276
+ "dimension": [
277
+ "human_action"
278
+ ]
279
+ },
280
+ "33_A_person_is_push_up.mp4": {
281
+ "prompt_en": "A person is push up",
282
+ "dimension": [
283
+ "human_action"
284
+ ]
285
+ },
286
+ "34_A_person_is_filling_eyebrows.mp4": {
287
+ "prompt_en": "A person is filling eyebrows",
288
+ "dimension": [
289
+ "human_action"
290
+ ]
291
+ },
292
+ "35_A_person_is_air_drumming.mp4": {
293
+ "prompt_en": "A person is air drumming",
294
+ "dimension": [
295
+ "human_action"
296
+ ]
297
+ },
298
+ "36_A_person_is_rock_climbing.mp4": {
299
+ "prompt_en": "A person is rock climbing",
300
+ "dimension": [
301
+ "human_action"
302
+ ]
303
+ },
304
+ "37_A_person_is_hula_hooping.mp4": {
305
+ "prompt_en": "A person is hula hooping",
306
+ "dimension": [
307
+ "human_action"
308
+ ]
309
+ },
310
+ "38_A_person_is_crawling_baby.mp4": {
311
+ "prompt_en": "A person is crawling baby",
312
+ "dimension": [
313
+ "human_action"
314
+ ]
315
+ },
316
+ "39_A_person_is_motorcycling.mp4": {
317
+ "prompt_en": "A person is motorcycling",
318
+ "dimension": [
319
+ "human_action"
320
+ ]
321
+ },
322
+ "40_A_person_is_riding_or_walking_with_horse.mp4": {
323
+ "prompt_en": "A person is riding or walking with horse",
324
+ "dimension": [
325
+ "human_action"
326
+ ]
327
+ },
328
+ "41_A_person_is_using_computer.mp4": {
329
+ "prompt_en": "A person is using computer",
330
+ "dimension": [
331
+ "human_action"
332
+ ]
333
+ },
334
+ "42_A_person_is_arranging_flowers.mp4": {
335
+ "prompt_en": "A person is arranging flowers",
336
+ "dimension": [
337
+ "human_action"
338
+ ]
339
+ },
340
+ "43_A_person_is_ice_skating.mp4": {
341
+ "prompt_en": "A person is ice skating",
342
+ "dimension": [
343
+ "human_action"
344
+ ]
345
+ },
346
+ "44_A_person_is_barbequing.mp4": {
347
+ "prompt_en": "A person is barbequing",
348
+ "dimension": [
349
+ "human_action"
350
+ ]
351
+ },
352
+ "45_a_person_swimming_in_ocean.mp4": {
353
+ "prompt_en": "a person swimming in ocean",
354
+ "dimension": [
355
+ "subject_consistency",
356
+ "dynamic_degree",
357
+ "motion_smoothness"
358
+ ]
359
+ },
360
+ "46_a_car_turning_a_corner.mp4": {
361
+ "prompt_en": "a car turning a corner",
362
+ "dimension": [
363
+ "subject_consistency",
364
+ "dynamic_degree",
365
+ "motion_smoothness"
366
+ ]
367
+ },
368
+ "47_a_dog_enjoying_a_peaceful_walk.mp4": {
369
+ "prompt_en": "a dog enjoying a peaceful walk",
370
+ "dimension": [
371
+ "subject_consistency",
372
+ "dynamic_degree",
373
+ "motion_smoothness"
374
+ ]
375
+ },
376
+ "48_a_dog_playing_in_park.mp4": {
377
+ "prompt_en": "a dog playing in park",
378
+ "dimension": [
379
+ "subject_consistency",
380
+ "dynamic_degree",
381
+ "motion_smoothness"
382
+ ]
383
+ },
384
+ "49_a_horse_galloping_across_an_open_field.mp4": {
385
+ "prompt_en": "a horse galloping across an open field",
386
+ "dimension": [
387
+ "subject_consistency",
388
+ "dynamic_degree",
389
+ "motion_smoothness"
390
+ ]
391
+ },
392
+ "50_a_sheep_bending_down_to_drink_water_from_a_river.mp4": {
393
+ "prompt_en": "a sheep bending down to drink water from a river",
394
+ "dimension": [
395
+ "subject_consistency",
396
+ "dynamic_degree",
397
+ "motion_smoothness"
398
+ ]
399
+ },
400
+ "51_a_cow_bending_down_to_drink_water_from_a_river.mp4": {
401
+ "prompt_en": "a cow bending down to drink water from a river",
402
+ "dimension": [
403
+ "subject_consistency",
404
+ "dynamic_degree",
405
+ "motion_smoothness"
406
+ ]
407
+ },
408
+ "52_a_cow_running_to_join_a_herd_of_its_kind.mp4": {
409
+ "prompt_en": "a cow running to join a herd of its kind",
410
+ "dimension": [
411
+ "subject_consistency",
412
+ "dynamic_degree",
413
+ "motion_smoothness"
414
+ ]
415
+ },
416
+ "53_a_car_slowing_down_to_stop.mp4": {
417
+ "prompt_en": "a car slowing down to stop",
418
+ "dimension": [
419
+ "subject_consistency",
420
+ "dynamic_degree",
421
+ "motion_smoothness"
422
+ ]
423
+ },
424
+ "54_a_car_accelerating_to_gain_speed.mp4": {
425
+ "prompt_en": "a car accelerating to gain speed",
426
+ "dimension": [
427
+ "subject_consistency",
428
+ "dynamic_degree",
429
+ "motion_smoothness"
430
+ ]
431
+ },
432
+ "55_a_motorcycle_slowing_down_to_stop.mp4": {
433
+ "prompt_en": "a motorcycle slowing down to stop",
434
+ "dimension": [
435
+ "subject_consistency",
436
+ "dynamic_degree",
437
+ "motion_smoothness"
438
+ ]
439
+ },
440
+ "56_a_bus_turning_a_corner.mp4": {
441
+ "prompt_en": "a bus turning a corner",
442
+ "dimension": [
443
+ "subject_consistency",
444
+ "dynamic_degree",
445
+ "motion_smoothness"
446
+ ]
447
+ },
448
+ "57_a_bird_soaring_gracefully_in_the_sky.mp4": {
449
+ "prompt_en": "a bird soaring gracefully in the sky",
450
+ "dimension": [
451
+ "subject_consistency",
452
+ "dynamic_degree",
453
+ "motion_smoothness"
454
+ ]
455
+ },
456
+ "58_a_dog_enjoying_a_peaceful_walk.mp4": {
457
+ "prompt_en": "a dog enjoying a peaceful walk",
458
+ "dimension": [
459
+ "subject_consistency",
460
+ "dynamic_degree",
461
+ "motion_smoothness"
462
+ ]
463
+ },
464
+ "59_a_dog_playing_in_park.mp4": {
465
+ "prompt_en": "a dog playing in park",
466
+ "dimension": [
467
+ "subject_consistency",
468
+ "dynamic_degree",
469
+ "motion_smoothness"
470
+ ]
471
+ },
472
+ "60_a_dog_drinking_water.mp4": {
473
+ "prompt_en": "a dog drinking water",
474
+ "dimension": [
475
+ "subject_consistency",
476
+ "dynamic_degree",
477
+ "motion_smoothness"
478
+ ]
479
+ },
480
+ "61_a_horse_bending_down_to_drink_water_from_a_river.mp4": {
481
+ "prompt_en": "a horse bending down to drink water from a river",
482
+ "dimension": [
483
+ "subject_consistency",
484
+ "dynamic_degree",
485
+ "motion_smoothness"
486
+ ]
487
+ },
488
+ "62_a_horse_galloping_across_an_open_field.mp4": {
489
+ "prompt_en": "a horse galloping across an open field",
490
+ "dimension": [
491
+ "subject_consistency",
492
+ "dynamic_degree",
493
+ "motion_smoothness"
494
+ ]
495
+ },
496
+ "63_a_bear_sniffing_the_air_for_scents_of_food.mp4": {
497
+ "prompt_en": "a bear sniffing the air for scents of food",
498
+ "dimension": [
499
+ "subject_consistency",
500
+ "dynamic_degree",
501
+ "motion_smoothness"
502
+ ]
503
+ },
504
+ "64_a_zebra_taking_a_peaceful_walk.mp4": {
505
+ "prompt_en": "a zebra taking a peaceful walk",
506
+ "dimension": [
507
+ "subject_consistency",
508
+ "dynamic_degree",
509
+ "motion_smoothness"
510
+ ]
511
+ },
512
+ "65_a_person_eating_a_burger.mp4": {
513
+ "prompt_en": "a person eating a burger",
514
+ "dimension": [
515
+ "subject_consistency",
516
+ "dynamic_degree",
517
+ "motion_smoothness"
518
+ ]
519
+ },
520
+ "66_a_car_stuck_in_traffic_during_rush_hour.mp4": {
521
+ "prompt_en": "a car stuck in traffic during rush hour",
522
+ "dimension": [
523
+ "subject_consistency",
524
+ "dynamic_degree",
525
+ "motion_smoothness"
526
+ ]
527
+ },
528
+ "67_a_motorcycle_turning_a_corner.mp4": {
529
+ "prompt_en": "a motorcycle turning a corner",
530
+ "dimension": [
531
+ "subject_consistency",
532
+ "dynamic_degree",
533
+ "motion_smoothness"
534
+ ]
535
+ },
536
+ "68_an_airplane_taking_off.mp4": {
537
+ "prompt_en": "an airplane taking off",
538
+ "dimension": [
539
+ "subject_consistency",
540
+ "dynamic_degree",
541
+ "motion_smoothness"
542
+ ]
543
+ },
544
+ "69_a_truck_anchored_in_a_tranquil_bay.mp4": {
545
+ "prompt_en": "a truck anchored in a tranquil bay",
546
+ "dimension": [
547
+ "subject_consistency",
548
+ "dynamic_degree",
549
+ "motion_smoothness"
550
+ ]
551
+ },
552
+ "70_a_truck_slowing_down_to_stop.mp4": {
553
+ "prompt_en": "a truck slowing down to stop",
554
+ "dimension": [
555
+ "subject_consistency",
556
+ "dynamic_degree",
557
+ "motion_smoothness"
558
+ ]
559
+ },
560
+ "71_a_bird_building_a_nest_from_twigs_and_leaves.mp4": {
561
+ "prompt_en": "a bird building a nest from twigs and leaves",
562
+ "dimension": [
563
+ "subject_consistency",
564
+ "dynamic_degree",
565
+ "motion_smoothness"
566
+ ]
567
+ },
568
+ "72_a_bird_flying_over_a_snowy_forest.mp4": {
569
+ "prompt_en": "a bird flying over a snowy forest",
570
+ "dimension": [
571
+ "subject_consistency",
572
+ "dynamic_degree",
573
+ "motion_smoothness"
574
+ ]
575
+ },
576
+ "73_a_zebra_taking_a_peaceful_walk.mp4": {
577
+ "prompt_en": "a zebra taking a peaceful walk",
578
+ "dimension": [
579
+ "subject_consistency",
580
+ "dynamic_degree",
581
+ "motion_smoothness"
582
+ ]
583
+ },
584
+ "74_a_train.mp4": {
585
+ "prompt_en": "a train",
586
+ "dimension": [
587
+ "object_class"
588
+ ],
589
+ "auxiliary_info": {
590
+ "object_class": {
591
+ "object": "train"
592
+ }
593
+ }
594
+ },
595
+ "75_a_cat.mp4": {
596
+ "prompt_en": "a cat",
597
+ "dimension": [
598
+ "object_class"
599
+ ],
600
+ "auxiliary_info": {
601
+ "object_class": {
602
+ "object": "cat"
603
+ }
604
+ }
605
+ },
606
+ "76_an_elephant.mp4": {
607
+ "prompt_en": "an elephant",
608
+ "dimension": [
609
+ "object_class"
610
+ ],
611
+ "auxiliary_info": {
612
+ "object_class": {
613
+ "object": "elephant"
614
+ }
615
+ }
616
+ },
617
+ "77_a_suitcase.mp4": {
618
+ "prompt_en": "a suitcase",
619
+ "dimension": [
620
+ "object_class"
621
+ ],
622
+ "auxiliary_info": {
623
+ "object_class": {
624
+ "object": "suitcase"
625
+ }
626
+ }
627
+ },
628
+ "78_an_orange.mp4": {
629
+ "prompt_en": "an orange",
630
+ "dimension": [
631
+ "object_class"
632
+ ],
633
+ "auxiliary_info": {
634
+ "object_class": {
635
+ "object": "orange"
636
+ }
637
+ }
638
+ },
639
+ "79_a_hot_dog.mp4": {
640
+ "prompt_en": "a hot dog",
641
+ "dimension": [
642
+ "object_class"
643
+ ],
644
+ "auxiliary_info": {
645
+ "object_class": {
646
+ "object": "hot dog"
647
+ }
648
+ }
649
+ },
650
+ "80_a_keyboard.mp4": {
651
+ "prompt_en": "a keyboard",
652
+ "dimension": [
653
+ "object_class"
654
+ ],
655
+ "auxiliary_info": {
656
+ "object_class": {
657
+ "object": "keyboard"
658
+ }
659
+ }
660
+ },
661
+ "81_a_sink.mp4": {
662
+ "prompt_en": "a sink",
663
+ "dimension": [
664
+ "object_class"
665
+ ],
666
+ "auxiliary_info": {
667
+ "object_class": {
668
+ "object": "sink"
669
+ }
670
+ }
671
+ },
672
+ "82_a_toothbrush.mp4": {
673
+ "prompt_en": "a toothbrush",
674
+ "dimension": [
675
+ "object_class"
676
+ ],
677
+ "auxiliary_info": {
678
+ "object_class": {
679
+ "object": "toothbrush"
680
+ }
681
+ }
682
+ },
683
+ "83_a_red_bicycle.mp4": {
684
+ "prompt_en": "a red bicycle",
685
+ "dimension": [
686
+ "color"
687
+ ],
688
+ "auxiliary_info": {
689
+ "color": {
690
+ "color": "red"
691
+ }
692
+ }
693
+ },
694
+ "84_a_green_bicycle.mp4": {
695
+ "prompt_en": "a green bicycle",
696
+ "dimension": [
697
+ "color"
698
+ ],
699
+ "auxiliary_info": {
700
+ "color": {
701
+ "color": "green"
702
+ }
703
+ }
704
+ },
705
+ "85_a_yellow_bicycle.mp4": {
706
+ "prompt_en": "a yellow bicycle",
707
+ "dimension": [
708
+ "color"
709
+ ],
710
+ "auxiliary_info": {
711
+ "color": {
712
+ "color": "yellow"
713
+ }
714
+ }
715
+ },
716
+ "86_a_black_bicycle.mp4": {
717
+ "prompt_en": "a black bicycle",
718
+ "dimension": [
719
+ "color"
720
+ ],
721
+ "auxiliary_info": {
722
+ "color": {
723
+ "color": "black"
724
+ }
725
+ }
726
+ },
727
+ "87_a_purple_bird.mp4": {
728
+ "prompt_en": "a purple bird",
729
+ "dimension": [
730
+ "color"
731
+ ],
732
+ "auxiliary_info": {
733
+ "color": {
734
+ "color": "purple"
735
+ }
736
+ }
737
+ },
738
+ "88_a_yellow_cat.mp4": {
739
+ "prompt_en": "a yellow cat",
740
+ "dimension": [
741
+ "color"
742
+ ],
743
+ "auxiliary_info": {
744
+ "color": {
745
+ "color": "yellow"
746
+ }
747
+ }
748
+ },
749
+ "89_a_pink_suitcase.mp4": {
750
+ "prompt_en": "a pink suitcase",
751
+ "dimension": [
752
+ "color"
753
+ ],
754
+ "auxiliary_info": {
755
+ "color": {
756
+ "color": "pink"
757
+ }
758
+ }
759
+ },
760
+ "90_a_purple_chair.mp4": {
761
+ "prompt_en": "a purple chair",
762
+ "dimension": [
763
+ "color"
764
+ ],
765
+ "auxiliary_info": {
766
+ "color": {
767
+ "color": "purple"
768
+ }
769
+ }
770
+ },
771
+ "91_a_green_clock.mp4": {
772
+ "prompt_en": "a green clock",
773
+ "dimension": [
774
+ "color"
775
+ ],
776
+ "auxiliary_info": {
777
+ "color": {
778
+ "color": "green"
779
+ }
780
+ }
781
+ },
782
+ "92_a_yellow_clock.mp4": {
783
+ "prompt_en": "a yellow clock",
784
+ "dimension": [
785
+ "color"
786
+ ],
787
+ "auxiliary_info": {
788
+ "color": {
789
+ "color": "yellow"
790
+ }
791
+ }
792
+ },
793
+ "93_a_purple_clock.mp4": {
794
+ "prompt_en": "a purple clock",
795
+ "dimension": [
796
+ "color"
797
+ ],
798
+ "auxiliary_info": {
799
+ "color": {
800
+ "color": "purple"
801
+ }
802
+ }
803
+ },
804
+ "94_a_green_vase.mp4": {
805
+ "prompt_en": "a green vase",
806
+ "dimension": [
807
+ "color"
808
+ ],
809
+ "auxiliary_info": {
810
+ "color": {
811
+ "color": "green"
812
+ }
813
+ }
814
+ },
815
+ "95_The_bund_Shanghai,_watercolor_painting.mp4": {
816
+ "prompt_en": "The bund Shanghai, watercolor painting",
817
+ "dimension": [
818
+ "appearance_style"
819
+ ],
820
+ "auxiliary_info": {
821
+ "appearance_style": {
822
+ "appearance_style": "watercolor painting"
823
+ }
824
+ }
825
+ },
826
+ "96_a_shark_is_swimming_in_the_ocean_by_Hokusai,_in_the_style_of_Ukiyo.mp4": {
827
+ "prompt_en": "a shark is swimming in the ocean by Hokusai, in the style of Ukiyo",
828
+ "dimension": [
829
+ "appearance_style"
830
+ ],
831
+ "auxiliary_info": {
832
+ "appearance_style": {
833
+ "appearance_style": "by Hokusai, in the style of Ukiyo"
834
+ }
835
+ }
836
+ },
837
+ "97_a_shark_is_swimming_in_the_ocean,_pixel_art.mp4": {
838
+ "prompt_en": "a shark is swimming in the ocean, pixel art",
839
+ "dimension": [
840
+ "appearance_style"
841
+ ],
842
+ "auxiliary_info": {
843
+ "appearance_style": {
844
+ "appearance_style": "pixel art"
845
+ }
846
+ }
847
+ },
848
+ "98_Gwen_Stacy_reading_a_book,_pixel_art.mp4": {
849
+ "prompt_en": "Gwen Stacy reading a book, pixel art",
850
+ "dimension": [
851
+ "appearance_style"
852
+ ],
853
+ "auxiliary_info": {
854
+ "appearance_style": {
855
+ "appearance_style": "pixel art"
856
+ }
857
+ }
858
+ },
859
+ "99_A_boat_sailing_leisurely_along_the_Seine_River_with_the_Eiffel_Tower_in_background,_pixel_art.mp4": {
860
+ "prompt_en": "A boat sailing leisurely along the Seine River with the Eiffel Tower in background, pixel art",
861
+ "dimension": [
862
+ "appearance_style"
863
+ ],
864
+ "auxiliary_info": {
865
+ "appearance_style": {
866
+ "appearance_style": "pixel art"
867
+ }
868
+ }
869
+ },
870
+ "100_A_couple_in_formal_evening_wear_going_home_get_caught_in_a_heavy_downpour_with_umbrellas_by_Hokusai,_in_the_style_of_Ukiyo.mp4": {
871
+ "prompt_en": "A couple in formal evening wear going home get caught in a heavy downpour with umbrellas by Hokusai, in the style of Ukiyo",
872
+ "dimension": [
873
+ "appearance_style"
874
+ ],
875
+ "auxiliary_info": {
876
+ "appearance_style": {
877
+ "appearance_style": "by Hokusai, in the style of Ukiyo"
878
+ }
879
+ }
880
+ },
881
+ "101_An_astronaut_flying_in_space,_Van_Gogh_style.mp4": {
882
+ "prompt_en": "An astronaut flying in space, Van Gogh style",
883
+ "dimension": [
884
+ "appearance_style"
885
+ ],
886
+ "auxiliary_info": {
887
+ "appearance_style": {
888
+ "appearance_style": "Van Gogh style"
889
+ }
890
+ }
891
+ },
892
+ "102_An_astronaut_flying_in_space,_oil_painting.mp4": {
893
+ "prompt_en": "An astronaut flying in space, oil painting",
894
+ "dimension": [
895
+ "appearance_style"
896
+ ],
897
+ "auxiliary_info": {
898
+ "appearance_style": {
899
+ "appearance_style": "oil painting"
900
+ }
901
+ }
902
+ },
903
+ "103_An_astronaut_flying_in_space_by_Hokusai,_in_the_style_of_Ukiyo.mp4": {
904
+ "prompt_en": "An astronaut flying in space by Hokusai, in the style of Ukiyo",
905
+ "dimension": [
906
+ "appearance_style"
907
+ ],
908
+ "auxiliary_info": {
909
+ "appearance_style": {
910
+ "appearance_style": "by Hokusai, in the style of Ukiyo"
911
+ }
912
+ }
913
+ },
914
+ "104_An_astronaut_flying_in_space,_in_cyberpunk_style.mp4": {
915
+ "prompt_en": "An astronaut flying in space, in cyberpunk style",
916
+ "dimension": [
917
+ "appearance_style"
918
+ ],
919
+ "auxiliary_info": {
920
+ "appearance_style": {
921
+ "appearance_style": "in cyberpunk style"
922
+ }
923
+ }
924
+ },
925
+ "105_Snow_rocky_mountains_peaks_canyon._snow_blanketed_rocky_mountains_surround_and_shadow_deep_canyons._the_canyons_twist_and_bend_through_the_high_elevated_mountain_peaks,_watercolor_painting.mp4": {
926
+ "prompt_en": "Snow rocky mountains peaks canyon. snow blanketed rocky mountains surround and shadow deep canyons. the canyons twist and bend through the high elevated mountain peaks, watercolor painting",
927
+ "dimension": [
928
+ "appearance_style"
929
+ ],
930
+ "auxiliary_info": {
931
+ "appearance_style": {
932
+ "appearance_style": "watercolor painting"
933
+ }
934
+ }
935
+ },
936
+ "106_A_beautiful_coastal_beach_in_spring,_waves_lapping_on_sand,_zoom_out.mp4": {
937
+ "prompt_en": "A beautiful coastal beach in spring, waves lapping on sand, zoom out",
938
+ "dimension": [
939
+ "temporal_style"
940
+ ]
941
+ },
942
+ "107_A_beautiful_coastal_beach_in_spring,_waves_lapping_on_sand,_pan_right.mp4": {
943
+ "prompt_en": "A beautiful coastal beach in spring, waves lapping on sand, pan right",
944
+ "dimension": [
945
+ "temporal_style"
946
+ ]
947
+ },
948
+ "108_A_beautiful_coastal_beach_in_spring,_waves_lapping_on_sand,_tilt_up.mp4": {
949
+ "prompt_en": "A beautiful coastal beach in spring, waves lapping on sand, tilt up",
950
+ "dimension": [
951
+ "temporal_style"
952
+ ]
953
+ },
954
+ "109_The_bund_Shanghai,_zoom_out.mp4": {
955
+ "prompt_en": "The bund Shanghai, zoom out",
956
+ "dimension": [
957
+ "temporal_style"
958
+ ]
959
+ },
960
+ "110_a_shark_is_swimming_in_the_ocean,_featuring_a_steady_and_smooth_perspective.mp4": {
961
+ "prompt_en": "a shark is swimming in the ocean, featuring a steady and smooth perspective",
962
+ "dimension": [
963
+ "temporal_style"
964
+ ]
965
+ },
966
+ "111_A_panda_drinking_coffee_in_a_cafe_in_Paris,_in_super_slow_motion.mp4": {
967
+ "prompt_en": "A panda drinking coffee in a cafe in Paris, in super slow motion",
968
+ "dimension": [
969
+ "temporal_style"
970
+ ]
971
+ },
972
+ "112_Gwen_Stacy_reading_a_book,_zoom_out.mp4": {
973
+ "prompt_en": "Gwen Stacy reading a book, zoom out",
974
+ "dimension": [
975
+ "temporal_style"
976
+ ]
977
+ },
978
+ "113_Gwen_Stacy_reading_a_book,_featuring_a_steady_and_smooth_perspective.mp4": {
979
+ "prompt_en": "Gwen Stacy reading a book, featuring a steady and smooth perspective",
980
+ "dimension": [
981
+ "temporal_style"
982
+ ]
983
+ },
984
+ "114_A_couple_in_formal_evening_wear_going_home_get_caught_in_a_heavy_downpour_with_umbrellas,_tilt_down.mp4": {
985
+ "prompt_en": "A couple in formal evening wear going home get caught in a heavy downpour with umbrellas, tilt down",
986
+ "dimension": [
987
+ "temporal_style"
988
+ ]
989
+ },
990
+ "115_Snow_rocky_mountains_peaks_canyon._snow_blanketed_rocky_mountains_surround_and_shadow_deep_canyons._the_canyons_twist_and_bend_through_the_high_elevated_mountain_peaks,_tilt_up.mp4": {
991
+ "prompt_en": "Snow rocky mountains peaks canyon. snow blanketed rocky mountains surround and shadow deep canyons. the canyons twist and bend through the high elevated mountain peaks, tilt up",
992
+ "dimension": [
993
+ "temporal_style"
994
+ ]
995
+ },
996
+ "116_Snow_rocky_mountains_peaks_canyon._snow_blanketed_rocky_mountains_surround_and_shadow_deep_canyons._the_canyons_twist_and_bend_through_the_high_elevated_mountain_peaks,_racking_focus.mp4": {
997
+ "prompt_en": "Snow rocky mountains peaks canyon. snow blanketed rocky mountains surround and shadow deep canyons. the canyons twist and bend through the high elevated mountain peaks, racking focus",
998
+ "dimension": [
999
+ "temporal_style"
1000
+ ]
1001
+ },
1002
+ "117_Flying_through_fantasy_landscapes..mp4": {
1003
+ "prompt_en": "Flying through fantasy landscapes.",
1004
+ "dimension": [
1005
+ "overall_consistency",
1006
+ "aesthetic_quality",
1007
+ "imaging_quality"
1008
+ ]
1009
+ },
1010
+ "118_Aerial_panoramic_video_from_a_drone_of_a_fantasy_land..mp4": {
1011
+ "prompt_en": "Aerial panoramic video from a drone of a fantasy land.",
1012
+ "dimension": [
1013
+ "overall_consistency",
1014
+ "aesthetic_quality",
1015
+ "imaging_quality"
1016
+ ]
1017
+ },
1018
+ "119_Balloon_full_of_water_exploding_in_extreme_slow_motion..mp4": {
1019
+ "prompt_en": "Balloon full of water exploding in extreme slow motion.",
1020
+ "dimension": [
1021
+ "overall_consistency",
1022
+ "aesthetic_quality",
1023
+ "imaging_quality"
1024
+ ]
1025
+ },
1026
+ "120_Few_big_purple_plums_rotating_on_the_turntable._water_drops_appear_on_the_skin_during_rotation._isolated_on_the_white_background._close-up._macro..mp4": {
1027
+ "prompt_en": "Few big purple plums rotating on the turntable. water drops appear on the skin during rotation. isolated on the white background. close-up. macro.",
1028
+ "dimension": [
1029
+ "overall_consistency",
1030
+ "aesthetic_quality",
1031
+ "imaging_quality"
1032
+ ]
1033
+ },
1034
+ "121_A_fantasy_landscape.mp4": {
1035
+ "prompt_en": "A fantasy landscape",
1036
+ "dimension": [
1037
+ "overall_consistency",
1038
+ "aesthetic_quality",
1039
+ "imaging_quality"
1040
+ ]
1041
+ },
1042
+ "122_A_steam_train_moving_on_a_mountainside.mp4": {
1043
+ "prompt_en": "A steam train moving on a mountainside",
1044
+ "dimension": [
1045
+ "overall_consistency",
1046
+ "aesthetic_quality",
1047
+ "imaging_quality"
1048
+ ]
1049
+ },
1050
+ "123_A_beautiful_coastal_beach_in_spring,_waves_lapping_on_sand_by_Hokusai,_in_the_style_of_Ukiyo.mp4": {
1051
+ "prompt_en": "A beautiful coastal beach in spring, waves lapping on sand by Hokusai, in the style of Ukiyo",
1052
+ "dimension": [
1053
+ "overall_consistency",
1054
+ "aesthetic_quality",
1055
+ "imaging_quality"
1056
+ ]
1057
+ },
1058
+ "124_A_polar_bear_is_playing_guitar.mp4": {
1059
+ "prompt_en": "A polar bear is playing guitar",
1060
+ "dimension": [
1061
+ "overall_consistency",
1062
+ "aesthetic_quality",
1063
+ "imaging_quality"
1064
+ ]
1065
+ },
1066
+ "125_An_astronaut_feeding_ducks_on_a_sunny_afternoon,_reflection_from_the_water..mp4": {
1067
+ "prompt_en": "An astronaut feeding ducks on a sunny afternoon, reflection from the water.",
1068
+ "dimension": [
1069
+ "overall_consistency",
1070
+ "aesthetic_quality",
1071
+ "imaging_quality"
1072
+ ]
1073
+ },
1074
+ "126_Sunset_time_lapse_at_the_beach_with_moving_clouds_and_colors_in_the_sky..mp4": {
1075
+ "prompt_en": "Sunset time lapse at the beach with moving clouds and colors in the sky.",
1076
+ "dimension": [
1077
+ "overall_consistency",
1078
+ "aesthetic_quality",
1079
+ "imaging_quality"
1080
+ ]
1081
+ },
1082
+ "127_Flying_through_fantasy_landscapes..mp4": {
1083
+ "prompt_en": "Flying through fantasy landscapes.",
1084
+ "dimension": [
1085
+ "overall_consistency",
1086
+ "aesthetic_quality",
1087
+ "imaging_quality"
1088
+ ]
1089
+ },
1090
+ "128_A_squirrel_eating_a_burger..mp4": {
1091
+ "prompt_en": "A squirrel eating a burger.",
1092
+ "dimension": [
1093
+ "overall_consistency",
1094
+ "aesthetic_quality",
1095
+ "imaging_quality"
1096
+ ]
1097
+ },
1098
+ "129_A_drone_view_of_celebration_with_Christmas_tree_and_fireworks,_starry_sky_-_background..mp4": {
1099
+ "prompt_en": "A drone view of celebration with Christmas tree and fireworks, starry sky - background.",
1100
+ "dimension": [
1101
+ "overall_consistency",
1102
+ "aesthetic_quality",
1103
+ "imaging_quality"
1104
+ ]
1105
+ },
1106
+ "130_Robot_dancing_in_Times_Square..mp4": {
1107
+ "prompt_en": "Robot dancing in Times Square.",
1108
+ "dimension": [
1109
+ "overall_consistency",
1110
+ "aesthetic_quality",
1111
+ "imaging_quality"
1112
+ ]
1113
+ },
1114
+ "131_Few_big_purple_plums_rotating_on_the_turntable._water_drops_appear_on_the_skin_during_rotation._isolated_on_the_white_background._close-up._macro..mp4": {
1115
+ "prompt_en": "Few big purple plums rotating on the turntable. water drops appear on the skin during rotation. isolated on the white background. close-up. macro.",
1116
+ "dimension": [
1117
+ "overall_consistency",
1118
+ "aesthetic_quality",
1119
+ "imaging_quality"
1120
+ ]
1121
+ },
1122
+ "132_Ashtray_full_of_butts_on_table,_smoke_flowing_on_black_background,_close-up.mp4": {
1123
+ "prompt_en": "Ashtray full of butts on table, smoke flowing on black background, close-up",
1124
+ "dimension": [
1125
+ "overall_consistency",
1126
+ "aesthetic_quality",
1127
+ "imaging_quality"
1128
+ ]
1129
+ },
1130
+ "133_A_future_where_humans_have_achieved_teleportation_technology.mp4": {
1131
+ "prompt_en": "A future where humans have achieved teleportation technology",
1132
+ "dimension": [
1133
+ "overall_consistency",
1134
+ "aesthetic_quality",
1135
+ "imaging_quality"
1136
+ ]
1137
+ },
1138
+ "134_Gwen_Stacy_reading_a_book.mp4": {
1139
+ "prompt_en": "Gwen Stacy reading a book",
1140
+ "dimension": [
1141
+ "overall_consistency",
1142
+ "aesthetic_quality",
1143
+ "imaging_quality"
1144
+ ]
1145
+ },
1146
+ "135_Yoda_playing_guitar_on_the_stage.mp4": {
1147
+ "prompt_en": "Yoda playing guitar on the stage",
1148
+ "dimension": [
1149
+ "overall_consistency",
1150
+ "aesthetic_quality",
1151
+ "imaging_quality"
1152
+ ]
1153
+ },
1154
+ "136_A_cat_eating_food_out_of_a_bowl.mp4": {
1155
+ "prompt_en": "A cat eating food out of a bowl",
1156
+ "dimension": [
1157
+ "overall_consistency",
1158
+ "aesthetic_quality",
1159
+ "imaging_quality"
1160
+ ]
1161
+ },
1162
+ "137_A_cute_raccoon_playing_guitar_in_a_boat_on_the_ocean.mp4": {
1163
+ "prompt_en": "A cute raccoon playing guitar in a boat on the ocean",
1164
+ "dimension": [
1165
+ "overall_consistency",
1166
+ "aesthetic_quality",
1167
+ "imaging_quality"
1168
+ ]
1169
+ },
1170
+ "138_A_happy_fuzzy_panda_playing_guitar_nearby_a_campfire,_snow_mountain_in_the_background.mp4": {
1171
+ "prompt_en": "A happy fuzzy panda playing guitar nearby a campfire, snow mountain in the background",
1172
+ "dimension": [
1173
+ "overall_consistency",
1174
+ "aesthetic_quality",
1175
+ "imaging_quality"
1176
+ ]
1177
+ },
1178
+ "139_A_polar_bear_is_playing_guitar.mp4": {
1179
+ "prompt_en": "A polar bear is playing guitar",
1180
+ "dimension": [
1181
+ "overall_consistency",
1182
+ "aesthetic_quality",
1183
+ "imaging_quality"
1184
+ ]
1185
+ },
1186
+ "140_A_bigfoot_walking_in_the_snowstorm..mp4": {
1187
+ "prompt_en": "A bigfoot walking in the snowstorm.",
1188
+ "dimension": [
1189
+ "overall_consistency",
1190
+ "aesthetic_quality",
1191
+ "imaging_quality"
1192
+ ]
1193
+ },
1194
+ "141_A_drone_view_of_celebration_with_Christmas_tree_and_fireworks,_starry_sky_-_background..mp4": {
1195
+ "prompt_en": "A drone view of celebration with Christmas tree and fireworks, starry sky - background.",
1196
+ "dimension": [
1197
+ "overall_consistency",
1198
+ "aesthetic_quality",
1199
+ "imaging_quality"
1200
+ ]
1201
+ },
1202
+ "142_An_astronaut_is_riding_a_horse_in_the_space_in_a_photorealistic_style..mp4": {
1203
+ "prompt_en": "An astronaut is riding a horse in the space in a photorealistic style.",
1204
+ "dimension": [
1205
+ "overall_consistency",
1206
+ "aesthetic_quality",
1207
+ "imaging_quality"
1208
+ ]
1209
+ },
1210
+ "143_Sewing_machine,_old_sewing_machine_working..mp4": {
1211
+ "prompt_en": "Sewing machine, old sewing machine working.",
1212
+ "dimension": [
1213
+ "overall_consistency",
1214
+ "aesthetic_quality",
1215
+ "imaging_quality"
1216
+ ]
1217
+ },
1218
+ "144_A_boat_sailing_leisurely_along_the_Seine_River_with_the_Eiffel_Tower_in_background_by_Vincent_van_Gogh.mp4": {
1219
+ "prompt_en": "A boat sailing leisurely along the Seine River with the Eiffel Tower in background by Vincent van Gogh",
1220
+ "dimension": [
1221
+ "overall_consistency",
1222
+ "aesthetic_quality",
1223
+ "imaging_quality"
1224
+ ]
1225
+ },
1226
+ "145_A_Mars_rover_moving_on_Mars.mp4": {
1227
+ "prompt_en": "A Mars rover moving on Mars",
1228
+ "dimension": [
1229
+ "overall_consistency",
1230
+ "aesthetic_quality",
1231
+ "imaging_quality"
1232
+ ]
1233
+ },
1234
+ "146_A_super_cool_giant_robot_in_Cyberpunk_Beijing.mp4": {
1235
+ "prompt_en": "A super cool giant robot in Cyberpunk Beijing",
1236
+ "dimension": [
1237
+ "overall_consistency",
1238
+ "aesthetic_quality",
1239
+ "imaging_quality"
1240
+ ]
1241
+ },
1242
+ "147_Iron_Man_flying_in_the_sky.mp4": {
1243
+ "prompt_en": "Iron Man flying in the sky",
1244
+ "dimension": [
1245
+ "overall_consistency",
1246
+ "aesthetic_quality",
1247
+ "imaging_quality"
1248
+ ]
1249
+ },
1250
+ "148_A_beautiful_coastal_beach_in_spring,_waves_lapping_on_sand_by_Hokusai,_in_the_style_of_Ukiyo.mp4": {
1251
+ "prompt_en": "A beautiful coastal beach in spring, waves lapping on sand by Hokusai, in the style of Ukiyo",
1252
+ "dimension": [
1253
+ "overall_consistency",
1254
+ "aesthetic_quality",
1255
+ "imaging_quality"
1256
+ ]
1257
+ },
1258
+ "149_A_cat_eating_food_out_of_a_bowl.mp4": {
1259
+ "prompt_en": "A cat eating food out of a bowl",
1260
+ "dimension": [
1261
+ "overall_consistency",
1262
+ "aesthetic_quality",
1263
+ "imaging_quality"
1264
+ ]
1265
+ },
1266
+ "150_A_cute_fluffy_panda_eating_Chinese_food_in_a_restaurant.mp4": {
1267
+ "prompt_en": "A cute fluffy panda eating Chinese food in a restaurant",
1268
+ "dimension": [
1269
+ "overall_consistency",
1270
+ "aesthetic_quality",
1271
+ "imaging_quality"
1272
+ ]
1273
+ },
1274
+ "151_A_cute_raccoon_playing_guitar_in_a_boat_on_the_ocean.mp4": {
1275
+ "prompt_en": "A cute raccoon playing guitar in a boat on the ocean",
1276
+ "dimension": [
1277
+ "overall_consistency",
1278
+ "aesthetic_quality",
1279
+ "imaging_quality"
1280
+ ]
1281
+ },
1282
+ "152_Clown_fish_swimming_through_the_coral_reef.mp4": {
1283
+ "prompt_en": "Clown fish swimming through the coral reef",
1284
+ "dimension": [
1285
+ "overall_consistency",
1286
+ "aesthetic_quality",
1287
+ "imaging_quality"
1288
+ ]
1289
+ },
1290
+ "153_The_bund_Shanghai,_vibrant_color.mp4": {
1291
+ "prompt_en": "The bund Shanghai, vibrant color",
1292
+ "dimension": [
1293
+ "overall_consistency",
1294
+ "aesthetic_quality",
1295
+ "imaging_quality"
1296
+ ]
1297
+ },
1298
+ "154_alley.mp4": {
1299
+ "prompt_en": "alley",
1300
+ "dimension": [
1301
+ "scene",
1302
+ "background_consistency"
1303
+ ],
1304
+ "auxiliary_info": {
1305
+ "scene": {
1306
+ "scene": {
1307
+ "scene": "alley"
1308
+ }
1309
+ }
1310
+ }
1311
+ },
1312
+ "155_bridge.mp4": {
1313
+ "prompt_en": "bridge",
1314
+ "dimension": [
1315
+ "scene",
1316
+ "background_consistency"
1317
+ ],
1318
+ "auxiliary_info": {
1319
+ "scene": {
1320
+ "scene": {
1321
+ "scene": "bridge"
1322
+ }
1323
+ }
1324
+ }
1325
+ },
1326
+ "156_botanical_garden.mp4": {
1327
+ "prompt_en": "botanical garden",
1328
+ "dimension": [
1329
+ "scene",
1330
+ "background_consistency"
1331
+ ],
1332
+ "auxiliary_info": {
1333
+ "scene": {
1334
+ "scene": {
1335
+ "scene": "botanical garden"
1336
+ }
1337
+ }
1338
+ }
1339
+ },
1340
+ "157_campsite.mp4": {
1341
+ "prompt_en": "campsite",
1342
+ "dimension": [
1343
+ "scene",
1344
+ "background_consistency"
1345
+ ],
1346
+ "auxiliary_info": {
1347
+ "scene": {
1348
+ "scene": {
1349
+ "scene": "campsite"
1350
+ }
1351
+ }
1352
+ }
1353
+ },
1354
+ "158_castle.mp4": {
1355
+ "prompt_en": "castle",
1356
+ "dimension": [
1357
+ "scene",
1358
+ "background_consistency"
1359
+ ],
1360
+ "auxiliary_info": {
1361
+ "scene": {
1362
+ "scene": {
1363
+ "scene": "castle"
1364
+ }
1365
+ }
1366
+ }
1367
+ },
1368
+ "159_construction_site.mp4": {
1369
+ "prompt_en": "construction site",
1370
+ "dimension": [
1371
+ "scene",
1372
+ "background_consistency"
1373
+ ],
1374
+ "auxiliary_info": {
1375
+ "scene": {
1376
+ "scene": {
1377
+ "scene": "construction site"
1378
+ }
1379
+ }
1380
+ }
1381
+ },
1382
+ "160_food_court.mp4": {
1383
+ "prompt_en": "food court",
1384
+ "dimension": [
1385
+ "scene",
1386
+ "background_consistency"
1387
+ ],
1388
+ "auxiliary_info": {
1389
+ "scene": {
1390
+ "scene": {
1391
+ "scene": "food court"
1392
+ }
1393
+ }
1394
+ }
1395
+ },
1396
+ "161_hospital.mp4": {
1397
+ "prompt_en": "hospital",
1398
+ "dimension": [
1399
+ "scene",
1400
+ "background_consistency"
1401
+ ],
1402
+ "auxiliary_info": {
1403
+ "scene": {
1404
+ "scene": {
1405
+ "scene": "hospital"
1406
+ }
1407
+ }
1408
+ }
1409
+ },
1410
+ "162_industrial_area.mp4": {
1411
+ "prompt_en": "industrial area",
1412
+ "dimension": [
1413
+ "scene",
1414
+ "background_consistency"
1415
+ ],
1416
+ "auxiliary_info": {
1417
+ "scene": {
1418
+ "scene": {
1419
+ "scene": "industrial area"
1420
+ }
1421
+ }
1422
+ }
1423
+ },
1424
+ "163_junkyard.mp4": {
1425
+ "prompt_en": "junkyard",
1426
+ "dimension": [
1427
+ "scene",
1428
+ "background_consistency"
1429
+ ],
1430
+ "auxiliary_info": {
1431
+ "scene": {
1432
+ "scene": {
1433
+ "scene": "junkyard"
1434
+ }
1435
+ }
1436
+ }
1437
+ },
1438
+ "164_lighthouse.mp4": {
1439
+ "prompt_en": "lighthouse",
1440
+ "dimension": [
1441
+ "scene",
1442
+ "background_consistency"
1443
+ ],
1444
+ "auxiliary_info": {
1445
+ "scene": {
1446
+ "scene": {
1447
+ "scene": "lighthouse"
1448
+ }
1449
+ }
1450
+ }
1451
+ },
1452
+ "165_indoor_movie_theater.mp4": {
1453
+ "prompt_en": "indoor movie theater",
1454
+ "dimension": [
1455
+ "scene",
1456
+ "background_consistency"
1457
+ ],
1458
+ "auxiliary_info": {
1459
+ "scene": {
1460
+ "scene": {
1461
+ "scene": "indoor movie theater"
1462
+ }
1463
+ }
1464
+ }
1465
+ },
1466
+ "166_nursery.mp4": {
1467
+ "prompt_en": "nursery",
1468
+ "dimension": [
1469
+ "scene",
1470
+ "background_consistency"
1471
+ ],
1472
+ "auxiliary_info": {
1473
+ "scene": {
1474
+ "scene": {
1475
+ "scene": "nursery"
1476
+ }
1477
+ }
1478
+ }
1479
+ },
1480
+ "167_ocean.mp4": {
1481
+ "prompt_en": "ocean",
1482
+ "dimension": [
1483
+ "scene",
1484
+ "background_consistency"
1485
+ ],
1486
+ "auxiliary_info": {
1487
+ "scene": {
1488
+ "scene": {
1489
+ "scene": "ocean"
1490
+ }
1491
+ }
1492
+ }
1493
+ },
1494
+ "168_office.mp4": {
1495
+ "prompt_en": "office",
1496
+ "dimension": [
1497
+ "scene",
1498
+ "background_consistency"
1499
+ ],
1500
+ "auxiliary_info": {
1501
+ "scene": {
1502
+ "scene": {
1503
+ "scene": "office"
1504
+ }
1505
+ }
1506
+ }
1507
+ },
1508
+ "169_river.mp4": {
1509
+ "prompt_en": "river",
1510
+ "dimension": [
1511
+ "scene",
1512
+ "background_consistency"
1513
+ ],
1514
+ "auxiliary_info": {
1515
+ "scene": {
1516
+ "scene": {
1517
+ "scene": "river"
1518
+ }
1519
+ }
1520
+ }
1521
+ },
1522
+ "170_shower.mp4": {
1523
+ "prompt_en": "shower",
1524
+ "dimension": [
1525
+ "scene",
1526
+ "background_consistency"
1527
+ ],
1528
+ "auxiliary_info": {
1529
+ "scene": {
1530
+ "scene": {
1531
+ "scene": "shower"
1532
+ }
1533
+ }
1534
+ }
1535
+ },
1536
+ "171_supermarket.mp4": {
1537
+ "prompt_en": "supermarket",
1538
+ "dimension": [
1539
+ "scene",
1540
+ "background_consistency"
1541
+ ],
1542
+ "auxiliary_info": {
1543
+ "scene": {
1544
+ "scene": {
1545
+ "scene": "supermarket"
1546
+ }
1547
+ }
1548
+ }
1549
+ },
1550
+ "172_tower.mp4": {
1551
+ "prompt_en": "tower",
1552
+ "dimension": [
1553
+ "scene",
1554
+ "background_consistency"
1555
+ ],
1556
+ "auxiliary_info": {
1557
+ "scene": {
1558
+ "scene": {
1559
+ "scene": "tower"
1560
+ }
1561
+ }
1562
+ }
1563
+ },
1564
+ "173_bakery_shop.mp4": {
1565
+ "prompt_en": "bakery shop",
1566
+ "dimension": [
1567
+ "scene",
1568
+ "background_consistency"
1569
+ ],
1570
+ "auxiliary_info": {
1571
+ "scene": {
1572
+ "scene": {
1573
+ "scene": "bakery shop"
1574
+ }
1575
+ }
1576
+ }
1577
+ },
1578
+ "174_ballroom.mp4": {
1579
+ "prompt_en": "ballroom",
1580
+ "dimension": [
1581
+ "scene",
1582
+ "background_consistency"
1583
+ ],
1584
+ "auxiliary_info": {
1585
+ "scene": {
1586
+ "scene": {
1587
+ "scene": "ballroom"
1588
+ }
1589
+ }
1590
+ }
1591
+ },
1592
+ "175_botanical_garden.mp4": {
1593
+ "prompt_en": "botanical garden",
1594
+ "dimension": [
1595
+ "scene",
1596
+ "background_consistency"
1597
+ ],
1598
+ "auxiliary_info": {
1599
+ "scene": {
1600
+ "scene": {
1601
+ "scene": "botanical garden"
1602
+ }
1603
+ }
1604
+ }
1605
+ },
1606
+ "176_cafeteria.mp4": {
1607
+ "prompt_en": "cafeteria",
1608
+ "dimension": [
1609
+ "scene",
1610
+ "background_consistency"
1611
+ ],
1612
+ "auxiliary_info": {
1613
+ "scene": {
1614
+ "scene": {
1615
+ "scene": "cafeteria"
1616
+ }
1617
+ }
1618
+ }
1619
+ },
1620
+ "177_crosswalk.mp4": {
1621
+ "prompt_en": "crosswalk",
1622
+ "dimension": [
1623
+ "scene",
1624
+ "background_consistency"
1625
+ ],
1626
+ "auxiliary_info": {
1627
+ "scene": {
1628
+ "scene": {
1629
+ "scene": "crosswalk"
1630
+ }
1631
+ }
1632
+ }
1633
+ },
1634
+ "178_construction_site.mp4": {
1635
+ "prompt_en": "construction site",
1636
+ "dimension": [
1637
+ "scene",
1638
+ "background_consistency"
1639
+ ],
1640
+ "auxiliary_info": {
1641
+ "scene": {
1642
+ "scene": {
1643
+ "scene": "construction site"
1644
+ }
1645
+ }
1646
+ }
1647
+ },
1648
+ "179_courtyard.mp4": {
1649
+ "prompt_en": "courtyard",
1650
+ "dimension": [
1651
+ "scene",
1652
+ "background_consistency"
1653
+ ],
1654
+ "auxiliary_info": {
1655
+ "scene": {
1656
+ "scene": {
1657
+ "scene": "courtyard"
1658
+ }
1659
+ }
1660
+ }
1661
+ },
1662
+ "180_food_court.mp4": {
1663
+ "prompt_en": "food court",
1664
+ "dimension": [
1665
+ "scene",
1666
+ "background_consistency"
1667
+ ],
1668
+ "auxiliary_info": {
1669
+ "scene": {
1670
+ "scene": {
1671
+ "scene": "food court"
1672
+ }
1673
+ }
1674
+ }
1675
+ },
1676
+ "181_indoor_gymnasium.mp4": {
1677
+ "prompt_en": "indoor gymnasium",
1678
+ "dimension": [
1679
+ "scene",
1680
+ "background_consistency"
1681
+ ],
1682
+ "auxiliary_info": {
1683
+ "scene": {
1684
+ "scene": {
1685
+ "scene": "indoor gymnasium"
1686
+ }
1687
+ }
1688
+ }
1689
+ },
1690
+ "182_indoor_library.mp4": {
1691
+ "prompt_en": "indoor library",
1692
+ "dimension": [
1693
+ "scene",
1694
+ "background_consistency"
1695
+ ],
1696
+ "auxiliary_info": {
1697
+ "scene": {
1698
+ "scene": {
1699
+ "scene": "indoor library"
1700
+ }
1701
+ }
1702
+ }
1703
+ },
1704
+ "183_marsh.mp4": {
1705
+ "prompt_en": "marsh",
1706
+ "dimension": [
1707
+ "scene",
1708
+ "background_consistency"
1709
+ ],
1710
+ "auxiliary_info": {
1711
+ "scene": {
1712
+ "scene": {
1713
+ "scene": "marsh"
1714
+ }
1715
+ }
1716
+ }
1717
+ },
1718
+ "184_mountain.mp4": {
1719
+ "prompt_en": "mountain",
1720
+ "dimension": [
1721
+ "scene",
1722
+ "background_consistency"
1723
+ ],
1724
+ "auxiliary_info": {
1725
+ "scene": {
1726
+ "scene": {
1727
+ "scene": "mountain"
1728
+ }
1729
+ }
1730
+ }
1731
+ },
1732
+ "185_science_museum.mp4": {
1733
+ "prompt_en": "science museum",
1734
+ "dimension": [
1735
+ "scene",
1736
+ "background_consistency"
1737
+ ],
1738
+ "auxiliary_info": {
1739
+ "scene": {
1740
+ "scene": {
1741
+ "scene": "science museum"
1742
+ }
1743
+ }
1744
+ }
1745
+ },
1746
+ "186_a_parking_meter_on_the_right_of_a_bench,_front_view.mp4": {
1747
+ "prompt_en": "a parking meter on the right of a bench, front view",
1748
+ "dimension": [
1749
+ "spatial_relationship"
1750
+ ],
1751
+ "auxiliary_info": {
1752
+ "spatial_relationship": {
1753
+ "spatial_relationship": {
1754
+ "object_a": "parking meter",
1755
+ "object_b": "bench",
1756
+ "relationship": "on the right of"
1757
+ }
1758
+ }
1759
+ }
1760
+ },
1761
+ "187_a_cow_on_the_right_of_an_elephant,_front_view.mp4": {
1762
+ "prompt_en": "a cow on the right of an elephant, front view",
1763
+ "dimension": [
1764
+ "spatial_relationship"
1765
+ ],
1766
+ "auxiliary_info": {
1767
+ "spatial_relationship": {
1768
+ "spatial_relationship": {
1769
+ "object_a": "cow",
1770
+ "object_b": "elephant",
1771
+ "relationship": "on the right of"
1772
+ }
1773
+ }
1774
+ }
1775
+ },
1776
+ "188_a_sports_ball_on_the_right_of_a_baseball_bat,_front_view.mp4": {
1777
+ "prompt_en": "a sports ball on the right of a baseball bat, front view",
1778
+ "dimension": [
1779
+ "spatial_relationship"
1780
+ ],
1781
+ "auxiliary_info": {
1782
+ "spatial_relationship": {
1783
+ "spatial_relationship": {
1784
+ "object_a": "sports ball",
1785
+ "object_b": "baseball bat",
1786
+ "relationship": "on the right of"
1787
+ }
1788
+ }
1789
+ }
1790
+ },
1791
+ "189_a_baseball_bat_on_the_left_of_a_baseball_glove,_front_view.mp4": {
1792
+ "prompt_en": "a baseball bat on the left of a baseball glove, front view",
1793
+ "dimension": [
1794
+ "spatial_relationship"
1795
+ ],
1796
+ "auxiliary_info": {
1797
+ "spatial_relationship": {
1798
+ "spatial_relationship": {
1799
+ "object_a": "baseball bat",
1800
+ "object_b": "baseball glove",
1801
+ "relationship": "on the left of"
1802
+ }
1803
+ }
1804
+ }
1805
+ },
1806
+ "190_an_oven_on_the_bottom_of_a_toaster,_front_view.mp4": {
1807
+ "prompt_en": "an oven on the bottom of a toaster, front view",
1808
+ "dimension": [
1809
+ "spatial_relationship"
1810
+ ],
1811
+ "auxiliary_info": {
1812
+ "spatial_relationship": {
1813
+ "spatial_relationship": {
1814
+ "object_a": "oven",
1815
+ "object_b": "toaster",
1816
+ "relationship": "on the bottom of"
1817
+ }
1818
+ }
1819
+ }
1820
+ },
1821
+ "191_a_hot_dog_on_the_top_of_a_pizza,_front_view.mp4": {
1822
+ "prompt_en": "a hot dog on the top of a pizza, front view",
1823
+ "dimension": [
1824
+ "spatial_relationship"
1825
+ ],
1826
+ "auxiliary_info": {
1827
+ "spatial_relationship": {
1828
+ "spatial_relationship": {
1829
+ "object_a": "hot dog",
1830
+ "object_b": "pizza",
1831
+ "relationship": "on the top of"
1832
+ }
1833
+ }
1834
+ }
1835
+ },
1836
+ "192_a_donut_on_the_top_of_broccoli,_front_view.mp4": {
1837
+ "prompt_en": "a donut on the top of broccoli, front view",
1838
+ "dimension": [
1839
+ "spatial_relationship"
1840
+ ],
1841
+ "auxiliary_info": {
1842
+ "spatial_relationship": {
1843
+ "spatial_relationship": {
1844
+ "object_a": "donut",
1845
+ "object_b": "broccoli",
1846
+ "relationship": "on the top of"
1847
+ }
1848
+ }
1849
+ }
1850
+ },
1851
+ "193_a_donut_on_the_bottom_of_broccoli,_front_view.mp4": {
1852
+ "prompt_en": "a donut on the bottom of broccoli, front view",
1853
+ "dimension": [
1854
+ "spatial_relationship"
1855
+ ],
1856
+ "auxiliary_info": {
1857
+ "spatial_relationship": {
1858
+ "spatial_relationship": {
1859
+ "object_a": "donut",
1860
+ "object_b": "broccoli",
1861
+ "relationship": "on the bottom of"
1862
+ }
1863
+ }
1864
+ }
1865
+ },
1866
+ "194_broccoli_on_the_bottom_of_a_banana,_front_view.mp4": {
1867
+ "prompt_en": "broccoli on the bottom of a banana, front view",
1868
+ "dimension": [
1869
+ "spatial_relationship"
1870
+ ],
1871
+ "auxiliary_info": {
1872
+ "spatial_relationship": {
1873
+ "spatial_relationship": {
1874
+ "object_a": "broccoli",
1875
+ "object_b": "banana",
1876
+ "relationship": "on the bottom of"
1877
+ }
1878
+ }
1879
+ }
1880
+ },
1881
+ "195_skis_on_the_top_of_a_snowboard,_front_view.mp4": {
1882
+ "prompt_en": "skis on the top of a snowboard, front view",
1883
+ "dimension": [
1884
+ "spatial_relationship"
1885
+ ],
1886
+ "auxiliary_info": {
1887
+ "spatial_relationship": {
1888
+ "spatial_relationship": {
1889
+ "object_a": "skis",
1890
+ "object_b": "snowboard",
1891
+ "relationship": "on the top of"
1892
+ }
1893
+ }
1894
+ }
1895
+ },
1896
+ "196_a_snowboard_on_the_bottom_of_a_kite,_front_view.mp4": {
1897
+ "prompt_en": "a snowboard on the bottom of a kite, front view",
1898
+ "dimension": [
1899
+ "spatial_relationship"
1900
+ ],
1901
+ "auxiliary_info": {
1902
+ "spatial_relationship": {
1903
+ "spatial_relationship": {
1904
+ "object_a": "snowboard",
1905
+ "object_b": "kite",
1906
+ "relationship": "on the bottom of"
1907
+ }
1908
+ }
1909
+ }
1910
+ },
1911
+ "197_a_kite_on_the_bottom_of_a_skateboard,_front_view.mp4": {
1912
+ "prompt_en": "a kite on the bottom of a skateboard, front view",
1913
+ "dimension": [
1914
+ "spatial_relationship"
1915
+ ],
1916
+ "auxiliary_info": {
1917
+ "spatial_relationship": {
1918
+ "spatial_relationship": {
1919
+ "object_a": "kite",
1920
+ "object_b": "skateboard",
1921
+ "relationship": "on the bottom of"
1922
+ }
1923
+ }
1924
+ }
1925
+ },
1926
+ "198_a_skateboard_on_the_top_of_a_surfboard,_front_view.mp4": {
1927
+ "prompt_en": "a skateboard on the top of a surfboard, front view",
1928
+ "dimension": [
1929
+ "spatial_relationship"
1930
+ ],
1931
+ "auxiliary_info": {
1932
+ "spatial_relationship": {
1933
+ "spatial_relationship": {
1934
+ "object_a": "skateboard",
1935
+ "object_b": "surfboard",
1936
+ "relationship": "on the top of"
1937
+ }
1938
+ }
1939
+ }
1940
+ },
1941
+ "199_a_surfboard_on_the_top_of_skis,_front_view.mp4": {
1942
+ "prompt_en": "a surfboard on the top of skis, front view",
1943
+ "dimension": [
1944
+ "spatial_relationship"
1945
+ ],
1946
+ "auxiliary_info": {
1947
+ "spatial_relationship": {
1948
+ "spatial_relationship": {
1949
+ "object_a": "surfboard",
1950
+ "object_b": "skis",
1951
+ "relationship": "on the top of"
1952
+ }
1953
+ }
1954
+ }
1955
+ }
1956
+ }
src/videogen_hub/benchmark/t2v_vbench_800.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/t2v_vbench_remain.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/t2v_vbench_remain_1000.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/t2v_vbench_remain_200.json ADDED
The diff for this file is too large to render. See raw diff
 
src/videogen_hub/benchmark/text_guided_t2v.py ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Optional
2
+ import os
3
+ from tqdm import tqdm
4
+ from videogen_hub.infermodels import load_model
5
+ import cv2, json
6
+ import numpy as np
7
+ import argparse
8
+ from videogen_hub.utils.file_helper import get_file_path
9
+ from moviepy.editor import ImageSequenceClip
10
+
11
+
12
+ def infer_text_guided_vg_bench(
13
+ model,
14
+ result_folder: str = "results",
15
+ experiment_name: str = "Exp_Text-Guided_VG",
16
+ overwrite_model_outputs: bool = False,
17
+ overwrite_inputs: bool = False,
18
+ limit_videos_amount: Optional[int] = None,
19
+ ):
20
+ """
21
+ Performs inference on the VideogenHub dataset using the provided text-guided video generation model.
22
+
23
+ Args:
24
+ model: Instance of a model that supports text-guided video generation. Expected to have
25
+ a method 'infer_one_video' for inferencing.
26
+ result_folder (str, optional): Path to the root directory where the results should be saved.
27
+ Defaults to 'results'.
28
+ experiment_name (str, optional): Name of the folder inside 'result_folder' where results
29
+ for this particular experiment will be stored. Defaults to "Exp_Text-Guided_IG".
30
+ overwrite_model_outputs (bool, optional): If set to True, will overwrite any pre-existing
31
+ model outputs. Useful for resuming runs. Defaults to False.
32
+ overwrite_inputs (bool, optional): If set to True, will overwrite any pre-existing input
33
+ samples. Typically, should be set to False unless there's a need to update the inputs.
34
+ Defaults to False.
35
+ limit_videos_amount (int, optional): Limits the number of videos to be processed. If set to
36
+ None, all videos in the dataset will be processed.
37
+
38
+ Returns:
39
+ None. Results are saved in the specified directory.
40
+
41
+ Notes:
42
+ The function processes each sample from the dataset, uses the model to infer an video based
43
+ on text prompts, and then saves the resulting videos in the specified directories.
44
+ """
45
+ benchmark_prompt_path = "t2v_vbench_1000.json"
46
+ prompts = json.load(open(get_file_path(benchmark_prompt_path), "r"))
47
+ save_path = os.path.join(result_folder, experiment_name, "dataset_lookup.json")
48
+ if overwrite_inputs or not os.path.exists(save_path):
49
+ if not os.path.exists(os.path.join(result_folder, experiment_name)):
50
+ os.makedirs(os.path.join(result_folder, experiment_name))
51
+ with open(save_path, "w") as f:
52
+ json.dump(prompts, f, indent=4)
53
+
54
+ print(
55
+ "========> Running Benchmark Dataset:",
56
+ experiment_name,
57
+ "| Model:",
58
+ model.__class__.__name__,
59
+ )
60
+
61
+ for file_basename, prompt in tqdm(prompts.items()):
62
+ idx = int(file_basename.split("_")[0])
63
+ dest_folder = os.path.join(
64
+ result_folder, experiment_name, model.__class__.__name__
65
+ )
66
+ # file_basename = f"{idx}_{prompt['prompt_en'].replace(' ', '_')}.mp4"
67
+ if not os.path.exists(dest_folder):
68
+ os.mkdir(dest_folder)
69
+ dest_file = os.path.join(dest_folder, file_basename)
70
+ if overwrite_model_outputs or not os.path.exists(dest_file):
71
+ print("========> Inferencing", dest_file)
72
+ frames = model.infer_one_video(prompt=prompt["prompt_en"])
73
+
74
+ #special_treated_list = ["LaVie", "ModelScope", "T2VTurbo"]
75
+ special_treated_list = []
76
+ if model.__class__.__name__ in special_treated_list:
77
+ print("======> Saved through cv2.VideoWriter_fourcc")
78
+ # save the video
79
+ fps = 8
80
+ fourcc = cv2.VideoWriter_fourcc(*"mp4v") # Codec
81
+ out = cv2.VideoWriter(
82
+ dest_file, fourcc, fps, (frames.shape[2], frames.shape[1])
83
+ )
84
+
85
+ # Convert each tensor frame to numpy and write it to the video
86
+ for i in range(frames.shape[0]):
87
+ frame = frames[i].numpy().astype(np.uint8)
88
+ out.write(frame)
89
+
90
+ out.release()
91
+ else:
92
+ def tensor_to_video(tensor, output_path, fps=8):
93
+ """
94
+ Converts a PyTorch tensor to a video file.
95
+
96
+ Args:
97
+ tensor (torch.Tensor): The input tensor of shape (T, C, H, W).
98
+ output_path (str): The path to save the output video.
99
+ fps (int): Frames per second for the output video.
100
+ """
101
+ # Ensure the tensor is on the CPU and convert to NumPy array
102
+ tensor = tensor.cpu().numpy()
103
+
104
+ # Normalize the tensor values to [0, 1]
105
+ tensor_min = tensor.min()
106
+ tensor_max = tensor.max()
107
+ tensor = (tensor - tensor_min) / (tensor_max - tensor_min)
108
+
109
+ # Permute dimensions from (T, C, H, W) to (T, H, W, C) and scale to [0, 255]
110
+ video_frames = (tensor.transpose(0, 2, 3, 1) * 255).astype(np.uint8)
111
+
112
+ # Create a video clip from the frames
113
+ clip = ImageSequenceClip(list(video_frames), fps=fps)
114
+
115
+ # Write the video file
116
+ clip.write_videofile(output_path, codec='libx264')
117
+
118
+ if frames.shape[-1] == 3:
119
+ frames = frames.permute(0, 3, 1, 2)
120
+ print("======> corrected frames.shape", frames.shape)
121
+
122
+ tensor_to_video(frames, dest_file)
123
+ else:
124
+ print("========> Skipping", dest_file, ", it already exists")
125
+
126
+ if limit_videos_amount is not None and (idx >= limit_videos_amount):
127
+ break
128
+
129
+
130
+ # for testing
131
+ if __name__ == "__main__":
132
+ parser = argparse.ArgumentParser(description="Load a model by name")
133
+ parser.add_argument("--model_name", type=str, required=True, help="Name of the model to load")
134
+ args = parser.parse_args()
135
+
136
+ model = load_model(args.model_name)
137
+ infer_text_guided_vg_bench(model)
src/videogen_hub/benchmark/transform.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ def main(prompt_path):
4
+ new_prompt = {}
5
+ prompts = json.load(open(prompt_path, "r"))
6
+
7
+ for idx, prompt in enumerate(prompts):
8
+ new_prompt[f"{idx}_{prompt['prompt_en'].replace(' ', '_')}.mp4"] = prompt
9
+
10
+ with open(f"new_{prompt_path}", "w") as f:
11
+ json.dump(new_prompt, f, indent=4)
12
+
13
+
14
+ if __name__ == "__main__":
15
+ # main("t2v_vbench_200.json")
16
+ main("t2v_vbench_remain.json")