Howieeeee commited on
Commit
55a84fb
Β·
verified Β·
1 Parent(s): 96c5fd7

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +190 -237
  2. constants.py +15 -8
app.py CHANGED
@@ -23,296 +23,249 @@ def upload_file(files):
23
  return file_paths
24
 
25
 
26
- def add_new_eval_i2v(
27
  input_file,
28
- model_name_textbox: str,
29
- revision_name_textbox: str,
30
- model_link: str,
31
- team_name: str,
32
- contact_email: str,
33
- access_type: str,
34
- model_publish: str,
35
- model_resolution: str,
36
- model_fps: str,
37
- model_frame: str,
38
- model_video_length: str,
39
- model_checkpoint: str,
40
- model_commit_id: str,
41
- model_video_format: str
42
  ):
43
- COLNAME2KEY={
44
- "Video-Text Camera Motion":"camera_motion",
45
- "Video-Image Subject Consistency": "i2v_subject",
46
- "Video-Image Background Consistency": "i2v_background",
47
- "Subject Consistency": "subject_consistency",
48
- "Background Consistency": "background_consistency",
49
- "Motion Smoothness": "motion_smoothness",
50
- "Dynamic Degree": "dynamic_degree",
51
- "Aesthetic Quality": "aesthetic_quality",
52
- "Imaging Quality": "imaging_quality",
53
- "Temporal Flickering": "temporal_flickering"
54
- }
55
  if input_file is None:
56
  return "Error! Empty file!"
57
  if model_link == '' or model_name_textbox == '' or contact_email == '':
58
  return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True)
59
 
60
- upload_content = input_file
61
  submission_repo = Repository(local_dir=SUBMISSION_NAME, clone_from=SUBMISSION_URL, use_auth_token=HF_TOKEN, repo_type="dataset")
62
  submission_repo.git_pull()
63
- filename = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
64
 
65
  now = datetime.datetime.now()
66
- update_time = now.strftime("%Y-%m-%d") # Capture update time
67
- with open(f'{SUBMISSION_NAME}/{filename}.zip','wb') as f:
68
- f.write(input_file)
69
- # shutil.copyfile(CSV_DIR, os.path.join(SUBMISSION_NAME, f"{input_file}"))
70
 
71
- csv_data = pd.read_csv(I2V_DIR)
72
 
73
  if revision_name_textbox == '':
74
  col = csv_data.shape[0]
75
  model_name = model_name_textbox.replace(',',' ')
76
  else:
77
  model_name = revision_name_textbox.replace(',',' ')
78
- model_name_list = csv_data['Model Name (clickable)']
79
  name_list = [name.split(']')[0][1:] for name in model_name_list]
80
  if revision_name_textbox not in name_list:
81
  col = csv_data.shape[0]
82
  else:
83
  col = name_list.index(revision_name_textbox)
 
 
 
84
  if model_link == '':
85
  model_name = model_name # no url
86
  else:
87
  model_name = '[' + model_name + '](' + model_link + ')'
88
 
89
- os.makedirs(filename, exist_ok=True)
90
- with zipfile.ZipFile(io.BytesIO(input_file), 'r') as zip_ref:
91
- zip_ref.extractall(filename)
92
-
93
- upload_data = {}
94
- for file in os.listdir(filename):
95
- if file.startswith('.') or file.startswith('__'):
96
- print(f"Skip the file: {file}")
97
- continue
98
- cur_file = os.path.join(filename, file)
99
- if os.path.isdir(cur_file):
100
- for subfile in os.listdir(cur_file):
101
- if subfile.endswith(".json"):
102
- with open(os.path.join(cur_file, subfile)) as ff:
103
- cur_json = json.load(ff)
104
- print(file, type(cur_json))
105
- if isinstance(cur_json, dict):
106
- print(cur_json.keys())
107
- for key in cur_json:
108
- upload_data[key] = cur_json[key][0]
109
- print(f"{key}:{cur_json[key][0]}")
110
- elif cur_file.endswith('json'):
111
- with open(cur_file) as ff:
112
- cur_json = json.load(ff)
113
- print(file, type(cur_json))
114
- if isinstance(cur_json, dict):
115
- print(cur_json.keys())
116
- for key in cur_json:
117
- upload_data[key] = cur_json[key][0]
118
- print(f"{key}:{cur_json[key][0]}")
119
- # add new data
120
- new_data = [model_name]
121
- print('upload_data:', upload_data)
122
- I2V_HEAD= ["Video-Text Camera Motion",
123
- "Video-Image Subject Consistency",
124
- "Video-Image Background Consistency",
125
- "Subject Consistency",
126
- "Background Consistency",
127
- "Temporal Flickering",
128
- "Motion Smoothness",
129
- "Dynamic Degree",
130
- "Aesthetic Quality",
131
- "Imaging Quality" ]
132
- for key in I2V_HEAD :
133
- sub_key = COLNAME2KEY[key]
134
- if sub_key in upload_data:
135
- new_data.append(upload_data[sub_key])
136
  else:
137
- new_data.append(0)
138
- if team_name =='' or 'vbench' in team_name.lower():
139
- new_data.append("User Upload")
140
- else:
141
- new_data.append(team_name)
142
-
143
- new_data.append(contact_email.replace(',',' and ')) # Add contact email [private]
144
- new_data.append(update_time) # Add the update time
145
- new_data.append(team_name)
146
- new_data.append(access_type)
147
-
148
- csv_data.loc[col] = new_data
149
- csv_data = csv_data.to_csv(I2V_DIR , index=False)
150
- with open(INFO_DIR,'a') as f:
151
- f.write(f"{model_name}\t{update_time}\t{model_publish}\t{model_resolution}\t{model_fps}\t{model_frame}\t{model_video_length}\t{model_checkpoint}\t{model_commit_id}\t{model_video_format}\n")
152
- submission_repo.push_to_hub()
153
- print("success update", model_name)
154
- return gr.update(visible=False), gr.update(visible=True), gr.update(visible=False)
155
-
 
 
 
 
 
156
  def get_baseline_df():
157
  submission_repo = Repository(local_dir=SUBMISSION_NAME, clone_from=SUBMISSION_URL, use_auth_token=HF_TOKEN, repo_type="dataset")
158
  submission_repo.git_pull()
159
  df = pd.read_csv(CSV_DIR)
160
- df = df.sort_values(by=DEFAULT_INFO[0], ascending=False)
161
-
162
- # Add this line to display the results of all model types by default
163
- df = df[df['Model Type'].isin(model_type_filter.value)]
164
- # Add this line to display the results of both abilities by default
165
- df = df[df['Ability'].isin(ability_filter.value)]
166
- return df
167
-
168
- def get_all_df(dir=CSV_DIR):
169
- submission_repo = Repository(local_dir=SUBMISSION_NAME, clone_from=SUBMISSION_URL, use_auth_token=HF_TOKEN, repo_type="dataset")
170
- submission_repo.git_pull()
171
- df = pd.read_csv(dir)
172
  return df
173
 
174
 
175
- block = gr.Blocks()
 
 
 
 
 
176
  with block:
177
- gr.Markdown(
178
- LEADERBORAD_INTRODUCTION
179
- )
180
- with gr.Tabs(elem_classes="tab-buttons") as tabs:
181
- # Table 0
182
- with gr.TabItem("πŸ… WorldScore Benchmark", elem_id="worldscore-tab-table", id=1):
183
- with gr.Column():
184
- model_type_filter = gr.CheckboxGroup(
185
- choices=MODEL_TYPE,
186
- value=DEFAULT_MODEL_TYPE,
187
- label="Model Type",
188
- interactive=True
189
- )
190
- ability_filter = gr.CheckboxGroup(
191
- choices=ABILITY,
192
- value=DEFAULT_ABILITY,
193
- label="Ability",
194
- interactive=True
195
- )
196
-
197
- data_component = gr.components.Dataframe(
198
- column_widths="auto", # Automatically adjusts column widths
199
- value=get_baseline_df(),
200
- headers=COLUMN_NAMES,
201
- type="pandas",
202
- datatype=DATA_TITILE_TYPE,
203
- interactive=False,
204
- visible=True,
205
- )
206
-
207
- def on_filter_change(model_types, abilities):
208
- df = get_baseline_df()
209
- # Filter by selected model types
210
- df = df[df['Model Type'].isin(model_types)]
211
- # Filter by selected abilities
212
- df = df[df['Ability'].isin(abilities)]
213
- return gr.Dataframe(
214
- column_widths="auto", # Automatically adjusts column widths
215
- value=df,
216
  headers=COLUMN_NAMES,
217
- type="pandas",
218
  datatype=DATA_TITILE_TYPE,
219
  interactive=False,
220
- visible=True
221
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
 
223
- model_type_filter.change(
224
- fn=on_filter_change,
225
- inputs=[model_type_filter, ability_filter],
226
- outputs=data_component
227
- )
228
 
229
- ability_filter.change(
230
- fn=on_filter_change,
231
- inputs=[model_type_filter, ability_filter],
232
- outputs=data_component
233
- )
234
-
235
- with gr.TabItem("πŸš€ Submit here! ", elem_id="submit-tab-table", id=7):
236
 
237
- with gr.Row():
238
- gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
239
 
240
- with gr.Row():
241
- gr.Markdown("# Submit your world generation model evaluation json file here!", elem_classes="markdown-text")
242
 
243
- with gr.Row():
244
- gr.Markdown("Here is a required field", elem_classes="markdown-text")
245
- with gr.Row():
246
- with gr.Column():
247
- model_name_textbox_i2v = gr.Textbox(
248
- label="Model name", placeholder="Required field"
 
 
 
 
 
249
  )
250
- revision_name_textbox_i2v = gr.Textbox(
251
- label="Revision Model Name(Optional)", placeholder="If you need to update the previous results, please fill in this line"
252
- )
253
- access_type_i2v = gr.Dropdown(["Open Source", "Ready to Open Source", "API", "Close"], label="Please select the way user can access your model. You can update the content by revision_name, or contact the VBench Team.")
254
-
255
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
  with gr.Column():
257
- model_link_i2v = gr.Textbox(
258
- label="Project Page/Paper Link/Github/HuggingFace Repo", placeholder="Required field. If filling in the wrong information, your results may be removed."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  )
260
- team_name_i2v = gr.Textbox(
261
- label="Your Team Name(If left blank, it will be user upload)", placeholder="User Upload"
262
- )
263
- contact_email_i2v = gr.Textbox(
264
- label="E-Mail(Will not be displayed)", placeholder="Required field"
265
- )
266
- with gr.Row():
267
- gr.Markdown("The following is optional and will be synced to [GitHub] (https://github.com/Vchitect/VBench/tree/master/sampled_videos#what-are-the-details-of-the-video-generation-models)", elem_classes="markdown-text")
268
- with gr.Row():
269
- release_time_i2v = gr.Textbox(label="Time of Publish", placeholder="1970-01-01")
270
- model_resolution_i2v = gr.Textbox(label="resolution", placeholder="Width x Height")
271
- model_fps_i2v = gr.Textbox(label="model fps", placeholder="FPS(int)")
272
- model_frame_i2v = gr.Textbox(label="model frame count", placeholder="INT")
273
- model_video_length_i2v = gr.Textbox(label="model video length", placeholder="float(2.0)")
274
- model_checkpoint_i2v = gr.Textbox(label="model checkpoint", placeholder="optional")
275
- model_commit_id_i2v = gr.Textbox(label="github commit id", placeholder='main')
276
- model_video_format_i2v = gr.Textbox(label="pipeline format", placeholder='mp4')
277
- with gr.Column():
278
- input_file_i2v = gr.components.File(label = "Click to Upload a ZIP File", file_count="single", type='binary')
279
- submit_button_i2v = gr.Button("Submit Eval")
280
- submit_succ_button_i2v = gr.Markdown("Submit Success! Please press refresh and retfurn to LeaderBoard!", visible=False)
281
- fail_textbox_i2v = gr.Markdown('<span style="color:red;">Please ensure that the `Model Name`, `Project Page`, and `Email` are filled in correctly.</span>', elem_classes="markdown-text",visible=False)
282
-
283
-
284
- submission_result_i2v = gr.Markdown()
285
- # submit_button_i2v.click(
286
- # add_new_eval_i2v,
287
- # inputs = [
288
- # input_file_i2v,
289
- # model_name_textbox_i2v,
290
- # revision_name_textbox_i2v,
291
- # model_link_i2v,
292
- # team_name_i2v,
293
- # contact_email_i2v,
294
- # release_time_i2v,
295
- # access_type_i2v,
296
- # model_resolution_i2v,
297
- # model_fps_i2v,
298
- # model_frame_i2v,
299
- # model_video_length_i2v,
300
- # model_checkpoint_i2v,
301
- # model_commit_id_i2v,
302
- # model_video_format_i2v
303
- # ],
304
- # outputs=[submit_button_i2v, submit_succ_button_i2v, fail_textbox_i2v]
305
- # )
306
-
307
 
308
 
309
- # def refresh_data():
310
- # value1 = get_baseline_df()
311
- # return value1
312
 
313
- # with gr.Row():
314
- # data_run = gr.Button("Refresh")
315
- # data_run.click(on_filter_model_size_method_change, inputs=[checkbox_group], outputs=data_component)
 
 
 
 
316
 
317
 
318
  block.launch()
 
23
  return file_paths
24
 
25
 
26
+ def add_new_eval(
27
  input_file,
28
+ model_type,
29
+ model_name_textbox,
30
+ model_ability,
31
+ revision_name_textbox,
32
+ access_type,
33
+ model_link,
34
+ team_name,
35
+ contact_email,
36
+ release_time,
37
+ model_resolution,
38
+ model_length,
39
+ model_fps,
40
+ model_frame,
41
+ model_link_optional,
42
  ):
 
 
 
 
 
 
 
 
 
 
 
 
43
  if input_file is None:
44
  return "Error! Empty file!"
45
  if model_link == '' or model_name_textbox == '' or contact_email == '':
46
  return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True)
47
 
 
48
  submission_repo = Repository(local_dir=SUBMISSION_NAME, clone_from=SUBMISSION_URL, use_auth_token=HF_TOKEN, repo_type="dataset")
49
  submission_repo.git_pull()
50
+ filename = f"{model_name_textbox}_{model_type}_{model_ability}_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}"
51
 
52
  now = datetime.datetime.now()
53
+ update_time = now.strftime("%Y.%m.%d") # Capture update time
 
 
 
54
 
55
+ csv_data = pd.read_csv(CSV_DIR)
56
 
57
  if revision_name_textbox == '':
58
  col = csv_data.shape[0]
59
  model_name = model_name_textbox.replace(',',' ')
60
  else:
61
  model_name = revision_name_textbox.replace(',',' ')
62
+ model_name_list = csv_data['Model Name']
63
  name_list = [name.split(']')[0][1:] for name in model_name_list]
64
  if revision_name_textbox not in name_list:
65
  col = csv_data.shape[0]
66
  else:
67
  col = name_list.index(revision_name_textbox)
68
+ if csv_data[col]['Sampled by'] == "WorldScore" or csv_data[col]['Evaluated by'] == "WorldScore":
69
+ return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True)
70
+
71
  if model_link == '':
72
  model_name = model_name # no url
73
  else:
74
  model_name = '[' + model_name + '](' + model_link + ')'
75
 
76
+ if model_link_optional == '':
77
+ model_link_optional = model_link
78
+
79
+ try:
80
+ with open(input_file, 'r') as f:
81
+ upload_data = json.load(f)
82
+
83
+ # add new data
84
+ print('upload_data:', upload_data)
85
+ new_data = [model_type, model_name, model_ability]
86
+ if team_name == '':
87
+ new_data.append(model_name)
88
+ new_data.append(model_name)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  else:
90
+ new_data.append(team_name)
91
+ new_data.append(team_name)
92
+ new_data.append(access_type)
93
+ new_data.append(update_time)
94
+
95
+ for key in TASK_INFO:
96
+ value = COLNAME2KEY[key]
97
+ if value in upload_data:
98
+ new_data.append(upload_data[value])
99
+ else:
100
+ return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True)
101
+
102
+
103
+ csv_data.loc[col] = new_data
104
+ csv_data = csv_data.to_csv(CSV_DIR, index=False)
105
+ with open(INFO_DIR,'a') as f:
106
+ f.write(f"{model_type.replace(',', ' ')}\t{model_name.replace(',', ' ')}\t{model_ability.replace(',', ' ')}\t{model_resolution.replace(',', ' ')}\t{model_length.replace(',', ' ')}\t{model_fps.replace(',', ' ')}\t{model_frame.replace(',', ' ')}\t{model_link_optional.replace(',', ' ')}\t{contact_email.replace(',', ' ')}\n")
107
+ submission_repo.push_to_hub()
108
+ print("success update", model_name)
109
+ return gr.update(visible=False), gr.update(visible=True), gr.update(visible=False)
110
+ except:
111
+ return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True)
112
+
113
+
114
  def get_baseline_df():
115
  submission_repo = Repository(local_dir=SUBMISSION_NAME, clone_from=SUBMISSION_URL, use_auth_token=HF_TOKEN, repo_type="dataset")
116
  submission_repo.git_pull()
117
  df = pd.read_csv(CSV_DIR)
118
+ df = df.sort_values(by=DEFAULT_INFO[0], ascending=False)
 
 
 
 
 
 
 
 
 
 
 
119
  return df
120
 
121
 
122
+ block = gr.Blocks(css="""
123
+ .container {
124
+ max-width: 80%;
125
+ margin: auto;
126
+ }
127
+ """)
128
  with block:
129
+ with gr.Column(elem_classes="container"):
130
+ gr.Markdown(
131
+ LEADERBORAD_INTRODUCTION
132
+ )
133
+ with gr.Tabs(elem_classes="tab-buttons") as tabs:
134
+ # Table 0
135
+ with gr.TabItem("πŸ… WorldScore Benchmark", elem_id="worldscore-tab-table", id=0):
136
+ with gr.Column():
137
+ model_type_filter = gr.CheckboxGroup(
138
+ choices=MODEL_TYPE,
139
+ value=DEFAULT_MODEL_TYPE,
140
+ label="Model Type",
141
+ interactive=True
142
+ )
143
+ ability_filter = gr.CheckboxGroup(
144
+ choices=ABILITY,
145
+ value=DEFAULT_ABILITY,
146
+ label="Ability",
147
+ interactive=True
148
+ )
149
+
150
+ data_component = gr.components.Dataframe(
151
+ value=get_baseline_df(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  headers=COLUMN_NAMES,
153
+ type="pandas",
154
  datatype=DATA_TITILE_TYPE,
155
  interactive=False,
156
+ visible=True,
157
  )
158
+
159
+ def on_filter_change(model_types, abilities):
160
+ df = get_baseline_df()
161
+ # Filter by selected model types
162
+ df = df[df['Model Type'].isin(model_types)]
163
+ # Filter by selected abilities
164
+ df = df[df['Ability'].isin(abilities)]
165
+ return gr.Dataframe(
166
+ value=df,
167
+ headers=COLUMN_NAMES,
168
+ type="pandas",
169
+ datatype=DATA_TITILE_TYPE,
170
+ interactive=False,
171
+ visible=True
172
+ )
173
 
174
+ model_type_filter.change(
175
+ fn=on_filter_change,
176
+ inputs=[model_type_filter, ability_filter],
177
+ outputs=data_component
178
+ )
179
 
180
+ ability_filter.change(
181
+ fn=on_filter_change,
182
+ inputs=[model_type_filter, ability_filter],
183
+ outputs=data_component
184
+ )
185
+
186
+ with gr.TabItem("πŸš€ Submit here! ", elem_id="submit-tab-table", id=1):
187
 
188
+ with gr.Row():
189
+ gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
190
 
191
+ with gr.Row():
192
+ gr.Markdown("# Submit your evaluation json file here!", elem_classes="markdown-text")
193
 
194
+ with gr.Row():
195
+ gr.Markdown("Here is a required field", elem_classes="markdown-text")
196
+ with gr.Row():
197
+ with gr.Column():
198
+ model_type = gr.Dropdown(["Video", "3D", "4D"], label="Model Type")
199
+ model_name_textbox = gr.Textbox(
200
+ label="Model name", placeholder="Your model name"
201
+ )
202
+ model_ability = gr.Dropdown(["I2V", "T2V"], label="Model Ability")
203
+ revision_name_textbox = gr.Textbox(
204
+ label="Revision Model Name (Optional)", placeholder="If you need to update the previous submissions, please fill in this line"
205
  )
 
 
 
 
 
206
 
207
+ with gr.Column():
208
+ access_type = gr.Dropdown(["Open Source", "Ready to Open Source", "API", "Close"], label="Access")
209
+ model_link = gr.Textbox(
210
+ label="Link (Website/Paper Link/Github/HuggingFace)", placeholder="If filling in the wrong information, your results may be removed."
211
+ )
212
+ team_name = gr.Textbox(
213
+ label="Your Team Name", placeholder="If left blank, it will be your model name"
214
+ )
215
+ contact_email = gr.Textbox(
216
+ label="E-Mail (Will not be displayed)", placeholder="Contact email"
217
+ )
218
+ with gr.Row():
219
+ gr.Markdown("The following is optional and will be synced to [GitHub] (https://github.com/Vchitect/VBench/tree/master/sampled_videos#what-are-the-details-of-the-video-generation-models)", elem_classes="markdown-text")
220
+ with gr.Row():
221
+ release_time = gr.Textbox(label="Version", placeholder="2025.03.29")
222
+ model_resolution = gr.Textbox(label="Resolution", placeholder="WidthxHeight")
223
+ model_length = gr.Textbox(label="Video Length (s)", placeholder="float")
224
+ model_fps = gr.Textbox(label="FPS", placeholder="int")
225
+ model_frame = gr.Textbox(label="Frame Number", placeholder="int")
226
+ model_link_optional = gr.Textbox(label="Link", placeholder='optional')
227
  with gr.Column():
228
+ input_file = gr.components.File(label = "Click to Upload a ZIP File", file_count="single", type='binary')
229
+ submit_button = gr.Button("Submit Eval")
230
+ submit_succ_button = gr.Markdown("Submit Success! Please press refresh and return to WorldScore Benchmark!", visible=False)
231
+ fail_textbox = gr.Markdown('<span style="color:red;">Please ensure that the `Model Name`, `Project Page`, and `E-mail` are filled in correctly and the uploaded json file is valid.</span>', elem_classes="markdown-text",visible=False)
232
+
233
+
234
+ submission_result = gr.Markdown()
235
+ submit_button.click(
236
+ add_new_eval,
237
+ inputs = [
238
+ input_file,
239
+ model_type,
240
+ model_name_textbox,
241
+ model_ability,
242
+ revision_name_textbox,
243
+ access_type,
244
+ model_link,
245
+ team_name,
246
+ contact_email,
247
+ release_time,
248
+ model_resolution,
249
+ model_length,
250
+ model_fps,
251
+ model_frame,
252
+ model_link_optional,
253
+ ],
254
+ outputs=[submit_button, submit_succ_button, fail_textbox]
255
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
 
257
 
258
+ def refresh_data():
259
+ value = get_baseline_df()
260
+ return value, DEFAULT_MODEL_TYPE, DEFAULT_ABILITY
261
 
262
+ with gr.Row(elem_classes="container"):
263
+ data_run = gr.Button("Refresh")
264
+ data_run.click(
265
+ refresh_data,
266
+ inputs=[],
267
+ outputs=[data_component, model_type_filter, ability_filter]
268
+ )
269
 
270
 
271
  block.launch()
constants.py CHANGED
@@ -48,6 +48,20 @@ MODEL_INFO = [
48
  "Date",
49
  ]
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  DATA_TITILE_TYPE = ['markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']
52
 
53
  SUBMISSION_NAME = "worldscore_leaderboard_submission"
@@ -58,16 +72,9 @@ INFO_DIR = "./worldscore_leaderboard_submission/model_info.csv"
58
  COLUMN_NAMES = MODEL_INFO + TASK_INFO
59
 
60
  LEADERBORAD_INTRODUCTION = """# WorldScore Leaderboard
 
61
 
62
  πŸ† Welcome to the leaderboard of **WorldScore**, the first unified evaluation benchmark for world generation.
63
- <div style="display: flex; flex-wrap: wrap; align-items: center; gap: 10px;">
64
- <a href=''><img src='https://img.shields.io/badge/cs.CV-Paper-b31b1b?logo=arxiv&logoColor=red'></a>
65
- <a href='https://haoyi-duan.github.io/WorldScore/'><img src='https://img.shields.io/badge/WorldScore-Website-green?logo=googlechrome&logoColor=green'></a>
66
- <a href='https://github.com/haoyi-duan/WorldScore'><img src='https://img.shields.io/badge/WorldScore-Code-blue?logo=github&logoColor=blue'></a>
67
- <a href='https://huggingface.co/datasets/Howieeeee/WorldScore'><img src='https://img.shields.io/badge/WordScore-Dataset-yellow?logo=huggingface&logoColor=yellow'></a>
68
- </div>
69
-
70
- [Paper](https://arxiv.org/abs/2503.15669) | [Website](https://haoyi-duan.github.io/WorldScore/) | [Code](https://github.com/haoyi-duan/WorldScore) | [Dataset](https://huggingface.co/datasets/Howieeeee/WorldScore)
71
 
72
  **Join Leaderboard**: Please see the [instructions](https://github.com/Vchitect/VBench/tree/master?tab=readme-ov-file#trophy-leaderboard) for 3 options to participate. One option is to follow [VBench Usage info](https://github.com/Vchitect/VBench?tab=readme-ov-file#usage), and upload the generated `result.json` file here. After clicking the `Submit here!` button, click the `Refresh` button.
73
  """
 
48
  "Date",
49
  ]
50
 
51
+ COLNAME2KEY = {
52
+ "WorldScore-Static":"WorldScore-Static",
53
+ "WorldScore-Dynamic":"WorldScore-Dynamic",
54
+ "Camera Control":"camera_control",
55
+ "Object Control":"object_control",
56
+ "Content Alignment":"content_alignment",
57
+ "3D Consistency":"3d_consistency",
58
+ "Photometric Consistency":"photometric_consistency",
59
+ "Style Consistency":"style_consistency",
60
+ "Subjective Quality":"subjective_quality",
61
+ "Motion Accuracy":"motion_accuracy",
62
+ "Motion Magnitude":"motion_magnitude",
63
+ "Motion Smoothness":"motion_smoothness",
64
+ }
65
  DATA_TITILE_TYPE = ['markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'markdown', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']
66
 
67
  SUBMISSION_NAME = "worldscore_leaderboard_submission"
 
72
  COLUMN_NAMES = MODEL_INFO + TASK_INFO
73
 
74
  LEADERBORAD_INTRODUCTION = """# WorldScore Leaderboard
75
+ [Paper](https://arxiv.org/abs/2503.15669) | [Website](https://haoyi-duan.github.io/WorldScore/) | [Code](https://github.com/haoyi-duan/WorldScore) | [Dataset](https://huggingface.co/datasets/Howieeeee/WorldScore)
76
 
77
  πŸ† Welcome to the leaderboard of **WorldScore**, the first unified evaluation benchmark for world generation.
 
 
 
 
 
 
 
 
78
 
79
  **Join Leaderboard**: Please see the [instructions](https://github.com/Vchitect/VBench/tree/master?tab=readme-ov-file#trophy-leaderboard) for 3 options to participate. One option is to follow [VBench Usage info](https://github.com/Vchitect/VBench?tab=readme-ov-file#usage), and upload the generated `result.json` file here. After clicking the `Submit here!` button, click the `Refresh` button.
80
  """