minette-kaunismaki commited on
Commit
6aca0c6
·
1 Parent(s): 1dd19c2

new-model-mode (#4)

Browse files

- adding new model mode (0ad4e9bc017167a8624cc89852342440e7adef19)

.DS_Store DELETED
Binary file (8.2 kB)
 
.gitignore CHANGED
@@ -176,4 +176,8 @@ cython_debug/
176
  evaluation_results/
177
  images/
178
  hf_cache/
179
- *.lock
 
 
 
 
 
176
  evaluation_results/
177
  images/
178
  hf_cache/
179
+ *.lock
180
+
181
+ # macOS
182
+ .DS_Store
183
+
app.py CHANGED
@@ -2349,8 +2349,8 @@ qwen_combined_dir = _resolve_data_path(
2349
  space_root.parent / "qwen_image_bench_combined",
2350
  )
2351
  qwen_path = _resolve_data_path(
2352
- data_dir / "qwen_image_bench_model_price_and_median_generation_time.csv",
2353
- space_root.parent / "qwen_image_bench_model_price_and_median_generation_time.csv",
2354
  )
2355
  aa_path = _resolve_data_path(
2356
  data_dir / "artificial_analysis_text_to_image_leaderboard.csv",
 
2349
  space_root.parent / "qwen_image_bench_combined",
2350
  )
2351
  qwen_path = _resolve_data_path(
2352
+ data_dir / "qwen_image_bench_model_price_and_median_generation_time_10_august.csv",
2353
+ space_root.parent / "qwen_image_bench_model_price_and_median_generation_time_10_august.csv",
2354
  )
2355
  aa_path = _resolve_data_path(
2356
  data_dir / "artificial_analysis_text_to_image_leaderboard.csv",
data/.DS_Store DELETED
Binary file (6.15 kB)
 
data/qwen_image_bench_model_price_and_median_generation_time.csv DELETED
@@ -1,60 +0,0 @@
1
- Model,Price / Image (USD),Median Generation Time (s),Min Generation Time (s),P-Judge Overall,Raw Win Rate,Rapidata Elo,Datapoint Elo,Benchmark.ai Elo
2
- reve_2_1,N/A,N/A,28.3,,,,,1173.2
3
- ideogram_4_0_quality,N/A,N/A,66.6,,,,,1131.0
4
- gpt_image_2,0.21,77.8,77.8,59.02083099999998,,1172.58,1116,1124.5
5
- nano_banana_2_0,N/A,N/A,N/A,56.362956,59.4%,1071.79,1067,1056.3
6
- gpt_image_1_5,0.135,38.0,38.0,57.864434999999986,64.5%,1102.09,1064,910.3
7
- hidream_i1_dev,0.0086,2.823569217998738,2.06,49.17682099999999,51.7%,999.17,984,
8
- gpt_image_1,0.167,38.8,38.8,54.975741000000006,,1095.39,987,
9
- imagen_4_0_ultra,0.06,11.4,11.4,53.385603999999965,59.7%,1075.22,1023,
10
- flux_2_flex,0.06,10.856533817990567,8.07,53.9245676767677,57.8%,1054.34,1018,921.3
11
- qwen_image,0.025,4.8,4.8,51.561746,51.5%,1073.72,1005,975.6
12
- seedream_5_0,N/A,N/A,N/A,55.715153,,1070.35,1012,
13
- nano_banana_pro,0.134,17.2,17.2,56.452189898989914,58.0%,1029.51,1045,1102.4
14
- hidream_i1_fast,0.0051,9.920469530501578,1.40,48.89298600000002,50.1%,1024.67,984,
15
- imagen_4_fast,0.02,3.7531301500021073,2.71,50.155055208333344,,972.6,981,
16
- seedream_4_5,0.04,16.6,16.6,55.66328800000001,,1048.96,1035,964.2
17
- seedream_4_0,0.03,12.2,12.2,55.241443999999994,,1050.41,1035,
18
- p_image_2_ideogram_low_1k,0.0075,2.59,1.55,54.827397,53.2%,1000.07,1009,1103.9
19
- #p_image_2_ideogram_low_2k,0.016,5.17,4.25,53.971723,48.4%,1074.91,1003,
20
- qwen_image_2_0_pro,0.035,35.5,35.5,56.181776,,1033.25,1017,959.9
21
- juggernaut_base_flux,0.035,4.115834823496698,3.84,49.474676,46.4%,1038.22,972,
22
- flux_2_pro,N/A,N/A,N/A,54.43423900000002,,993.54,1019,1011.6
23
- z_image,0.005,1.5122045120006078,1.22,49.946227999999984,48.1%,1028.1,1001,
24
- p_image_2_ideogram_high_1k,0.015,4.28,3.07,55.754507999999994,52.1%,972.92,1022,1104.0
25
- #p_image_2_ideogram_high_2k,0.03,8.69,7.12,54.757842000000004,49.4%,1074.91,1007,
26
- qwen_image_2512,0.02,19.1,19.1,51.677326,,1029.6,1009,
27
- flux_2_max,0.07,26.4,26.4,54.047976,60.9%,955.19,1028,1001.6
28
- flux_1_1_pro_ultra,0.06,9.026992494000297,6.20,50.358445,52.0%,979.56,995,
29
- juggernaut_pro_flux,0.055,3.699636150500737,3.36,49.741183,46.4%,972.14,964,
30
- flux_dev,0.025,1.6931055715031107,1.49,48.241479,42.1%,925.04,940,
31
- p_image_2_ideogram_very_low_1k,0.003,2.56,1.49,53.51894200000001,48.1%,959.86,995,1071.7
32
- #p_image_2_ideogram_very_low_2k,0.006,3.94,3.05,53.68248699999998,47.2%,962.38,980,
33
- #p_image_2_ideogram_very_low_1k_no_upsampling,0.005,0.82,,46.33,,,,1071.7
34
- #p_image_2_ideogram_very_low_2k_no_upsampling,0.005,2.18,,46.39,,,,1071.7
35
- #p_image_2_ideogram_low_1k_no_upsampling,0.01,3.33,,45.32,,,,1103.9
36
- #p_image_2_ideogram_low_2k_no_upsampling,0.01,3.34,,46.25,,,,1103.9
37
- #p_image_2_ideogram_medium_1k_no_upsampling,0.015,2.13,,46.88,,,,1115.1
38
- #p_image_2_ideogram_medium_2k_no_upsampling,0.015,5.55,,47.11,,,,1115.1
39
- #p_image_2_ideogram_high_1k_no_upsampling,0.03,3.11,,46.88,,,,1104.0
40
- #p_image_2_ideogram_high_2k_no_upsampling,0.03,5.55,,47.06,,,,1104.0
41
- hidream_i1_full,0.014,6.008430051002506,5.69,46.82559300000002,36.9%,955.46,944,
42
- flux_2_dev,0.025,4.310278721997747,4.03,52.71644489795918,53.1%,1007.6,1021,942.0
43
- imagen_4_0,0.04,14.1,14.1,52.08996199999999,53.5%,979.62,1005,
44
- wan_2_2_image,0.02,3.005390542501118,2.96,48.19959399999999,,944.87,960,
45
- flux_krea,0.025,1.7150160090022837,1.7150160090022837,50.35734,50.0%,919.73,975,
46
- p_image_2_ideogram_medium_1k,0.01,3.06,2.05,54.719193000000004,51.7%,941.46,1002,1115.1
47
- #p_image_2_ideogram_medium_2k,0.02,7.44,6.47,54.23124444444446,48.1%,949.35,1000,
48
- glm_image,0.05,188.2,188.2,51.42623399999999,,923.35,953,
49
- p_image,0.005,1.0640762715011078,0.95,48.75217099999999,44.8%,924.37,961,1098.7
50
- hunyuanimage_3_0,0.09,41.0,41.0,52.32440099999998,52.4%,1009.61,979,765.3
51
- juggernaut_lightning_flux,0.006,1.1787893719956628,0.93,48.30471699999998,40.5%,916.68,929,
52
- flux_1_1_pro,0.04,3.0104645500032348,2.34,49.92882700000001,50.6%,925.04,984,
53
- flux_schnell,0.003,0.8411653029907029,0.80,46.685981818181816,34.8%,892.32,915,
54
- kling_v2_1,N/A,N/A,N/A,51.044512,,870.04,981,
55
- #p_image_2_ideogram_very_high_high_1k,0.075,9.34,7.25,58.45,,,1025,
56
- #p_image_2_ideogram_very_high_low_1k,0.0375,26.17,10.44,57.59,,,1024,
57
- #p_image_2_ideogram_very_high_medium_1k,0.05,9.28,5.96,57.88,,,1020,
58
- #p_image_2_ideogram_very_high_very_low_1k,0.015,26.52,10.60,56.92,,,1002,
59
- #p_image_2_ideogram_final_1k,0.0375,11.17,5.55,58.28,,,,
60
- #p_image_2_ideogram_final_2k,0.075,14.34,9.96,57.68,,,,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/qwen_image_bench_model_price_and_median_generation_time_10_august.csv ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Rapidata Model,Price / Image (USD),Median Generation Time (s),Min Generation Time (s),P-Judge Overall,Raw Win Rate,Rapidata Elo,Datapoint Elo,Benchmark.ai Elo
2
+ reve_2_1,N/A,N/A,28.3,,,,,1173.2
3
+ ideogram_4_0_quality,N/A,N/A,66.6,,,,,1131.0
4
+ gpt_image_2,0.21,77.8,77.8,59.02083099999998,65.6%,1172.58,1110,1124.5
5
+ nano_banana_2_0,N/A,N/A,N/A,56.362956,59.2%,1071.79,1063,1056.3
6
+ gpt_image_1_5,0.135,38.0,38.0,57.864434999999986,58.9%,1102.09,1060,910.3
7
+ hidream_i1_dev,0.0086,2.823569217998738,2.06,49.17682099999999,47.7%,999.17,983,
8
+ gpt_image_1,0.167,38.8,38.8,54.975741000000006,47.4%,1095.39,984,
9
+ imagen_4_0_ultra,0.06,11.4,11.4,53.385603999999965,52.9%,1075.22,1019,
10
+ flux_2_flex,0.06,10.856533817990567,8.07,53.9245676767677,52.4%,1054.34,1014,921.3
11
+ #flux_2_turbo,0.008,2.14,1.81,53.02,,,1003,
12
+ #flux_2_flash,0.005,1.43,1.03,52.03,,,1001,
13
+ qwen_image,0.025,4.8,4.8,51.561746,50.3%,1073.72,1002,975.6
14
+ seedream_5_0,N/A,N/A,N/A,55.715153,51.6%,1070.35,1010,
15
+ nano_banana_pro,0.134,17.2,17.2,56.452189898989914,56.4%,1029.51,1041,1102.4
16
+ hidream_i1_fast,0.0051,9.920469530501578,1.40,48.89298600000002,47.2%,1024.67,980,
17
+ imagen_4_fast,0.02,3.7531301500021073,2.71,50.155055208333344,47.2%,972.6,980,
18
+ seedream_4_5,0.04,16.6,16.6,55.66328800000001,54.7%,1048.96,1032,964.2
19
+ seedream_4_0,0.03,12.2,12.2,55.241443999999994,54.9%,1050.41,1032,
20
+ p_image_2_ideogram_low_1k,0.0075,2.59,1.55,54.827397,50.8%,1000.07,1006,1103.9
21
+ #p_image_2_ideogram_low_2k,0.016,5.17,4.25,53.971723,50.0%,1074.91,1000,1103.9
22
+ qwen_image_2_0_pro,0.035,35.5,35.5,56.181776,52.2%,1033.25,1014,959.9
23
+ juggernaut_base_flux,0.035,4.115834823496698,3.84,49.474676,46.1%,1038.22,971,
24
+ flux_2_pro,N/A,N/A,N/A,54.43423900000002,52.2%,993.54,1014,1011.6
25
+ z_image,0.005,1.5122045120006078,1.22,49.946227999999984,49.9%,1028.1,999,
26
+ p_image_2_ideogram_high_1k,0.015,4.28,3.07,55.754507999999994,52.5%,972.92,1017,1104.0
27
+ #p_image_2_ideogram_high_2k,0.06,8.69,7.12,54.757842000000004,50.7%,1074.91,1006,1104.0
28
+ qwen_image_2512,0.02,19.1,19.1,51.677326,50.9%,1029.6,1005,
29
+ flux_2_max,0.07,26.4,26.4,54.047976,53.9%,955.19,1026,1001.6
30
+ flux_1_1_pro_ultra,0.06,9.026992494000297,6.20,50.358445,48.6%,979.56,990,
31
+ juggernaut_pro_flux,0.055,3.699636150500737,3.36,49.741183,44.7%,972.14,963,
32
+ flux_dev,0.025,1.6931055715031107,1.49,48.241479,41.5%,925.04,941,
33
+ p_image_2_ideogram_very_low_1k,0.003,2.56,1.49,53.51894200000001,49.1%,959.86,994,1071.7
34
+ #p_image_2_ideogram_very_low_2k,0.006,3.94,3.05,53.68248699999998,46.3%,962.38,976,1071.7
35
+ #p_image_2_ideogram_very_low_1k_no_upsampling,0.005,0.82,,46.33,,,,1071.7
36
+ #p_image_2_ideogram_very_low_2k_no_upsampling,0.005,2.18,,46.39,,,,1071.7
37
+ #p_image_2_ideogram_low_1k_no_upsampling,0.01,3.33,,45.32,,,,1103.9
38
+ #p_image_2_ideogram_low_2k_no_upsampling,0.01,3.34,,46.25,,,,1103.9
39
+ #p_image_2_ideogram_medium_1k_no_upsampling,0.015,2.13,,46.88,,,,1115.1
40
+ #p_image_2_ideogram_medium_2k_no_upsampling,0.015,5.55,,47.11,,,,1115.1
41
+ #p_image_2_ideogram_high_1k_no_upsampling,0.03,3.11,,46.88,,,,1104.0
42
+ #p_image_2_ideogram_high_2k_no_upsampling,0.03,5.55,,47.06,,,,1104.0
43
+ hidream_i1_full,0.014,6.008430051002506,5.69,46.82559300000002,41.4%,955.46,941,
44
+ flux_2_dev,0.025,4.310278721997747,4.03,52.71644489795918,52.5%,1007.6,1016,942.0
45
+ imagen_4_0,0.04,14.1,14.1,52.08996199999999,50.4%,979.62,1002,
46
+ wan_2_2_image,0.02,3.005390542501118,2.96,48.19959399999999,44.1%,944.87,958,
47
+ flux_krea,0.025,1.7150160090022837,1.7150160090022837,50.35734,46.2%,919.73,973,
48
+ p_image_2_ideogram_medium_1k,0.01,3.06,2.05,54.719193000000004,49.8%,941.46,999,1115.1
49
+ #p_image_2_ideogram_medium_2k,0.02,7.44,6.47,54.23124444444446,49.3%,949.35,996,1115.1
50
+ glm_image,0.05,188.2,188.2,51.42623399999999,42.9%,923.35,950,
51
+ p_image,0.005,1.0640762715011078,0.95,48.75217099999999,44.3%,924.37,960,1098.7
52
+ hunyuanimage_3_0,0.09,41.0,41.0,52.32440099999998,46.6%,1009.61,977,765.3
53
+ juggernaut_lightning_flux,0.006,1.1787893719956628,0.93,48.30471699999998,40.0%,916.68,930,
54
+ flux_1_1_pro,0.04,3.0104645500032348,2.34,49.92882700000001,47.7%,925.04,984,
55
+ flux_schnell,0.003,0.8411653029907029,0.80,46.685981818181816,37.6%,892.32,914,
56
+ kling_v2_1,N/A,N/A,N/A,51.044512,47.2%,870.04,980,
57
+ #p_image_2_ideogram_very_high_high_1k,0.075,9.34,7.25,58.45,52.9%,,1024,
58
+ #p_image_2_ideogram_very_high_low_1k,0.0375,26.17,10.44,57.59,52.9%,,1023,
59
+ #p_image_2_ideogram_very_high_medium_1k,0.05,9.28,5.96,57.88,52.3%,,1019,
60
+ #p_image_2_ideogram_very_high_very_low_1k,0.015,26.52,10.60,56.92,49.4%,,1001,
61
+ p_image_2_ideogram_very_high_1k,0.033,11.17,5.55,58.28,55.5%,,1034,
62
+ #p_image_2_ideogram_very_high_2k,0.066,14.34,9.96,57.68,53.4%,,1020,
63
+ #p_image_2_ideogram_very_high_john_1k,,8.53,6.43,58.19,,,1015,
64
+ #p_image_2_ideogram_very_high_john_2k,,13.86,10.64,57.75,,,1002,
model_display.py CHANGED
@@ -87,6 +87,7 @@ MODEL_DISPLAY_NAMES = {
87
  "p_image_2_ideogram_high_1k": "P-Image-Ideogram High 1K",
88
  "p_image_2_ideogram_high_2k": "P-Image-Ideogram High 2K",
89
  "P-Image-Ideogram (High)": "P-Image-Ideogram High",
 
90
  # Others overlapping P-Bench
91
  "z_image": "Z-Image",
92
  "glm_image": "GLM-Image",
 
87
  "p_image_2_ideogram_high_1k": "P-Image-Ideogram High 1K",
88
  "p_image_2_ideogram_high_2k": "P-Image-Ideogram High 2K",
89
  "P-Image-Ideogram (High)": "P-Image-Ideogram High",
90
+ "p_image_2_ideogram_very_high_1k": "P-Image-Ideogram Very High 1K",
91
  # Others overlapping P-Bench
92
  "z_image": "Z-Image",
93
  "glm_image": "GLM-Image",
ui.py CHANGED
@@ -251,6 +251,14 @@ def _dataset_has_samples(datasets, dataset_id):
251
  return bool(dataset and dataset.get("samples"))
252
 
253
 
 
 
 
 
 
 
 
 
254
  def _dataset_has_pareto(datasets, dataset_id):
255
  dataset = _item(datasets, dataset_id)
256
  columns = getattr(dataset.get("data") if dataset else None, "columns", [])
@@ -321,23 +329,25 @@ def _metric_dropdown_value(metric_id):
321
  ]
322
 
323
 
324
- def _model_choices(datasets, dataset_id):
325
  cached = _MODEL_CHOICES_CACHE.get(dataset_id)
326
- if cached is not None:
 
 
 
 
 
 
 
 
 
 
 
 
 
327
  return cached
328
- dataset = _item(datasets, dataset_id)
329
- data = dataset.get("data") if dataset else None
330
- if data is None or "Model" not in getattr(data, "columns", []):
331
- _MODEL_CHOICES_CACHE[dataset_id] = []
332
- return []
333
- models = data["Model"].dropna().astype(str).unique().tolist()
334
- # (label, value) so the UI shows the shared name but filters on the raw id.
335
- choices = sorted(
336
- ((display_model_name(model), model) for model in models),
337
- key=lambda item: item[0].casefold(),
338
- )
339
- _MODEL_CHOICES_CACHE[dataset_id] = choices
340
- return choices
341
 
342
 
343
  def _model_choice_values(choices):
@@ -1163,10 +1173,10 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1163
  gr.Markdown(
1164
  "<p class='filter-help'>"
1165
  "These filters apply to Leaderboards, Pareto plots, and Samples. "
1166
- "On Samples, only datasets we have generations for are listed. "
1167
- "On Pareto plots, only datasets with price or generation time "
1168
- "are listed. Search in Models, or leave it empty to include "
1169
- "every model."
1170
  "</p>",
1171
  elem_classes="filter-help-host",
1172
  )
@@ -1369,12 +1379,16 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1369
  with gr.TabItem("About", id=TAB_ABOUT) as about_tab:
1370
  render_about()
1371
 
1372
- def _synced_filters(dataset_id, metric_id, models, *, clear_metric=False):
 
 
1373
  if clear_metric:
1374
  metric_id = []
1375
  else:
1376
  metric_id = _coerce_metric(datasets, metrics, dataset_id, metric_id)
1377
- model_choices = _model_choices(datasets, dataset_id)
 
 
1378
  model_values = set(_model_choice_values(model_choices))
1379
  models = [model for model in (models or []) if model in model_values]
1380
  metric_choices = _metric_dropdown_choices(datasets, metrics, dataset_id)
@@ -1588,10 +1602,20 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1588
  dataset_changed = source == "dataset" and dataset_id != view_state.get(
1589
  "dataset_id"
1590
  )
1591
-
 
 
1592
  if source == "dataset":
 
 
 
 
1593
  synced = _synced_filters(
1594
- dataset_id, metric_id, models, clear_metric=dataset_changed
 
 
 
 
1595
  )
1596
  dataset_id, metric_id, models = synced[:3]
1597
  metric_update, models_update = synced[3], synced[4]
@@ -1629,20 +1653,13 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1629
  ):
1630
  return None
1631
 
1632
- selected_tab = tab
1633
  extras = (
1634
  list(platform_value or []),
1635
  list(owner_value or []),
1636
  list(optimized_value or []),
1637
  )
1638
  extra_updates = None
1639
- can_pareto = _dataset_has_pareto(datasets, dataset_id)
1640
- can_samples = _dataset_has_samples(datasets, dataset_id)
1641
  if source == "dataset":
1642
- if tab == TAB_SAMPLES and not can_samples:
1643
- selected_tab = TAB_LEADERBOARDS
1644
- elif tab == TAB_PARETO and not can_pareto:
1645
- selected_tab = TAB_LEADERBOARDS
1646
  view = resolve_view(datasets, metrics, dataset_id, metric_id)
1647
  extra_updates = _leaderboard_extras(
1648
  view["data"] if view else None,
@@ -1822,7 +1839,17 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1822
  )
1823
  dataset_update = _dataset_dropdown_update(datasets, tab, dataset_id)
1824
  metric_id = _coerce_metric(datasets, metrics, dataset_id, metric_id)
1825
- models = list(models or [])
 
 
 
 
 
 
 
 
 
 
1826
  view_state["current_tab"] = tab
1827
  view_state["dataset_id"] = dataset_id
1828
  view_state["metric_id"] = metric_id
@@ -1859,7 +1886,7 @@ def render_image_workspace(datasets, metrics, default_dataset_id, default_metric
1859
  filters_vis,
1860
  dataset_update,
1861
  metric_vis,
1862
- gr.skip(),
1863
  *lb_filters,
1864
  )
1865
  tab_select = (
 
251
  return bool(dataset and dataset.get("samples"))
252
 
253
 
254
+ def _sample_model_ids(datasets, dataset_id):
255
+ dataset = _item(datasets, dataset_id)
256
+ samples = dataset.get("samples") if dataset else None
257
+ if not samples:
258
+ return set()
259
+ return set(samples.get("models") or [])
260
+
261
+
262
  def _dataset_has_pareto(datasets, dataset_id):
263
  dataset = _item(datasets, dataset_id)
264
  columns = getattr(dataset.get("data") if dataset else None, "columns", [])
 
329
  ]
330
 
331
 
332
+ def _model_choices(datasets, dataset_id, *, require_samples=False):
333
  cached = _MODEL_CHOICES_CACHE.get(dataset_id)
334
+ if cached is None:
335
+ dataset = _item(datasets, dataset_id)
336
+ data = dataset.get("data") if dataset else None
337
+ if data is None or "Model" not in getattr(data, "columns", []):
338
+ cached = []
339
+ else:
340
+ models = data["Model"].dropna().astype(str).unique().tolist()
341
+ # (label, value) so the UI shows the shared name but filters on the raw id.
342
+ cached = sorted(
343
+ ((display_model_name(model), model) for model in models),
344
+ key=lambda item: item[0].casefold(),
345
+ )
346
+ _MODEL_CHOICES_CACHE[dataset_id] = cached
347
+ if not require_samples:
348
  return cached
349
+ allowed = _sample_model_ids(datasets, dataset_id)
350
+ return [choice for choice in cached if choice[1] in allowed]
 
 
 
 
 
 
 
 
 
 
 
351
 
352
 
353
  def _model_choice_values(choices):
 
1173
  gr.Markdown(
1174
  "<p class='filter-help'>"
1175
  "These filters apply to Leaderboards, Pareto plots, and Samples. "
1176
+ "On Samples, only datasets and models we have generations for "
1177
+ "are listed. On Pareto plots, only datasets with price or "
1178
+ "generation time are listed. Search in Models, or leave it "
1179
+ "empty to include every model."
1180
  "</p>",
1181
  elem_classes="filter-help-host",
1182
  )
 
1379
  with gr.TabItem("About", id=TAB_ABOUT) as about_tab:
1380
  render_about()
1381
 
1382
+ def _synced_filters(
1383
+ dataset_id, metric_id, models, *, clear_metric=False, require_samples=False
1384
+ ):
1385
  if clear_metric:
1386
  metric_id = []
1387
  else:
1388
  metric_id = _coerce_metric(datasets, metrics, dataset_id, metric_id)
1389
+ model_choices = _model_choices(
1390
+ datasets, dataset_id, require_samples=require_samples
1391
+ )
1392
  model_values = set(_model_choice_values(model_choices))
1393
  models = [model for model in (models or []) if model in model_values]
1394
  metric_choices = _metric_dropdown_choices(datasets, metrics, dataset_id)
 
1602
  dataset_changed = source == "dataset" and dataset_id != view_state.get(
1603
  "dataset_id"
1604
  )
1605
+ can_pareto = _dataset_has_pareto(datasets, dataset_id)
1606
+ can_samples = _dataset_has_samples(datasets, dataset_id)
1607
+ selected_tab = tab
1608
  if source == "dataset":
1609
+ if tab == TAB_SAMPLES and not can_samples:
1610
+ selected_tab = TAB_LEADERBOARDS
1611
+ elif tab == TAB_PARETO and not can_pareto:
1612
+ selected_tab = TAB_LEADERBOARDS
1613
  synced = _synced_filters(
1614
+ dataset_id,
1615
+ metric_id,
1616
+ models,
1617
+ clear_metric=dataset_changed,
1618
+ require_samples=selected_tab == TAB_SAMPLES,
1619
  )
1620
  dataset_id, metric_id, models = synced[:3]
1621
  metric_update, models_update = synced[3], synced[4]
 
1653
  ):
1654
  return None
1655
 
 
1656
  extras = (
1657
  list(platform_value or []),
1658
  list(owner_value or []),
1659
  list(optimized_value or []),
1660
  )
1661
  extra_updates = None
 
 
1662
  if source == "dataset":
 
 
 
 
1663
  view = resolve_view(datasets, metrics, dataset_id, metric_id)
1664
  extra_updates = _leaderboard_extras(
1665
  view["data"] if view else None,
 
1839
  )
1840
  dataset_update = _dataset_dropdown_update(datasets, tab, dataset_id)
1841
  metric_id = _coerce_metric(datasets, metrics, dataset_id, metric_id)
1842
+ require_samples = tab == TAB_SAMPLES
1843
+ model_choices = _model_choices(
1844
+ datasets, dataset_id, require_samples=require_samples
1845
+ )
1846
+ allowed_models = set(_model_choice_values(model_choices))
1847
+ models = [model for model in (models or []) if model in allowed_models]
1848
+ models_update = (
1849
+ gr.update(choices=model_choices, value=models)
1850
+ if (prev_tab == TAB_SAMPLES) != require_samples
1851
+ else gr.skip()
1852
+ )
1853
  view_state["current_tab"] = tab
1854
  view_state["dataset_id"] = dataset_id
1855
  view_state["metric_id"] = metric_id
 
1886
  filters_vis,
1887
  dataset_update,
1888
  metric_vis,
1889
+ models_update,
1890
  *lb_filters,
1891
  )
1892
  tab_select = (