BestWishYsh commited on
Commit
3344287
·
1 Parent(s): 6853b5a

update v1.1

Browse files
.gitattributes CHANGED
@@ -34,4 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
34
  *.zip filter=lfs diff=lfs merge=lfs -text
35
  *.zst filter=lfs diff=lfs merge=lfs -text
36
  *tfevents* filter=lfs diff=lfs merge=lfs -text
37
- OpenS2V-Nexus_logo.png filter=lfs diff=lfs merge=lfs -text
 
34
  *.zip filter=lfs diff=lfs merge=lfs -text
35
  *.zst filter=lfs diff=lfs merge=lfs -text
36
  *tfevents* filter=lfs diff=lfs merge=lfs -text
37
+ OpenS2V-Nexus_logo.png filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -25,7 +25,7 @@ thumbnail: >-
25
  **OpenS2V-Eval** introduces 180 prompts from seven major categories of S2V, which incorporate both real and synthetic test data. Furthermore,
26
  to accurately align human preferences with S2V benchmarks, we propose three automatic metrics: **NexusScore**, **NaturalScore**, **GmeScore**
27
  to separately quantify subject consistency, naturalness, and text relevance in generated videos. Building on this, we conduct a comprehensive
28
- evaluation of 14 representative S2V models, highlighting their strengths and weaknesses across different content.
29
 
30
  ## 📣 Evaluate Your Own Models
31
  For how to evaluate your customized model like OpenS2V-Eval in the [OpenS2V-Nexus paper](https://huggingface.co/papers/2505.20292), please refer to [here](https://github.com/PKU-YuanGroup/OpenS2V-Nexus/tree/main/eval).
 
25
  **OpenS2V-Eval** introduces 180 prompts from seven major categories of S2V, which incorporate both real and synthetic test data. Furthermore,
26
  to accurately align human preferences with S2V benchmarks, we propose three automatic metrics: **NexusScore**, **NaturalScore**, **GmeScore**
27
  to separately quantify subject consistency, naturalness, and text relevance in generated videos. Building on this, we conduct a comprehensive
28
+ evaluation of 18 representative S2V models, highlighting their strengths and weaknesses across different content.
29
 
30
  ## 📣 Evaluate Your Own Models
31
  For how to evaluate your customized model like OpenS2V-Eval in the [OpenS2V-Nexus paper](https://huggingface.co/papers/2505.20292), please refer to [here](https://github.com/PKU-YuanGroup/OpenS2V-Nexus/tree/main/eval).
app.py CHANGED
@@ -41,7 +41,8 @@ def compute_scores(input_data):
41
  [
42
  input_data["total_score"],
43
  input_data["aes_score"],
44
- input_data["motion_score"],
 
45
  input_data["facesim_cur"],
46
  input_data["gme_score"],
47
  input_data["nexus_score"],
@@ -56,7 +57,8 @@ def compute_scores_human_domain(input_data):
56
  [
57
  input_data["total_score"],
58
  input_data["aes_score"],
59
- input_data["motion_score"],
 
60
  input_data["facesim_cur"],
61
  input_data["gme_score"],
62
  input_data["natural_score"],
@@ -125,6 +127,7 @@ def add_opendomain_eval(
125
  f"{input_data[4] * 100:.2f}%",
126
  f"{input_data[5] * 100:.2f}%",
127
  f"{input_data[6] * 100:.2f}%",
 
128
  ]
129
  csv_data.loc[col] = new_data
130
  csv_data.to_csv(CSV_DIR_OPEN_DOMAIN_RESULTS, index=False)
@@ -191,6 +194,7 @@ def add_humandomain_eval(
191
  f"{input_data[3] * 100:.2f}%",
192
  f"{input_data[4] * 100:.2f}%",
193
  f"{input_data[5] * 100:.2f}%",
 
194
  ]
195
  csv_data.loc[col] = new_data
196
  csv_data.to_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS, index=False)
@@ -258,6 +262,7 @@ def add_singledomain_eval(
258
  f"{input_data[4] * 100:.2f}%",
259
  f"{input_data[5] * 100:.2f}%",
260
  f"{input_data[6] * 100:.2f}%",
 
261
  ]
262
  csv_data.loc[col] = new_data
263
  csv_data.to_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS, index=False)
 
41
  [
42
  input_data["total_score"],
43
  input_data["aes_score"],
44
+ input_data["motion_amplitude"],
45
+ input_data["motion_smoothness"],
46
  input_data["facesim_cur"],
47
  input_data["gme_score"],
48
  input_data["nexus_score"],
 
57
  [
58
  input_data["total_score"],
59
  input_data["aes_score"],
60
+ input_data["motion_amplitude"],
61
+ input_data["motion_smoothness"],
62
  input_data["facesim_cur"],
63
  input_data["gme_score"],
64
  input_data["natural_score"],
 
127
  f"{input_data[4] * 100:.2f}%",
128
  f"{input_data[5] * 100:.2f}%",
129
  f"{input_data[6] * 100:.2f}%",
130
+ f"{input_data[7] * 100:.2f}%",
131
  ]
132
  csv_data.loc[col] = new_data
133
  csv_data.to_csv(CSV_DIR_OPEN_DOMAIN_RESULTS, index=False)
 
194
  f"{input_data[3] * 100:.2f}%",
195
  f"{input_data[4] * 100:.2f}%",
196
  f"{input_data[5] * 100:.2f}%",
197
+ f"{input_data[6] * 100:.2f}%",
198
  ]
199
  csv_data.loc[col] = new_data
200
  csv_data.to_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS, index=False)
 
262
  f"{input_data[4] * 100:.2f}%",
263
  f"{input_data[5] * 100:.2f}%",
264
  f"{input_data[6] * 100:.2f}%",
265
+ f"{input_data[7] * 100:.2f}%",
266
  ]
267
  csv_data.loc[col] = new_data
268
  csv_data.to_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS, index=False)
constants.py CHANGED
@@ -3,7 +3,8 @@ MODEL_INFO = ["Model", "Venue", "Evaluated by"]
3
  ALL_RESULTS = [
4
  "TotalScore↑",
5
  "Aesthetics↑",
6
- "Motion↑",
 
7
  "FaceSim↑",
8
  "GmeScore↑",
9
  "NexusScore↑",
@@ -13,7 +14,8 @@ ALL_RESULTS = [
13
  OPEN_DOMAIN_RESULTS = [
14
  "TotalScore↑",
15
  "Aesthetics↑",
16
- "Motion↑",
 
17
  "FaceSim↑",
18
  "GmeScore↑",
19
  "NexusScore↑",
@@ -22,7 +24,8 @@ OPEN_DOMAIN_RESULTS = [
22
  HUMAN_DOMAIN_RESULTS = [
23
  "TotalScore↑",
24
  "Aesthetics↑",
25
- "Motion↑",
 
26
  "FaceSim↑",
27
  "GmeScore↑",
28
  "NaturalScore↑",
@@ -30,7 +33,8 @@ HUMAN_DOMAIN_RESULTS = [
30
  SINGLE_DOMAIN_RESULTS = [
31
  "TotalScore↑",
32
  "Aesthetics↑",
33
- "Motion↑",
 
34
  "FaceSim↑",
35
  "GmeScore↑",
36
  "NexusScore↑",
@@ -49,23 +53,23 @@ NEW_DATA_TITLE_TYPE = [
49
  "number",
50
  ]
51
 
52
- CSV_DIR_OPEN_DOMAIN_RESULTS = "./file/results_Open-Domain.csv"
53
- CSV_DIR_HUMAN_DOMAIN_RESULTS = "./file/results_Human-Domain.csv"
54
- CSV_DIR_SINGLE_DOMAIN_RESULTS = "./file/results_Single-Domain.csv"
55
 
56
  COLUMN_NAMES = MODEL_INFO + ALL_RESULTS
57
  COLUMN_NAMES_HUMAN = MODEL_INFO + HUMAN_DOMAIN_RESULTS
58
 
59
  LEADERBORAD_INTRODUCTION = """
60
- # OpenS2V-Eval Leaderboard
61
 
62
- Welcome to the leaderboard of the OpenS2V-Eval!
63
 
64
- 🏆 OpenS2V-Eval is a core component of **OpenS2V-Nexus**, designed to establish a foundational infrastructure for *Subject-to-Video* (S2V) generation. It presents 180 prompts spanning seven major categories of S2V, incorporating both real and synthetic test data. To better align evaluation with human preferences, it introduce three new automatic metrics—NexusScore, NaturalScore, and GmeScore—that independently assess subject consistency, naturalness, and textual relevance in generated videos.
65
-
66
  If you like our project, please give us a star ⭐ on GitHub for the latest update.
67
 
68
- [GitHub](https://github.com/PKU-YuanGroup/OpenS2V-Nexus) | [Arxiv](https://arxiv.org/) | [Home Page](https://pku-yuangroup.github.io/OpenS2V-Nexus/) | [OpenS2V-Eval](https://huggingface.co/datasets/BestWishYsh/OpenS2V-Eval) | [OpenS2V-5M](https://huggingface.co/datasets/BestWishYsh/OpenS2V-5M)
69
  """
70
 
71
  SUBMIT_INTRODUCTION = """# Submission Guidelines
@@ -78,7 +82,7 @@ SUBMIT_INTRODUCTION = """# Submission Guidelines
78
 
79
  TABLE_INTRODUCTION = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
80
  1. Visual Quality: Aesthetics.
81
- 2. Motion Amplitude: Motion.
82
  3. Text Relevance: GmeScore.
83
  4. Subject Consistency: FaceSim and NexusScore.
84
  5. Subject Naturalness: NaturalScore.
@@ -86,7 +90,7 @@ TABLE_INTRODUCTION = """In the table below, we use six dimensions as the primary
86
 
87
  TABLE_INTRODUCTION_HUMAN = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
88
  1. Visual Quality: Aesthetics.
89
- 2. Motion Amplitude: Motion.
90
  3. Text Relevance: GmeScore.
91
  4. Subject Consistency: FaceSim.
92
  5. Naturalness: NaturalScore.
 
3
  ALL_RESULTS = [
4
  "TotalScore↑",
5
  "Aesthetics↑",
6
+ "MotionSmoothness↑",
7
+ "MotionAmplitude↑",
8
  "FaceSim↑",
9
  "GmeScore↑",
10
  "NexusScore↑",
 
14
  OPEN_DOMAIN_RESULTS = [
15
  "TotalScore↑",
16
  "Aesthetics↑",
17
+ "MotionSmoothness↑",
18
+ "MotionAmplitude↑",
19
  "FaceSim↑",
20
  "GmeScore↑",
21
  "NexusScore↑",
 
24
  HUMAN_DOMAIN_RESULTS = [
25
  "TotalScore↑",
26
  "Aesthetics↑",
27
+ "MotionSmoothness↑",
28
+ "MotionAmplitude↑",
29
  "FaceSim↑",
30
  "GmeScore↑",
31
  "NaturalScore↑",
 
33
  SINGLE_DOMAIN_RESULTS = [
34
  "TotalScore↑",
35
  "Aesthetics↑",
36
+ "MotionSmoothness↑",
37
+ "MotionAmplitude↑",
38
  "FaceSim↑",
39
  "GmeScore↑",
40
  "NexusScore↑",
 
53
  "number",
54
  ]
55
 
56
+ CSV_DIR_OPEN_DOMAIN_RESULTS = "./file_v1.1/results_Open-Domain.csv"
57
+ CSV_DIR_HUMAN_DOMAIN_RESULTS = "./file_v1.1/results_Human-Domain.csv"
58
+ CSV_DIR_SINGLE_DOMAIN_RESULTS = "./file_v1.1/results_Single-Domain.csv"
59
 
60
  COLUMN_NAMES = MODEL_INFO + ALL_RESULTS
61
  COLUMN_NAMES_HUMAN = MODEL_INFO + HUMAN_DOMAIN_RESULTS
62
 
63
  LEADERBORAD_INTRODUCTION = """
64
+ # OpenS2V-Eval-1.1 Leaderboard
65
 
66
+ Welcome to the leaderboard of the OpenS2V-Eval-1.1! The v1.1 version adds motion smoothness on top of v1.0 to provide a more accurate measurement of motion quality.
67
 
68
+ 🏆 OpenS2V-Eval is a core component of **OpenS2V-Nexus**, designed to establish a foundational infrastructure for *Subject-to-Video* (S2V) generation. It presents 180 prompts spanning seven major categories of S2V, incorporating both real and synthetic test data. To better align evaluation with human preferences, it introduce three new automatic metrics—NexusScore, NaturalScore, and GmeScore—that independently assess subject consistency, naturalness, and textual relevance in generated videos.
69
+
70
  If you like our project, please give us a star ⭐ on GitHub for the latest update.
71
 
72
+ [GitHub](https://github.com/PKU-YuanGroup/OpenS2V-Nexus) | [Arxiv](https://arxiv.org/) | [Home Page](https://pku-yuangroup.github.io/OpenS2V-Nexus/) | [OpenS2V-Eval](https://huggingface.co/datasets/BestWishYsh/OpenS2V-Eval) | [OpenS2V-5M](https://huggingface.co/datasets/BestWishYsh/OpenS2V-5M) | [OpenS2V-Eval-v1.0-LeaderBoard](https://huggingface.co/spaces/BestWishYsh/OpenS2V-Eval/tree/main/file_v1.0)
73
  """
74
 
75
  SUBMIT_INTRODUCTION = """# Submission Guidelines
 
82
 
83
  TABLE_INTRODUCTION = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
84
  1. Visual Quality: Aesthetics.
85
+ 2. Motion Quality: Motion Smoothness and Motion Amplitude.
86
  3. Text Relevance: GmeScore.
87
  4. Subject Consistency: FaceSim and NexusScore.
88
  5. Subject Naturalness: NaturalScore.
 
90
 
91
  TABLE_INTRODUCTION_HUMAN = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
92
  1. Visual Quality: Aesthetics.
93
+ 2. Motion Quality: Motion Smoothness and Motion Amplitude.
94
  3. Text Relevance: GmeScore.
95
  4. Subject Consistency: FaceSim.
96
  5. Naturalness: NaturalScore.
file_v1.0/app.py ADDED
@@ -0,0 +1,588 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import json
4
+ import io
5
+
6
+ from constants import (
7
+ SUBMIT_INTRODUCTION,
8
+ COLUMN_NAMES,
9
+ MODEL_INFO,
10
+ ALL_RESULTS,
11
+ NEW_DATA_TITLE_TYPE,
12
+ SINGLE_DOMAIN_RESULTS,
13
+ TABLE_INTRODUCTION,
14
+ CITATION_BUTTON_LABEL,
15
+ CITATION_BUTTON_TEXT,
16
+ COLUMN_NAMES_HUMAN,
17
+ CSV_DIR_HUMAN_DOMAIN_RESULTS,
18
+ CSV_DIR_OPEN_DOMAIN_RESULTS,
19
+ HUMAN_DOMAIN_RESULTS,
20
+ CSV_DIR_SINGLE_DOMAIN_RESULTS,
21
+ TABLE_INTRODUCTION_HUMAN,
22
+ LEADERBORAD_INTRODUCTION,
23
+ OPEN_DOMAIN_RESULTS,
24
+ )
25
+
26
+ global \
27
+ filter_component, \
28
+ data_component_opendomain, \
29
+ data_component_humandomain, \
30
+ data_component_singledomain
31
+
32
+
33
+ def upload_file(files):
34
+ file_paths = [file.name for file in files]
35
+ return file_paths
36
+
37
+
38
+ def compute_scores(input_data):
39
+ return [
40
+ None,
41
+ [
42
+ input_data["total_score"],
43
+ input_data["aes_score"],
44
+ input_data["motion_score"],
45
+ input_data["facesim_cur"],
46
+ input_data["gme_score"],
47
+ input_data["nexus_score"],
48
+ input_data["natural_score"],
49
+ ],
50
+ ]
51
+
52
+
53
+ def compute_scores_human_domain(input_data):
54
+ return [
55
+ None,
56
+ [
57
+ input_data["total_score"],
58
+ input_data["aes_score"],
59
+ input_data["motion_score"],
60
+ input_data["facesim_cur"],
61
+ input_data["gme_score"],
62
+ input_data["natural_score"],
63
+ ],
64
+ ]
65
+
66
+
67
+ def add_opendomain_eval(
68
+ input_file,
69
+ model_name_textbox: str,
70
+ revision_name_textbox: str,
71
+ venue_type_dropdown: str,
72
+ team_name_textbox: str,
73
+ model_link: str,
74
+ ):
75
+ if input_file is None:
76
+ return "Error! Empty file!"
77
+ else:
78
+ selected_model_data = json.load(io.BytesIO(input_file))
79
+
80
+ scores = compute_scores(selected_model_data)
81
+ input_data = scores[1]
82
+ input_data = [float(i) for i in input_data]
83
+
84
+ csv_data = pd.read_csv(CSV_DIR_OPEN_DOMAIN_RESULTS)
85
+
86
+ if revision_name_textbox == "":
87
+ col = csv_data.shape[0]
88
+ model_name = model_name_textbox
89
+ name_list = [
90
+ name.split("]")[0][1:] if name.endswith(")") else name
91
+ for name in csv_data["Model"]
92
+ ]
93
+ assert model_name not in name_list
94
+ else:
95
+ model_name = revision_name_textbox
96
+ model_name_list = csv_data["Model"]
97
+ name_list = [
98
+ name.split("]")[0][1:] if name.endswith(")") else name
99
+ for name in model_name_list
100
+ ]
101
+ if revision_name_textbox not in name_list:
102
+ col = csv_data.shape[0]
103
+ else:
104
+ col = name_list.index(revision_name_textbox)
105
+
106
+ if model_link == "":
107
+ model_name = model_name # no url
108
+ else:
109
+ model_name = "[" + model_name + "](" + model_link + ")"
110
+
111
+ venue = venue_type_dropdown
112
+ if team_name_textbox == "":
113
+ team = "User Upload"
114
+ else:
115
+ team = team_name_textbox
116
+
117
+ new_data = [
118
+ model_name,
119
+ venue,
120
+ team,
121
+ f"{input_data[0] * 100:.2f}%",
122
+ f"{input_data[1] * 100:.2f}%",
123
+ f"{input_data[2] * 100:.2f}%",
124
+ f"{input_data[3] * 100:.2f}%",
125
+ f"{input_data[4] * 100:.2f}%",
126
+ f"{input_data[5] * 100:.2f}%",
127
+ f"{input_data[6] * 100:.2f}%",
128
+ ]
129
+ csv_data.loc[col] = new_data
130
+ csv_data.to_csv(CSV_DIR_OPEN_DOMAIN_RESULTS, index=False)
131
+ return "Evaluation successfully submitted!"
132
+
133
+
134
+ def add_humandomain_eval(
135
+ input_file,
136
+ model_name_textbox: str,
137
+ revision_name_textbox: str,
138
+ venue_type_dropdown: str,
139
+ team_name_textbox: str,
140
+ model_link: str,
141
+ ):
142
+ if input_file is None:
143
+ return "Error! Empty file!"
144
+ else:
145
+ selected_model_data = json.load(io.BytesIO(input_file))
146
+
147
+ scores = compute_scores_human_domain(selected_model_data)
148
+ input_data = scores[1]
149
+ input_data = [float(i) for i in input_data]
150
+
151
+ csv_data = pd.read_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS)
152
+
153
+ if revision_name_textbox == "":
154
+ col = csv_data.shape[0]
155
+ model_name = model_name_textbox
156
+ name_list = [
157
+ name.split("]")[0][1:] if name.endswith(")") else name
158
+ for name in csv_data["Model"]
159
+ ]
160
+ assert model_name not in name_list
161
+ else:
162
+ model_name = revision_name_textbox
163
+ model_name_list = csv_data["Model"]
164
+ name_list = [
165
+ name.split("]")[0][1:] if name.endswith(")") else name
166
+ for name in model_name_list
167
+ ]
168
+ if revision_name_textbox not in name_list:
169
+ col = csv_data.shape[0]
170
+ else:
171
+ col = name_list.index(revision_name_textbox)
172
+
173
+ if model_link == "":
174
+ model_name = model_name # no url
175
+ else:
176
+ model_name = "[" + model_name + "](" + model_link + ")"
177
+
178
+ venue = venue_type_dropdown
179
+ if team_name_textbox == "":
180
+ team = "User Upload"
181
+ else:
182
+ team = team_name_textbox
183
+
184
+ new_data = [
185
+ model_name,
186
+ venue,
187
+ team,
188
+ f"{input_data[0] * 100:.2f}%",
189
+ f"{input_data[1] * 100:.2f}%",
190
+ f"{input_data[2] * 100:.2f}%",
191
+ f"{input_data[3] * 100:.2f}%",
192
+ f"{input_data[4] * 100:.2f}%",
193
+ f"{input_data[5] * 100:.2f}%",
194
+ ]
195
+ csv_data.loc[col] = new_data
196
+ csv_data.to_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS, index=False)
197
+ return "Evaluation successfully submitted!"
198
+
199
+
200
+ def add_singledomain_eval(
201
+ input_file,
202
+ model_name_textbox: str,
203
+ revision_name_textbox: str,
204
+ venue_type_dropdown: str,
205
+ team_name_textbox: str,
206
+ model_link: str,
207
+ ):
208
+ if input_file is None:
209
+ return "Error! Empty file!"
210
+ else:
211
+ selected_model_data = json.load(io.BytesIO(input_file))
212
+
213
+ scores = compute_scores(selected_model_data)
214
+ input_data = scores[1]
215
+ input_data = [float(i) for i in input_data]
216
+
217
+ csv_data = pd.read_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS)
218
+
219
+ if revision_name_textbox == "":
220
+ col = csv_data.shape[0]
221
+ model_name = model_name_textbox
222
+ name_list = [
223
+ name.split("]")[0][1:] if name.endswith(")") else name
224
+ for name in csv_data["Model"]
225
+ ]
226
+ assert model_name not in name_list
227
+ else:
228
+ model_name = revision_name_textbox
229
+ model_name_list = csv_data["Model"]
230
+ name_list = [
231
+ name.split("]")[0][1:] if name.endswith(")") else name
232
+ for name in model_name_list
233
+ ]
234
+ if revision_name_textbox not in name_list:
235
+ col = csv_data.shape[0]
236
+ else:
237
+ col = name_list.index(revision_name_textbox)
238
+
239
+ if model_link == "":
240
+ model_name = model_name # no url
241
+ else:
242
+ model_name = "[" + model_name + "](" + model_link + ")"
243
+
244
+ venue = venue_type_dropdown
245
+ if team_name_textbox == "":
246
+ team = "User Upload"
247
+ else:
248
+ team = team_name_textbox
249
+
250
+ new_data = [
251
+ model_name,
252
+ venue,
253
+ team,
254
+ f"{input_data[0] * 100:.2f}%",
255
+ f"{input_data[1] * 100:.2f}%",
256
+ f"{input_data[2] * 100:.2f}%",
257
+ f"{input_data[3] * 100:.2f}%",
258
+ f"{input_data[4] * 100:.2f}%",
259
+ f"{input_data[5] * 100:.2f}%",
260
+ f"{input_data[6] * 100:.2f}%",
261
+ ]
262
+ csv_data.loc[col] = new_data
263
+ csv_data.to_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS, index=False)
264
+ return "Evaluation successfully submitted!"
265
+
266
+
267
+ def get_all_df_opendomain():
268
+ df = pd.read_csv(CSV_DIR_OPEN_DOMAIN_RESULTS)
269
+ df = df.sort_values(by="TotalScore↑", ascending=False)
270
+ return df
271
+
272
+
273
+ def get_baseline_df_opendomain():
274
+ df = pd.read_csv(CSV_DIR_OPEN_DOMAIN_RESULTS)
275
+ df = df.sort_values(by="TotalScore↑", ascending=False)
276
+ present_columns = MODEL_INFO + checkbox_group_opendomain.value
277
+ df = df[present_columns]
278
+ return df
279
+
280
+
281
+ def get_all_df_humandomain():
282
+ df = pd.read_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS)
283
+ df = df.sort_values(by="TotalScore↑", ascending=False)
284
+ return df
285
+
286
+
287
+ def get_baseline_df_humandomain():
288
+ df = pd.read_csv(CSV_DIR_HUMAN_DOMAIN_RESULTS)
289
+ df = df.sort_values(by="TotalScore↑", ascending=False)
290
+ present_columns = MODEL_INFO + checkbox_group_humandomain.value
291
+ df = df[present_columns]
292
+ return df
293
+
294
+
295
+ def get_all_df_singledomain():
296
+ df = pd.read_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS)
297
+ df = df.sort_values(by="TotalScore↑", ascending=False)
298
+ return df
299
+
300
+
301
+ def get_baseline_df_singledomain():
302
+ df = pd.read_csv(CSV_DIR_SINGLE_DOMAIN_RESULTS)
303
+ df = df.sort_values(by="TotalScore↑", ascending=False)
304
+ present_columns = MODEL_INFO + checkbox_group_singledomain.value
305
+ df = df[present_columns]
306
+ return df
307
+
308
+
309
+ block = gr.Blocks()
310
+
311
+
312
+ with block:
313
+ gr.HTML("""
314
+ <div style='display: flex; align-items: center; justify-content: center; text-align: center;'>
315
+ <img src="https://www.pnglog.com/6xm07l.png" style='width: 400px; height: auto; margin-right: 10px;' />
316
+ </div>
317
+ """)
318
+ gr.Markdown(LEADERBORAD_INTRODUCTION)
319
+ with gr.Tabs(elem_classes="tab-buttons") as tabs:
320
+ # table Opendomain
321
+ with gr.TabItem("🏅 Open-Domain", elem_id="OpenS2V-Nexus-tab-table", id=0):
322
+ with gr.Row():
323
+ with gr.Accordion("Citation", open=False):
324
+ citation_button = gr.Textbox(
325
+ value=CITATION_BUTTON_TEXT,
326
+ label=CITATION_BUTTON_LABEL,
327
+ elem_id="citation-button",
328
+ show_copy_button=True,
329
+ )
330
+
331
+ gr.Markdown(TABLE_INTRODUCTION)
332
+
333
+ checkbox_group_opendomain = gr.CheckboxGroup(
334
+ choices=ALL_RESULTS,
335
+ value=OPEN_DOMAIN_RESULTS,
336
+ label="Select options",
337
+ interactive=True,
338
+ )
339
+
340
+ data_component_opendomain = gr.components.Dataframe(
341
+ value=get_baseline_df_opendomain,
342
+ headers=COLUMN_NAMES,
343
+ type="pandas",
344
+ datatype=NEW_DATA_TITLE_TYPE,
345
+ interactive=False,
346
+ visible=True,
347
+ )
348
+
349
+ def on_checkbox_group_change_opendomain(selected_columns):
350
+ selected_columns = [
351
+ item for item in ALL_RESULTS if item in selected_columns
352
+ ]
353
+ present_columns = MODEL_INFO + selected_columns
354
+ updated_data = get_baseline_df_opendomain()[present_columns]
355
+ updated_data = updated_data.sort_values(
356
+ by=present_columns[1], ascending=False
357
+ )
358
+ updated_headers = present_columns
359
+ update_datatype = [
360
+ NEW_DATA_TITLE_TYPE[COLUMN_NAMES.index(x)] for x in updated_headers
361
+ ]
362
+
363
+ filter_component = gr.components.Dataframe(
364
+ value=updated_data,
365
+ headers=updated_headers,
366
+ type="pandas",
367
+ datatype=update_datatype,
368
+ interactive=False,
369
+ visible=True,
370
+ )
371
+
372
+ return filter_component
373
+
374
+ checkbox_group_opendomain.change(
375
+ fn=on_checkbox_group_change_opendomain,
376
+ inputs=checkbox_group_opendomain,
377
+ outputs=data_component_opendomain,
378
+ )
379
+
380
+ # table HumanDomain
381
+ with gr.TabItem("🏅 Human-Domain", elem_id="OpenS2V-Nexus-tab-table", id=1):
382
+ with gr.Row():
383
+ with gr.Accordion("Citation", open=False):
384
+ citation_button = gr.Textbox(
385
+ value=CITATION_BUTTON_TEXT,
386
+ label=CITATION_BUTTON_LABEL,
387
+ elem_id="citation-button",
388
+ show_copy_button=True,
389
+ )
390
+
391
+ gr.Markdown(TABLE_INTRODUCTION_HUMAN)
392
+
393
+ checkbox_group_humandomain = gr.CheckboxGroup(
394
+ choices=HUMAN_DOMAIN_RESULTS,
395
+ value=HUMAN_DOMAIN_RESULTS,
396
+ label="Select options",
397
+ interactive=True,
398
+ )
399
+
400
+ data_component_humandomain = gr.components.Dataframe(
401
+ value=get_baseline_df_humandomain,
402
+ headers=COLUMN_NAMES_HUMAN,
403
+ type="pandas",
404
+ datatype=NEW_DATA_TITLE_TYPE,
405
+ interactive=False,
406
+ visible=True,
407
+ )
408
+
409
+ def on_checkbox_group_change_humandomain(selected_columns):
410
+ selected_columns = [
411
+ item for item in ALL_RESULTS if item in selected_columns
412
+ ]
413
+ present_columns = MODEL_INFO + selected_columns
414
+ updated_data = get_baseline_df_humandomain()[present_columns]
415
+ updated_data = updated_data.sort_values(
416
+ by=present_columns[1], ascending=False
417
+ )
418
+ updated_headers = present_columns
419
+ update_datatype = [
420
+ NEW_DATA_TITLE_TYPE[COLUMN_NAMES_HUMAN.index(x)]
421
+ for x in updated_headers
422
+ ]
423
+
424
+ filter_component = gr.components.Dataframe(
425
+ value=updated_data,
426
+ headers=updated_headers,
427
+ type="pandas",
428
+ datatype=update_datatype,
429
+ interactive=False,
430
+ visible=True,
431
+ )
432
+
433
+ return filter_component
434
+
435
+ checkbox_group_humandomain.change(
436
+ fn=on_checkbox_group_change_humandomain,
437
+ inputs=checkbox_group_humandomain,
438
+ outputs=data_component_humandomain,
439
+ )
440
+
441
+ # table SingleDomain
442
+ with gr.TabItem("🏅 Single-Domain", elem_id="OpenS2V-Nexus-tab-table", id=2):
443
+ with gr.Row():
444
+ with gr.Accordion("Citation", open=False):
445
+ citation_button = gr.Textbox(
446
+ value=CITATION_BUTTON_TEXT,
447
+ label=CITATION_BUTTON_LABEL,
448
+ elem_id="citation-button",
449
+ show_copy_button=True,
450
+ )
451
+
452
+ gr.Markdown(TABLE_INTRODUCTION)
453
+
454
+ checkbox_group_singledomain = gr.CheckboxGroup(
455
+ choices=ALL_RESULTS,
456
+ value=SINGLE_DOMAIN_RESULTS,
457
+ label="Select options",
458
+ interactive=True,
459
+ )
460
+
461
+ data_component_singledomain = gr.components.Dataframe(
462
+ value=get_baseline_df_singledomain,
463
+ headers=COLUMN_NAMES,
464
+ type="pandas",
465
+ datatype=NEW_DATA_TITLE_TYPE,
466
+ interactive=False,
467
+ visible=True,
468
+ )
469
+
470
+ def on_checkbox_group_change_singledomain(selected_columns):
471
+ selected_columns = [
472
+ item for item in ALL_RESULTS if item in selected_columns
473
+ ]
474
+ present_columns = MODEL_INFO + selected_columns
475
+ updated_data = get_baseline_df_singledomain()[present_columns]
476
+ updated_data = updated_data.sort_values(
477
+ by=present_columns[1], ascending=False
478
+ )
479
+ updated_headers = present_columns
480
+ update_datatype = [
481
+ NEW_DATA_TITLE_TYPE[COLUMN_NAMES.index(x)] for x in updated_headers
482
+ ]
483
+
484
+ filter_component = gr.components.Dataframe(
485
+ value=updated_data,
486
+ headers=updated_headers,
487
+ type="pandas",
488
+ datatype=update_datatype,
489
+ interactive=False,
490
+ visible=True,
491
+ )
492
+
493
+ return filter_component
494
+
495
+ checkbox_group_singledomain.change(
496
+ fn=on_checkbox_group_change_singledomain,
497
+ inputs=checkbox_group_singledomain,
498
+ outputs=data_component_singledomain,
499
+ )
500
+
501
+ # table Submission
502
+ with gr.TabItem("🚀 Submit here! ", elem_id="seed-benchmark-tab-table", id=4):
503
+ with gr.Row():
504
+ gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
505
+
506
+ with gr.Row():
507
+ gr.Markdown(
508
+ "# ✉️✨ Submit your result here!", elem_classes="markdown-text"
509
+ )
510
+
511
+ with gr.Row():
512
+ with gr.Column():
513
+ model_name_textbox = gr.Textbox(
514
+ label="Model name", placeholder="ConsisID"
515
+ )
516
+ revision_name_textbox = gr.Textbox(
517
+ label="Revision Model Name (Optinal)", placeholder="ConsisID"
518
+ )
519
+ venue_type_dropdown = gr.Dropdown(
520
+ label="Venue Type",
521
+ choices=["Open-Source", "Close-Source"],
522
+ value="Open-Source",
523
+ )
524
+ team_name_textbox = gr.Textbox(
525
+ label="Your Team Name (If left blank, it will be user upload))", placeholder="User Upload"
526
+ )
527
+ model_link = gr.Textbox(
528
+ label="Model Link",
529
+ placeholder="https://github.com/PKU-YuanGroup/ConsisID",
530
+ )
531
+
532
+ with gr.Column():
533
+ input_file = gr.File(label="Click to Upload a json File", type="binary")
534
+
535
+ submit_button_opendomain = gr.Button("Submit Result (Open-Domain)")
536
+ submit_button_humandomain = gr.Button("Submit Result (Human-Domain)")
537
+ submit_button_singledomain = gr.Button("Submit Result (Single-Domain)")
538
+
539
+ submission_result = gr.Markdown()
540
+
541
+ submit_button_opendomain.click(
542
+ add_opendomain_eval,
543
+ inputs=[
544
+ input_file,
545
+ model_name_textbox,
546
+ revision_name_textbox,
547
+ venue_type_dropdown,
548
+ team_name_textbox,
549
+ model_link,
550
+ ],
551
+ outputs=submission_result,
552
+ )
553
+
554
+ submit_button_humandomain.click(
555
+ add_humandomain_eval,
556
+ inputs=[
557
+ input_file,
558
+ model_name_textbox,
559
+ revision_name_textbox,
560
+ venue_type_dropdown,
561
+ team_name_textbox,
562
+ model_link,
563
+ ],
564
+ outputs=submission_result,
565
+ )
566
+
567
+ submit_button_singledomain.click(
568
+ add_singledomain_eval,
569
+ inputs=[
570
+ input_file,
571
+ model_name_textbox,
572
+ revision_name_textbox,
573
+ venue_type_dropdown,
574
+ team_name_textbox,
575
+ model_link,
576
+ ],
577
+ outputs=submission_result,
578
+ )
579
+
580
+ with gr.Row():
581
+ data_run = gr.Button("Refresh")
582
+ data_run.click(get_baseline_df_opendomain, outputs=data_component_opendomain)
583
+ data_run.click(get_baseline_df_humandomain, outputs=data_component_humandomain)
584
+ data_run.click(
585
+ get_baseline_df_singledomain, outputs=data_component_singledomain
586
+ )
587
+
588
+ block.launch()
file_v1.0/constants.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MODEL_INFO = ["Model", "Venue", "Evaluated by"]
2
+
3
+ ALL_RESULTS = [
4
+ "TotalScore↑",
5
+ "Aesthetics↑",
6
+ "Motion↑",
7
+ "FaceSim↑",
8
+ "GmeScore↑",
9
+ "NexusScore↑",
10
+ "NaturalScore↑",
11
+ ]
12
+
13
+ OPEN_DOMAIN_RESULTS = [
14
+ "TotalScore↑",
15
+ "Aesthetics↑",
16
+ "Motion↑",
17
+ "FaceSim↑",
18
+ "GmeScore↑",
19
+ "NexusScore↑",
20
+ "NaturalScore↑",
21
+ ]
22
+ HUMAN_DOMAIN_RESULTS = [
23
+ "TotalScore↑",
24
+ "Aesthetics↑",
25
+ "Motion↑",
26
+ "FaceSim↑",
27
+ "GmeScore↑",
28
+ "NaturalScore↑",
29
+ ]
30
+ SINGLE_DOMAIN_RESULTS = [
31
+ "TotalScore↑",
32
+ "Aesthetics↑",
33
+ "Motion↑",
34
+ "FaceSim↑",
35
+ "GmeScore↑",
36
+ "NexusScore↑",
37
+ "NaturalScore↑",
38
+ ]
39
+
40
+ NEW_DATA_TITLE_TYPE = [
41
+ "markdown",
42
+ "markdown",
43
+ "number",
44
+ "number",
45
+ "number",
46
+ "number",
47
+ "number",
48
+ "number",
49
+ "number",
50
+ ]
51
+
52
+ CSV_DIR_OPEN_DOMAIN_RESULTS = "./results_Open-Domain.csv"
53
+ CSV_DIR_HUMAN_DOMAIN_RESULTS = "./results_Human-Domain.csv"
54
+ CSV_DIR_SINGLE_DOMAIN_RESULTS = "./results_Single-Domain.csv"
55
+
56
+ COLUMN_NAMES = MODEL_INFO + ALL_RESULTS
57
+ COLUMN_NAMES_HUMAN = MODEL_INFO + HUMAN_DOMAIN_RESULTS
58
+
59
+ LEADERBORAD_INTRODUCTION = """
60
+ # OpenS2V-Eval Leaderboard
61
+
62
+ Welcome to the leaderboard of the OpenS2V-Eval!
63
+
64
+ 🏆 OpenS2V-Eval is a core component of **OpenS2V-Nexus**, designed to establish a foundational infrastructure for *Subject-to-Video* (S2V) generation. It presents 180 prompts spanning seven major categories of S2V, incorporating both real and synthetic test data. To better align evaluation with human preferences, it introduce three new automatic metrics—NexusScore, NaturalScore, and GmeScore—that independently assess subject consistency, naturalness, and textual relevance in generated videos.
65
+
66
+ If you like our project, please give us a star ⭐ on GitHub for the latest update.
67
+
68
+ [GitHub](https://github.com/PKU-YuanGroup/OpenS2V-Nexus) | [Arxiv](https://arxiv.org/) | [Home Page](https://pku-yuangroup.github.io/OpenS2V-Nexus/) | [OpenS2V-Eval](https://huggingface.co/datasets/BestWishYsh/OpenS2V-Eval) | [OpenS2V-5M](https://huggingface.co/datasets/BestWishYsh/OpenS2V-5M)
69
+ """
70
+
71
+ SUBMIT_INTRODUCTION = """# Submission Guidelines
72
+ 1. Fill in *'Model Name'* if it is your first time to submit your result **or** Fill in *'Revision Model Name'* if you want to update your result.
73
+ 2. Fill in your home page to *'Model Link'* and your team name to *'Your Team Name'*.
74
+ 3. After evaluation, follow the guidance in the [github repository](https://github.com/PKU-YuanGroup/OpenS2V-Nexus) to obtain `model_name.json` and upload it here.
75
+ 4. Click the *'Submit Eval'* button.
76
+ 5. Click *'Refresh'* to obtain the updated leaderboard.
77
+ """
78
+
79
+ TABLE_INTRODUCTION = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
80
+ 1. Visual Quality: Aesthetics.
81
+ 2. Motion Amplitude: Motion.
82
+ 3. Text Relevance: GmeScore.
83
+ 4. Subject Consistency: FaceSim and NexusScore.
84
+ 5. Subject Naturalness: NaturalScore.
85
+ """
86
+
87
+ TABLE_INTRODUCTION_HUMAN = """In the table below, we use six dimensions as the primary evaluation metrics for each task.
88
+ 1. Visual Quality: Aesthetics.
89
+ 2. Motion Amplitude: Motion.
90
+ 3. Text Relevance: GmeScore.
91
+ 4. Subject Consistency: FaceSim.
92
+ 5. Naturalness: NaturalScore.
93
+ """
94
+
95
+ CITATION_BUTTON_LABEL = "Copy the following snippet to cite these results"
96
+ CITATION_BUTTON_TEXT = r"""@article{yuan2025opens2v,
97
+ title={OpenS2V-Nexus: A Detailed Benchmark and Million-Scale Dataset for Subject-to-Video Generation},
98
+ author={Yuan, Shenghai and He, Xianyi and Deng, Yufan and Ye, Yang and Huang, Jinfa and Lin, Bin and Luo, Jiebo and Yuan, Li},
99
+ journal={arXiv preprint arXiv:2505.20292},
100
+ year={2025}
101
+ }"""
{file → file_v1.0}/model_name_Open-Domain.json RENAMED
File without changes
{file → file_v1.0}/results_Human-Domain.csv RENAMED
@@ -6,7 +6,7 @@ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,Motion↑,FaceSim↑,GmeSco
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,49.02%,53.18%,16.87%,22.29%,73.61%,73.00%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,58.57%,52.78%,11.76%,64.65%,69.53%,74.33%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,53.64%,50.80%,14.14%,46.30%,72.17%,71.67%
9
- [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-V2),Open-Source,OpenS2V Team,54.27%,39.88%,31.98%,55.02%,63.63%,67.33%
10
  [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Open-Source,OpenS2V Team,55.85%,49.67%,15.13%,62.25%,69.78%,67.00%
11
  [Hailuo(20250503)](https://hailuoai.video/),Closed-Source,OpenS2V Team,60.20%,52.75%,31.83%,57.79%,71.42%,74.52%
12
  [ConsisID](https://github.com/PKU-YuanGroup/ConsisID),Open-Source,OpenS2V Team,52.97%,41.76%,38.12%,43.14%,72.03%,64.67%
 
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,49.02%,53.18%,16.87%,22.29%,73.61%,73.00%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,58.57%,52.78%,11.76%,64.65%,69.53%,74.33%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,53.64%,50.80%,14.14%,46.30%,72.17%,71.67%
9
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Open-Source,OpenS2V Team,54.27%,39.88%,31.98%,55.02%,63.63%,67.33%
10
  [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Open-Source,OpenS2V Team,55.85%,49.67%,15.13%,62.25%,69.78%,67.00%
11
  [Hailuo(20250503)](https://hailuoai.video/),Closed-Source,OpenS2V Team,60.20%,52.75%,31.83%,57.79%,71.42%,74.52%
12
  [ConsisID](https://github.com/PKU-YuanGroup/ConsisID),Open-Source,OpenS2V Team,52.97%,41.76%,38.12%,43.14%,72.03%,64.67%
{file → file_v1.0}/results_Open-Domain.csv RENAMED
@@ -6,6 +6,6 @@ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,Motion↑,FaceSim↑,GmeSco
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,45.53%,48.24%,18.83%,20.58%,71.26%,37.95%,71.78%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,52.87%,47.21%,15.02%,55.09%,67.27%,44.20%,72.78%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,50.71%,46.67%,14.29%,48.55%,69.43%,42.44%,70.26%
9
- [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-V2),Open-Source,OpenS2V Team,49.61%,39.40%,25.60%,45.95%,64.54%,43.77%,67.22%
10
  [Phantom-14B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,52.32%,46.39%,33.42%,51.48%,70.65%,37.43%,68.66%
11
  [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Open-Source,OpenS2V Team,47.93%,45.02%,21.81%,30.83%,70.47%,43.04%,69.49%
 
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,45.53%,48.24%,18.83%,20.58%,71.26%,37.95%,71.78%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,52.87%,47.21%,15.02%,55.09%,67.27%,44.20%,72.78%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,50.71%,46.67%,14.29%,48.55%,69.43%,42.44%,70.26%
9
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Open-Source,OpenS2V Team,49.61%,39.40%,25.60%,45.95%,64.54%,43.77%,67.22%
10
  [Phantom-14B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,52.32%,46.39%,33.42%,51.48%,70.65%,37.43%,68.66%
11
  [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Open-Source,OpenS2V Team,47.93%,45.02%,21.81%,30.83%,70.47%,43.04%,69.49%
{file → file_v1.0}/results_Single-Domain.csv RENAMED
@@ -6,7 +6,7 @@ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,Motion↑,FaceSim↑,GmeSco
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,47.33%,41.81%,33.78%,22.38%,65.35%,38.52%,76.00%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,58.00%,41.30%,35.54%,64.65%,58.55%,51.33%,77.33%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,49.95%,42.98%,19.30%,44.03%,65.61%,37.78%,76.00%
9
- [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-V2),Open-Source,OpenS2V Team,51.64%,33.83%,21.60%,54.42%,61.93%,48.63%,70.60%
10
  [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Open-Source,OpenS2V Team,51.64%,34.08%,26.83%,55.93%,54.31%,50.75%,68.66%
11
  [Phantom-14B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,53.17%,47.46%,41.55%,51.82%,70.07%,35.35%,69.35%
12
  [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Open-Source,OpenS2V Team,49.13%,46.31%,27.43%,33.77%,69.02%,42.45%,69.81%
 
6
  [VACE-1.3B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,47.33%,41.81%,33.78%,22.38%,65.35%,38.52%,76.00%
7
  [VACE-14B](https://github.com/ali-vilab/VACE),Open-Source,OpenS2V Team,58.00%,41.30%,35.54%,64.65%,58.55%,51.33%,77.33%
8
  [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,49.95%,42.98%,19.30%,44.03%,65.61%,37.78%,76.00%
9
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Open-Source,OpenS2V Team,51.64%,33.83%,21.60%,54.42%,61.93%,48.63%,70.60%
10
  [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Open-Source,OpenS2V Team,51.64%,34.08%,26.83%,55.93%,54.31%,50.75%,68.66%
11
  [Phantom-14B](https://github.com/Phantom-video/Phantom),Open-Source,OpenS2V Team,53.17%,47.46%,41.55%,51.82%,70.07%,35.35%,69.35%
12
  [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Open-Source,OpenS2V Team,49.13%,46.31%,27.43%,33.77%,69.02%,42.45%,69.81%
file_v1.1/model_name_Open-Domain.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "total_score": 0.562269546381486,
3
+ "aes_score": 0.44594517904800374,
4
+ "motion_smoothness": 0.8693211435903602,
5
+ "motion_amplitude": 0.4160163568750958,
6
+ "facesim_cur": 0.4010164068564032,
7
+ "gme_score": 0.6620000359470859,
8
+ "nexus_score": 0.4588851569398767,
9
+ "natural_score": 0.745910020449898
10
+ }
file_v1.1/results_Human-Domain.csv ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,MotionSmoothness↑,MotionAmplitude↑,FaceSim↑,GmeScore↑,NaturalScore↑
2
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Closed-Source,OpenS2V Team,56.43%,39.89%,80.19%,31.49%,55.01%,63.63%,59.31%
3
+ [Vidu2.0(20250503)](https://www.vidu.cn/),Closed-Source,OpenS2V Team,57.7%,47.33%,91.31%,14.54%,38.5%,70.43%,67.78%
4
+ [EchoVideo](https://github.com/bytedance/EchoVideo),Closed-Source,OpenS2V Team,56.36%,39.93%,77.96%,35.58%,48.65%,68.4%,62.22%
5
+ [Hailuo(20250503)](https://hailuoai.video/),Closed-Source,OpenS2V Team,65.26%,52.75%,99.1%,31.8%,57.69%,71.42%,69.2%
6
+ [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Closed-Source,OpenS2V Team,57.72%,51.2%,90.26%,14.76%,32.87%,70.88%,70.28%
7
+ [Concat-ID-CogVideoX](https://github.com/ML-GSAI/Concat-ID),Closed-Source,OpenS2V Team,55.89%,44.13%,81.9%,31.07%,43.87%,73.67%,58.75%
8
+ [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Closed-Source,OpenS2V Team,61.22%,49.67%,84.73%,15.13%,62.25%,69.78%,60.56%
9
+ [Concat-ID-Wan-AdaLN](https://github.com/ML-GSAI/Concat-ID),Closed-Source,OpenS2V Team,59.85%,43.13%,85.86%,17.19%,50.05%,71.9%,68.47%
10
+ [FantasyID](https://github.com/Fantasy-AMAP/fantasy-id),Closed-Source,OpenS2V Team,54.33%,45.6%,85.44%,23.41%,32.48%,72.68%,62.36%
11
+ [ConsisID](https://github.com/PKU-YuanGroup/ConsisID),Closed-Source,OpenS2V Team,54.19%,41.77%,79.83%,37.99%,43.19%,72.03%,55.83%
12
+ [Kling1.6(20250503)](https://app.klingai.com/cn/),Closed-Source,OpenS2V Team,60.19%,50.94%,84.75%,50.02%,41.02%,67.79%,71.55%
13
+ [VideoMaker](https://github.com/WuTao-CS/VideoMaker),Closed-Source,OpenS2V Team,54.23%,31.76%,77.5%,50.09%,76.45%,45.28%,47.08%
14
+ [VACE-P1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,53.97%,51.91%,95.8%,8.78%,19.98%,73.27%,65.83%
15
+ [VACE-1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,54.9%,53.18%,95.84%,16.87%,22.29%,73.61%,65.28%
16
+ [Pika2.1(20250503)](https://pika.art/),Closed-Source,OpenS2V Team,56.84%,52.39%,85.29%,28.77%,29.42%,75.03%,67.53%
17
+ [ID-Animator](https://github.com/ID-Animator/ID-Animator),Closed-Source,OpenS2V Team,49.75%,42.03%,94.69%,33.54%,31.56%,52.91%,56.11%
18
+ [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,60.0%,50.8%,92.02%,14.09%,46.29%,72.17%,65.83%
19
+ [VACE-14B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,65.78%,52.78%,94.96%,11.76%,64.65%,69.53%,69.31%
20
+ [Phantom-14B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,64.22%,49.14%,94.81%,41.24%,55.04%,72.55%,69.86%
file_v1.1/results_Open-Domain.csv ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,MotionSmoothness↑,MotionAmplitude↑,FaceSim↑,GmeScore↑,NexusScore↑,NaturalScore↑
2
+ [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Closed-Source,OpenS2V Team,52.51%,45.02%,93.17%,21.81%,30.83%,70.47%,43.04%,66.9%
3
+ [VACE-P1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,48.98%,47.34%,96.8%,12.03%,16.59%,71.38%,40.19%,64.31%
4
+ [Phantom-14B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,56.77%,46.39%,96.31%,33.42%,51.46%,70.65%,37.43%,69.35%
5
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Closed-Source,OpenS2V Team,52.25%,39.41%,87.93%,25.6%,45.95%,64.54%,43.75%,60.32%
6
+ [Pika2.1(20250503)](https://pika.art/),Closed-Source,OpenS2V Team,51.88%,46.88%,87.06%,24.71%,30.38%,69.19%,45.4%,63.32%
7
+ [Kling1.6(20250503)](https://app.klingai.com/cn/),Closed-Source,OpenS2V Team,56.23%,44.59%,86.93%,41.6%,40.1%,66.2%,45.89%,74.59%
8
+ [Vidu2.0(20250503)](https://www.vidu.cn/),Closed-Source,OpenS2V Team,51.95%,41.48%,90.45%,13.52%,35.11%,67.57%,43.37%,65.88%
9
+ [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,54.89%,46.67%,93.3%,14.29%,48.56%,69.43%,42.48%,62.5%
10
+ [VACE-1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,49.89%,48.24%,97.2%,18.83%,20.57%,71.26%,37.91%,65.46%
11
+ [VACE-14B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,57.55%,47.21%,94.97%,15.02%,55.09%,67.27%,44.08%,67.04%
file_v1.1/results_Single-Domain.csv ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model,Venue,Evaluated by,TotalScore↑,Aesthetics↑,MotionSmoothness↑,MotionAmplitude↑,FaceSim↑,GmeScore↑,NexusScore↑,NaturalScore↑
2
+ [VACE-P1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,49.2%,48.93%,95.68%,11.91%,18.04%,70.78%,36.24%,66.85%
3
+ [VACE-1.3B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,51.13%,49.41%,95.42%,22.51%,22.37%,70.87%,38.34%,68.33%
4
+ [Kling1.6(20250503)](https://app.klingai.com/cn/),Closed-Source,OpenS2V Team,56.67%,45.97%,85.76%,47.17%,39.27%,65.36%,49.3%,73.63%
5
+ [Pika2.1(20250503)](https://pika.art/),Closed-Source,OpenS2V Team,53.12%,47.43%,86.07%,26.32%,32.33%,69.84%,47.35%,64.68%
6
+ [SkyReels-A2-P14B](https://github.com/SkyworkAI/SkyReels-A2),Closed-Source,OpenS2V Team,55.06%,40.85%,85.54%,26.41%,54.42%,61.81%,48.6%,61.85%
7
+ [MAGREF-480P](https://github.com/MAGREF-Video/MAGREF),Closed-Source,OpenS2V Team,53.44%,46.31%,92.63%,27.43%,33.77%,69.02%,42.45%,68.33%
8
+ [Phantom-14B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,57.02%,47.46%,94.86%,41.55%,51.82%,70.07%,35.3%,71.11%
9
+ [Phantom-1.3B](https://github.com/Phantom-video/Phantom),Closed-Source,OpenS2V Team,54.5%,49.0%,93.7%,16.38%,44.03%,69.54%,37.72%,66.76%
10
+ [VACE-14B](https://github.com/ali-vilab/VACE),Closed-Source,OpenS2V Team,61.75%,48.94%,93.16%,19.69%,64.65%,65.86%,50.82%,70.56%
11
+ [Vidu2.0(20250503)](https://www.vidu.cn/),Closed-Source,OpenS2V Team,52.9%,43.32%,91.88%,17.52%,36.19%,66.96%,44.84%,66.11%
12
+ [HunyuanCustom](https://github.com/Tencent-Hunyuan/HunyuanCustom),Closed-Source,OpenS2V Team,56.89%,44.84%,86.49%,17.94%,55.93%,62.71%,56.49%,58.98%