Spaces:
Running
Running
Minette Kaunismäki commited on
Commit ·
925fd12
1
Parent(s): 465cf7a
small fixes based on review
Browse files
app.py
CHANGED
|
@@ -581,14 +581,19 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 581 |
.prose .ranking-table td {
|
| 582 |
padding: 8px 10px !important;
|
| 583 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 584 |
.ranking-table .rank,
|
| 585 |
.prose .ranking-table .rank,
|
| 586 |
.ranking-table th.rank {
|
| 587 |
position: sticky !important;
|
| 588 |
left: 0 !important;
|
| 589 |
-
width:
|
| 590 |
-
min-width:
|
| 591 |
-
|
|
|
|
| 592 |
}
|
| 593 |
.ranking-table .model-cell,
|
| 594 |
.prose .ranking-table .model-cell {
|
|
@@ -598,6 +603,7 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 598 |
min-width: 140px;
|
| 599 |
max-width: none;
|
| 600 |
background: transparent !important;
|
|
|
|
| 601 |
}
|
| 602 |
.ranking-table th.model-cell,
|
| 603 |
.prose .ranking-table th.model-cell {
|
|
@@ -608,6 +614,7 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 608 |
min-width: 140px;
|
| 609 |
max-width: none;
|
| 610 |
background: var(--pruna-bg-header) !important;
|
|
|
|
| 611 |
}
|
| 612 |
.ranking-table tbody tr:hover .model-cell {
|
| 613 |
background: var(--pruna-table-hover) !important;
|
|
@@ -1107,11 +1114,11 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 1107 |
max-height: min(70vh, 720px);
|
| 1108 |
overflow-x: auto;
|
| 1109 |
overflow-y: auto;
|
| 1110 |
-
-
|
| 1111 |
-
overscroll-behavior-x: contain;
|
| 1112 |
}
|
| 1113 |
.ranking-table,
|
| 1114 |
.prose .ranking-table {
|
|
|
|
| 1115 |
width: 100%;
|
| 1116 |
margin: 0 !important;
|
| 1117 |
overflow: visible;
|
|
@@ -1187,10 +1194,14 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 1187 |
.prose .ranking-table .rank {
|
| 1188 |
position: sticky;
|
| 1189 |
left: 0;
|
| 1190 |
-
z-index:
|
| 1191 |
box-sizing: border-box;
|
| 1192 |
-
width:
|
| 1193 |
-
min-width:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1194 |
color: var(--pruna-lavender) !important;
|
| 1195 |
font-weight: 700 !important;
|
| 1196 |
text-align: center;
|
|
@@ -1207,18 +1218,21 @@ button.theme-toggle[data-mode="light"] .theme-icon-moon { display: block !import
|
|
| 1207 |
.ranking-table .model-cell,
|
| 1208 |
.prose .ranking-table .model-cell {
|
| 1209 |
position: sticky;
|
| 1210 |
-
left:
|
| 1211 |
-
z-index:
|
|
|
|
| 1212 |
min-width: 180px;
|
| 1213 |
max-width: 260px;
|
| 1214 |
background: var(--pruna-table-sticky) !important;
|
|
|
|
| 1215 |
}
|
| 1216 |
.ranking-table th.model-cell,
|
| 1217 |
.prose .ranking-table th.model-cell {
|
| 1218 |
top: 0;
|
| 1219 |
-
left:
|
| 1220 |
z-index: 5;
|
| 1221 |
background: var(--pruna-bg-header) !important;
|
|
|
|
| 1222 |
}
|
| 1223 |
.ranking-table tbody tr:hover .rank,
|
| 1224 |
.ranking-table tbody tr:hover .model-cell {
|
|
@@ -2307,8 +2321,7 @@ def load_video_editing_dataframe(path):
|
|
| 2307 |
df = df.rename(
|
| 2308 |
columns={
|
| 2309 |
"display_name": "Model",
|
| 2310 |
-
"elo": "
|
| 2311 |
-
"n_generations": "Generations",
|
| 2312 |
"min_generation_s": "Min Generation Time (s)",
|
| 2313 |
"median_generation_s": "Median Generation Time (s)",
|
| 2314 |
"p20_generation_s": "P20 Generation Time (s)",
|
|
@@ -2317,23 +2330,22 @@ def load_video_editing_dataframe(path):
|
|
| 2317 |
"model_execution_time_s_per_output_video_s": (
|
| 2318 |
"Execution Time / Output Video Second (s)"
|
| 2319 |
),
|
| 2320 |
-
"price": "Price / Video (USD)",
|
| 2321 |
}
|
| 2322 |
)
|
| 2323 |
-
df = df.drop(columns=["wandb_run_ids"], errors="ignore")
|
| 2324 |
df["Model"] = df["Model"].astype(str).str.strip()
|
| 2325 |
df = _as_numeric(
|
| 2326 |
df,
|
| 2327 |
[
|
| 2328 |
-
"
|
| 2329 |
-
"Generations",
|
| 2330 |
"Min Generation Time (s)",
|
| 2331 |
"Median Generation Time (s)",
|
| 2332 |
"P20 Generation Time (s)",
|
| 2333 |
"Time / Output Video Second (s)",
|
| 2334 |
"Predict Time / Output Video Second (s)",
|
| 2335 |
"Execution Time / Output Video Second (s)",
|
| 2336 |
-
"Price / Video (USD)",
|
| 2337 |
],
|
| 2338 |
)
|
| 2339 |
end_to_end = df.get("Time / Output Video Second (s)")
|
|
@@ -2460,12 +2472,11 @@ video_display_columns = [
|
|
| 2460 |
col
|
| 2461 |
for col in [
|
| 2462 |
"Model",
|
| 2463 |
-
"
|
| 2464 |
-
"
|
| 2465 |
"Median Generation Time (s)",
|
| 2466 |
"Min Generation Time (s)",
|
| 2467 |
-
"
|
| 2468 |
-
"Price / Video (USD)",
|
| 2469 |
]
|
| 2470 |
if col in video_df.columns
|
| 2471 |
]
|
|
@@ -2490,7 +2501,6 @@ metrics = [
|
|
| 2490 |
{"id": "arena_art", "column": "Arena Art Elo"},
|
| 2491 |
{"id": "arena_portraits", "column": "Arena Portraits Elo"},
|
| 2492 |
{"id": "arena_text", "column": "Arena Text Rendering Elo"},
|
| 2493 |
-
{"id": "video_edit_elo", "column": "Video Edit Elo"},
|
| 2494 |
]
|
| 2495 |
|
| 2496 |
|
|
@@ -2531,20 +2541,20 @@ arena_metric_ids = _metric_ids_for(
|
|
| 2531 |
"arena_text",
|
| 2532 |
],
|
| 2533 |
)
|
| 2534 |
-
video_metric_ids = _metric_ids_for(video_df, ["
|
| 2535 |
|
| 2536 |
datasets = [
|
| 2537 |
{
|
| 2538 |
"id": "video_editing",
|
| 2539 |
-
"name": "
|
| 2540 |
"modality": "video_to_video",
|
| 2541 |
"data": video_df,
|
| 2542 |
"columns": video_display_columns,
|
| 2543 |
"metric_ids": video_metric_ids,
|
| 2544 |
"note": (
|
| 2545 |
-
"Elo from pairwise video-edit preference. Price is USD
|
| 2546 |
-
"
|
| 2547 |
-
"
|
| 2548 |
),
|
| 2549 |
"samples": None,
|
| 2550 |
},
|
|
|
|
| 581 |
.prose .ranking-table td {
|
| 582 |
padding: 8px 10px !important;
|
| 583 |
}
|
| 584 |
+
.ranking-table,
|
| 585 |
+
.prose .ranking-table {
|
| 586 |
+
--rank-col-width: 3.25rem;
|
| 587 |
+
}
|
| 588 |
.ranking-table .rank,
|
| 589 |
.prose .ranking-table .rank,
|
| 590 |
.ranking-table th.rank {
|
| 591 |
position: sticky !important;
|
| 592 |
left: 0 !important;
|
| 593 |
+
width: var(--rank-col-width);
|
| 594 |
+
min-width: var(--rank-col-width);
|
| 595 |
+
max-width: var(--rank-col-width);
|
| 596 |
+
box-shadow: none;
|
| 597 |
}
|
| 598 |
.ranking-table .model-cell,
|
| 599 |
.prose .ranking-table .model-cell {
|
|
|
|
| 603 |
min-width: 140px;
|
| 604 |
max-width: none;
|
| 605 |
background: transparent !important;
|
| 606 |
+
box-shadow: none !important;
|
| 607 |
}
|
| 608 |
.ranking-table th.model-cell,
|
| 609 |
.prose .ranking-table th.model-cell {
|
|
|
|
| 614 |
min-width: 140px;
|
| 615 |
max-width: none;
|
| 616 |
background: var(--pruna-bg-header) !important;
|
| 617 |
+
box-shadow: 0 1px 0 var(--pruna-hairline) !important;
|
| 618 |
}
|
| 619 |
.ranking-table tbody tr:hover .model-cell {
|
| 620 |
background: var(--pruna-table-hover) !important;
|
|
|
|
| 1114 |
max-height: min(70vh, 720px);
|
| 1115 |
overflow-x: auto;
|
| 1116 |
overflow-y: auto;
|
| 1117 |
+
overscroll-behavior: none;
|
|
|
|
| 1118 |
}
|
| 1119 |
.ranking-table,
|
| 1120 |
.prose .ranking-table {
|
| 1121 |
+
--rank-col-width: 4.25rem;
|
| 1122 |
width: 100%;
|
| 1123 |
margin: 0 !important;
|
| 1124 |
overflow: visible;
|
|
|
|
| 1194 |
.prose .ranking-table .rank {
|
| 1195 |
position: sticky;
|
| 1196 |
left: 0;
|
| 1197 |
+
z-index: 2;
|
| 1198 |
box-sizing: border-box;
|
| 1199 |
+
width: var(--rank-col-width);
|
| 1200 |
+
min-width: var(--rank-col-width);
|
| 1201 |
+
max-width: var(--rank-col-width);
|
| 1202 |
+
padding-left: 0.5rem !important;
|
| 1203 |
+
padding-right: 0.5rem !important;
|
| 1204 |
+
overflow: hidden;
|
| 1205 |
color: var(--pruna-lavender) !important;
|
| 1206 |
font-weight: 700 !important;
|
| 1207 |
text-align: center;
|
|
|
|
| 1218 |
.ranking-table .model-cell,
|
| 1219 |
.prose .ranking-table .model-cell {
|
| 1220 |
position: sticky;
|
| 1221 |
+
left: var(--rank-col-width);
|
| 1222 |
+
z-index: 2;
|
| 1223 |
+
box-sizing: border-box;
|
| 1224 |
min-width: 180px;
|
| 1225 |
max-width: 260px;
|
| 1226 |
background: var(--pruna-table-sticky) !important;
|
| 1227 |
+
box-shadow: 8px 0 10px -8px rgba(0, 0, 0, 0.35) !important;
|
| 1228 |
}
|
| 1229 |
.ranking-table th.model-cell,
|
| 1230 |
.prose .ranking-table th.model-cell {
|
| 1231 |
top: 0;
|
| 1232 |
+
left: var(--rank-col-width);
|
| 1233 |
z-index: 5;
|
| 1234 |
background: var(--pruna-bg-header) !important;
|
| 1235 |
+
box-shadow: 0 1px 0 var(--pruna-hairline), 8px 0 10px -8px rgba(0, 0, 0, 0.35) !important;
|
| 1236 |
}
|
| 1237 |
.ranking-table tbody tr:hover .rank,
|
| 1238 |
.ranking-table tbody tr:hover .model-cell {
|
|
|
|
| 2321 |
df = df.rename(
|
| 2322 |
columns={
|
| 2323 |
"display_name": "Model",
|
| 2324 |
+
"elo": "Datapoint Elo",
|
|
|
|
| 2325 |
"min_generation_s": "Min Generation Time (s)",
|
| 2326 |
"median_generation_s": "Median Generation Time (s)",
|
| 2327 |
"p20_generation_s": "P20 Generation Time (s)",
|
|
|
|
| 2330 |
"model_execution_time_s_per_output_video_s": (
|
| 2331 |
"Execution Time / Output Video Second (s)"
|
| 2332 |
),
|
| 2333 |
+
"price": "Price / Second of Video (USD)",
|
| 2334 |
}
|
| 2335 |
)
|
| 2336 |
+
df = df.drop(columns=["wandb_run_ids", "n_generations"], errors="ignore")
|
| 2337 |
df["Model"] = df["Model"].astype(str).str.strip()
|
| 2338 |
df = _as_numeric(
|
| 2339 |
df,
|
| 2340 |
[
|
| 2341 |
+
"Datapoint Elo",
|
|
|
|
| 2342 |
"Min Generation Time (s)",
|
| 2343 |
"Median Generation Time (s)",
|
| 2344 |
"P20 Generation Time (s)",
|
| 2345 |
"Time / Output Video Second (s)",
|
| 2346 |
"Predict Time / Output Video Second (s)",
|
| 2347 |
"Execution Time / Output Video Second (s)",
|
| 2348 |
+
"Price / Second of Video (USD)",
|
| 2349 |
],
|
| 2350 |
)
|
| 2351 |
end_to_end = df.get("Time / Output Video Second (s)")
|
|
|
|
| 2472 |
col
|
| 2473 |
for col in [
|
| 2474 |
"Model",
|
| 2475 |
+
"Datapoint Elo",
|
| 2476 |
+
"Time / Output Video Second (s)",
|
| 2477 |
"Median Generation Time (s)",
|
| 2478 |
"Min Generation Time (s)",
|
| 2479 |
+
"Price / Second of Video (USD)",
|
|
|
|
| 2480 |
]
|
| 2481 |
if col in video_df.columns
|
| 2482 |
]
|
|
|
|
| 2501 |
{"id": "arena_art", "column": "Arena Art Elo"},
|
| 2502 |
{"id": "arena_portraits", "column": "Arena Portraits Elo"},
|
| 2503 |
{"id": "arena_text", "column": "Arena Text Rendering Elo"},
|
|
|
|
| 2504 |
]
|
| 2505 |
|
| 2506 |
|
|
|
|
| 2541 |
"arena_text",
|
| 2542 |
],
|
| 2543 |
)
|
| 2544 |
+
video_metric_ids = _metric_ids_for(video_df, ["datapoint_elo"])
|
| 2545 |
|
| 2546 |
datasets = [
|
| 2547 |
{
|
| 2548 |
"id": "video_editing",
|
| 2549 |
+
"name": "Pruna Internal Video-Edit Benchmark",
|
| 2550 |
"modality": "video_to_video",
|
| 2551 |
"data": video_df,
|
| 2552 |
"columns": video_display_columns,
|
| 2553 |
"metric_ids": video_metric_ids,
|
| 2554 |
"note": (
|
| 2555 |
+
"Datapoint Elo from pairwise video-edit preference. Price is USD "
|
| 2556 |
+
"per second of output video. Generation time per second of video "
|
| 2557 |
+
"is end-to-end wall time to produce one second of output."
|
| 2558 |
),
|
| 2559 |
"samples": None,
|
| 2560 |
},
|
ui.py
CHANGED
|
@@ -25,18 +25,18 @@ MAX_COMPARE_PROMPTS = 8
|
|
| 25 |
MAX_PARETO_METRICS = 8
|
| 26 |
_PARETO_SLOT_COUNT = 1 + MAX_PARETO_METRICS * 8
|
| 27 |
_PARETO_PRICE_COLUMN = "Price / Image (USD)"
|
| 28 |
-
_PARETO_VIDEO_PRICE_COLUMN = "Price / Video (USD)"
|
| 29 |
_PARETO_PRICE_COLUMNS = (_PARETO_PRICE_COLUMN, _PARETO_VIDEO_PRICE_COLUMN)
|
| 30 |
_PARETO_TIME_COLUMN = "Min Generation Time (s)"
|
| 31 |
_PARETO_VIDEO_TIME_COLUMN = "Pareto Time / Output Video Second (s)"
|
| 32 |
_PARETO_TIME_COLUMNS = (_PARETO_VIDEO_TIME_COLUMN, _PARETO_TIME_COLUMN)
|
| 33 |
_PARETO_PRICE_TITLES = {
|
| 34 |
_PARETO_PRICE_COLUMN: "Price per image (USD)",
|
| 35 |
-
_PARETO_VIDEO_PRICE_COLUMN: "Price per video (USD)",
|
| 36 |
}
|
| 37 |
_PARETO_TIME_TITLES = {
|
| 38 |
_PARETO_TIME_COLUMN: "Min generation time (s)",
|
| 39 |
-
_PARETO_VIDEO_TIME_COLUMN: "
|
| 40 |
}
|
| 41 |
_PARETO_SCALE_CHOICES = [
|
| 42 |
("Log", "Logarithmic"),
|
|
@@ -105,9 +105,16 @@ prompt suites, so samples are not shown.
|
|
| 105 |
|
| 106 |
## Current datasets
|
| 107 |
|
| 108 |
-
###
|
| 109 |
-
|
| 110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
|
| 112 |
### Qwen Image Dataset
|
| 113 |
100 prompts from the 1,000-prompt Qwen Image Bench set, sampled for coverage
|
|
@@ -151,12 +158,14 @@ ABOUT_DETAILS_CONTENT = """
|
|
| 151 |
- **Arena Elo**: Elo published by Arena AI on their own dataset, plus
|
| 152 |
category Elos (branding, 3D, cartoon/anime, photorealistic, art, portraits,
|
| 153 |
text rendering).
|
| 154 |
-
- **Generation time**: median and minimum generation time in seconds
|
| 155 |
-
reported in the evaluation table.
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
|
|
|
|
|
|
| 160 |
|
| 161 |
Scores from different datasets or metrics are **not interchangeable**. A high
|
| 162 |
OneIG alignment score is not the same quantity as a Datapoint Elo. Compare
|
|
@@ -456,12 +465,11 @@ _LEADERBOARD_IDENTITY_COLUMNS = [
|
|
| 456 |
"Optimized",
|
| 457 |
]
|
| 458 |
_LEADERBOARD_META_COLUMNS = [
|
|
|
|
| 459 |
"Median Generation Time (s)",
|
| 460 |
"Min Generation Time (s)",
|
| 461 |
-
"Time / Output Video Second (s)",
|
| 462 |
"Price / Image (USD)",
|
| 463 |
-
"Price / Video (USD)",
|
| 464 |
-
"Generations",
|
| 465 |
"Evaluation Date (UTC)",
|
| 466 |
"Date",
|
| 467 |
]
|
|
@@ -513,7 +521,7 @@ def _format_leaderboard_cell(column, value):
|
|
| 513 |
if pd.isna(value) or value is None or value == "":
|
| 514 |
return "-"
|
| 515 |
label = str(column).lower()
|
| 516 |
-
if label
|
| 517 |
return str(int(value))
|
| 518 |
if "price" in label:
|
| 519 |
return _format_price(value)
|
|
@@ -688,11 +696,9 @@ def _display_label(column):
|
|
| 688 |
"Arena Text Rendering Elo": "Text Rendering",
|
| 689 |
"Median Generation Time (s)": "Median generation time",
|
| 690 |
"Min Generation Time (s)": "Min generation time",
|
| 691 |
-
"Time / Output Video Second (s)": "
|
| 692 |
"Price / Image (USD)": "Price per image",
|
| 693 |
-
"Price / Video (USD)": "Price per video",
|
| 694 |
-
"Video Edit Elo": "Elo",
|
| 695 |
-
"Generations": "Generations",
|
| 696 |
"Evaluation Date (UTC)": "Date",
|
| 697 |
"Date": "Date",
|
| 698 |
}
|
|
@@ -1035,7 +1041,7 @@ def _pareto_pair(
|
|
| 1035 |
price_column = _pareto_price_column(data) or _PARETO_PRICE_COLUMN
|
| 1036 |
price_title = _PARETO_PRICE_TITLES.get(price_column, "Price (USD)")
|
| 1037 |
price_missing = (
|
| 1038 |
-
"Price per video isn't available for this dataset."
|
| 1039 |
if price_column == _PARETO_VIDEO_PRICE_COLUMN
|
| 1040 |
else "Price per image isn't available for this dataset."
|
| 1041 |
)
|
|
@@ -1052,12 +1058,12 @@ def _pareto_pair(
|
|
| 1052 |
time_column = _pareto_time_column(data) or _PARETO_TIME_COLUMN
|
| 1053 |
time_title = _PARETO_TIME_TITLES.get(time_column, "Generation time (s)")
|
| 1054 |
time_missing = (
|
| 1055 |
-
"
|
| 1056 |
if time_column == _PARETO_VIDEO_TIME_COLUMN
|
| 1057 |
else "Min generation time isn't available for this dataset."
|
| 1058 |
)
|
| 1059 |
time_empty = (
|
| 1060 |
-
"No models have both a score and
|
| 1061 |
"video for this metric."
|
| 1062 |
if time_column == _PARETO_VIDEO_TIME_COLUMN
|
| 1063 |
else "No models have both a score and a min generation time for this metric."
|
|
|
|
| 25 |
MAX_PARETO_METRICS = 8
|
| 26 |
_PARETO_SLOT_COUNT = 1 + MAX_PARETO_METRICS * 8
|
| 27 |
_PARETO_PRICE_COLUMN = "Price / Image (USD)"
|
| 28 |
+
_PARETO_VIDEO_PRICE_COLUMN = "Price / Second of Video (USD)"
|
| 29 |
_PARETO_PRICE_COLUMNS = (_PARETO_PRICE_COLUMN, _PARETO_VIDEO_PRICE_COLUMN)
|
| 30 |
_PARETO_TIME_COLUMN = "Min Generation Time (s)"
|
| 31 |
_PARETO_VIDEO_TIME_COLUMN = "Pareto Time / Output Video Second (s)"
|
| 32 |
_PARETO_TIME_COLUMNS = (_PARETO_VIDEO_TIME_COLUMN, _PARETO_TIME_COLUMN)
|
| 33 |
_PARETO_PRICE_TITLES = {
|
| 34 |
_PARETO_PRICE_COLUMN: "Price per image (USD)",
|
| 35 |
+
_PARETO_VIDEO_PRICE_COLUMN: "Price per second of video (USD)",
|
| 36 |
}
|
| 37 |
_PARETO_TIME_TITLES = {
|
| 38 |
_PARETO_TIME_COLUMN: "Min generation time (s)",
|
| 39 |
+
_PARETO_VIDEO_TIME_COLUMN: "Generation time per second of video",
|
| 40 |
}
|
| 41 |
_PARETO_SCALE_CHOICES = [
|
| 42 |
("Log", "Logarithmic"),
|
|
|
|
| 105 |
|
| 106 |
## Current datasets
|
| 107 |
|
| 108 |
+
### Pruna Internal Video-Edit Benchmark
|
| 109 |
+
Pruna's internal video-to-video editing benchmark, collected by our
|
| 110 |
+
research engineers. It combines prompts from public video-editing
|
| 111 |
+
benchmarks with use-case examples we gathered for advertisement,
|
| 112 |
+
e-commerce, real estate, concept art, and similar work. The suite also
|
| 113 |
+
covers camera-angle and movement changes, lighting, and text in video
|
| 114 |
+
(altering, adding, or removing it). Quality is Datapoint Elo from
|
| 115 |
+
pairwise preference. Price is USD per second of output video;
|
| 116 |
+
generation time is wall time per second of output video. Samples are
|
| 117 |
+
not shown yet.
|
| 118 |
|
| 119 |
### Qwen Image Dataset
|
| 120 |
100 prompts from the 1,000-prompt Qwen Image Bench set, sampled for coverage
|
|
|
|
| 158 |
- **Arena Elo**: Elo published by Arena AI on their own dataset, plus
|
| 159 |
category Elos (branding, 3D, cartoon/anime, photorealistic, art, portraits,
|
| 160 |
text rendering).
|
| 161 |
+
- **Generation time**: median and minimum generation time in seconds for
|
| 162 |
+
images, as reported in the evaluation table. For video, generation time
|
| 163 |
+
per second of output video is the more informative figure (end-to-end
|
| 164 |
+
wall time). This is not a p95, and we do not state warm vs cold or
|
| 165 |
+
concurrent load. Not available for Arena AI.
|
| 166 |
+
- **Price**: USD per image for text-to-image, or USD per second of output
|
| 167 |
+
video for video-to-video. We do not state list price vs amount paid, or
|
| 168 |
+
whether failed generations are included. Not available for Arena AI.
|
| 169 |
|
| 170 |
Scores from different datasets or metrics are **not interchangeable**. A high
|
| 171 |
OneIG alignment score is not the same quantity as a Datapoint Elo. Compare
|
|
|
|
| 465 |
"Optimized",
|
| 466 |
]
|
| 467 |
_LEADERBOARD_META_COLUMNS = [
|
| 468 |
+
"Time / Output Video Second (s)",
|
| 469 |
"Median Generation Time (s)",
|
| 470 |
"Min Generation Time (s)",
|
|
|
|
| 471 |
"Price / Image (USD)",
|
| 472 |
+
"Price / Second of Video (USD)",
|
|
|
|
| 473 |
"Evaluation Date (UTC)",
|
| 474 |
"Date",
|
| 475 |
]
|
|
|
|
| 521 |
if pd.isna(value) or value is None or value == "":
|
| 522 |
return "-"
|
| 523 |
label = str(column).lower()
|
| 524 |
+
if label == "rank":
|
| 525 |
return str(int(value))
|
| 526 |
if "price" in label:
|
| 527 |
return _format_price(value)
|
|
|
|
| 696 |
"Arena Text Rendering Elo": "Text Rendering",
|
| 697 |
"Median Generation Time (s)": "Median generation time",
|
| 698 |
"Min Generation Time (s)": "Min generation time",
|
| 699 |
+
"Time / Output Video Second (s)": "Generation time per second of video",
|
| 700 |
"Price / Image (USD)": "Price per image",
|
| 701 |
+
"Price / Second of Video (USD)": "Price per second of video",
|
|
|
|
|
|
|
| 702 |
"Evaluation Date (UTC)": "Date",
|
| 703 |
"Date": "Date",
|
| 704 |
}
|
|
|
|
| 1041 |
price_column = _pareto_price_column(data) or _PARETO_PRICE_COLUMN
|
| 1042 |
price_title = _PARETO_PRICE_TITLES.get(price_column, "Price (USD)")
|
| 1043 |
price_missing = (
|
| 1044 |
+
"Price per second of video isn't available for this dataset."
|
| 1045 |
if price_column == _PARETO_VIDEO_PRICE_COLUMN
|
| 1046 |
else "Price per image isn't available for this dataset."
|
| 1047 |
)
|
|
|
|
| 1058 |
time_column = _pareto_time_column(data) or _PARETO_TIME_COLUMN
|
| 1059 |
time_title = _PARETO_TIME_TITLES.get(time_column, "Generation time (s)")
|
| 1060 |
time_missing = (
|
| 1061 |
+
"Generation time per second of video isn't available for this dataset."
|
| 1062 |
if time_column == _PARETO_VIDEO_TIME_COLUMN
|
| 1063 |
else "Min generation time isn't available for this dataset."
|
| 1064 |
)
|
| 1065 |
time_empty = (
|
| 1066 |
+
"No models have both a score and generation time per second of "
|
| 1067 |
"video for this metric."
|
| 1068 |
if time_column == _PARETO_VIDEO_TIME_COLUMN
|
| 1069 |
else "No models have both a score and a min generation time for this metric."
|