File size: 5,400 Bytes
da88a39
 
 
a0dbd64
da88a39
 
 
 
a0dbd64
 
da88a39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a0dbd64
 
 
 
 
 
da88a39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434199b
da88a39
 
7be996f
da88a39
 
7be996f
da88a39
 
7be996f
da88a39
7be996f
da88a39
7be996f
da88a39
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import streamlit as st
import pandas as pd
import json
import numpy as np

# 读取 JSON 数据
with open('GenAI-Bench_tags.json', 'r') as file:
    data = json.load(file)
with open('genai_image.json', 'r') as file:
    humanRatings = json.load(file)
# Streamlit 页面标题

st.set_page_config(page_title="GenAI-Bench Dataset Viewer", page_icon=None, layout="wide", initial_sidebar_state="auto",
                   menu_items=None)
st.title('GenAI-Bench Dataset Viewer')
# 多选框
basic_options = []
advanced_options = []

for i in data:
    data[i]['basic'].sort()
    data[i]['advanced'].sort()

    for basic in data[i]['basic']:
        if basic not in basic_options:
            basic_options.append(basic)
    for adv in data[i]['advanced']:
        if adv not in advanced_options:
            advanced_options.append(adv)
    data[i]['id'] = i
    # modles = ["DALLE_3","DeepFloyd_I_XL_v1","Midjourney_6","SDXL_2_1","SDXL_Base","SDXL_Turbo"]
    data[i]['DALLE_3'] = f"app/static/DALLE_3/{i}.jpeg"
    data[i]['DeepFloyd_I_XL_v1'] = f"app/static/DeepFloyd_I_XL_v1/{i}.jpeg"
    data[i]['Midjourney_6'] = f"app/static/Midjourney_6/{i}.jpeg"
    data[i]['SDXL_2_1'] = f"app/static/SDXL_2_1/{i}.jpeg"
    data[i]['SDXL_Base'] = f"app/static/SDXL_Base/{i}.jpeg"
    data[i]['SDXL_Turbo'] = f"app/static/SDXL_Turbo/{i}.jpeg"

    data[i]['DALLE_3_Human'] = round(np.mean(humanRatings[i]["models"]["DALLE_3"]), 1)
    data[i]['DeepFloyd_I_XL_v1_Human'] = round(np.mean(humanRatings[i]["models"]["DeepFloyd_I_XL_v1"]), 1)
    data[i]['Midjourney_6_Human'] = round(np.mean(humanRatings[i]["models"]["Midjourney_6"]), 1)
    data[i]['SDXL_2_1_Human'] = round(np.mean(humanRatings[i]["models"]["SDXL_2_1"]), 1)
    data[i]['SDXL_Base_Human'] = round(np.mean(humanRatings[i]["models"]["SDXL_Base"]), 1)
    data[i]['SDXL_Turbo_Human'] = round(np.mean(humanRatings[i]["models"]["SDXL_Turbo"]), 1)

selected_basic = st.multiselect('Select Basic Skills:', basic_options)
selected_advanced = st.multiselect('Select Advanced Skills:', advanced_options)

# 筛选数据
filtered_data = [
    data[item] for item in data
    if all(elem in data[item]['basic'] for elem in selected_basic) and
       all(advanced in data[item]['advanced'] for advanced in selected_advanced)
]

# 显示筛选后的数据
if filtered_data:
    df = pd.DataFrame(filtered_data)
    df = df.reindex(columns=["id", "prompt", "basic", "advanced", "DALLE_3", "DALLE_3_Human", "DeepFloyd_I_XL_v1",
                             "DeepFloyd_I_XL_v1_Human", "Midjourney_6", "Midjourney_6_Human", "SDXL_2_1",
                             "SDXL_2_1_Human", "SDXL_Base", "SDXL_Base_Human", "SDXL_Turbo", "SDXL_Turbo_Human"])
    st.dataframe(data=df, width = 4096, height = 800,
                 column_config={
                     "name": "Data Explorer",
                     "id": st.column_config.NumberColumn("ID", format="%d", width="small"),
                     'basic': st.column_config.ListColumn(label="Basic Skills", width="large", help=None),
                     'advanced': st.column_config.ListColumn(label="Advanced Skills", width="large", help=None),
                     'prompt': st.column_config.TextColumn(label="Prompt", width="large", help=None, disabled=None,
                                                           required=None,
                                                           default=None, max_chars=None, validate=None),
                     "DALLE_3": st.column_config.ImageColumn(label="DALLE_3", width="small", help=None),
                     "DALLE_3_Human": st.column_config.NumberColumn("Rating Human", format="%.1f", width="small", help="Rating Human for DALLE_3"),
                     "DeepFloyd_I_XL_v1": st.column_config.ImageColumn(label="DeepFloyd", width="small",
                                                                       help="DeepFloyd_I_XL_v1"),
                     "DeepFloyd_I_XL_v1_Human": st.column_config.NumberColumn("Rating Human", format="%.1f",
                                                                              width="small", help="Rating Human for DeepFloyd"),
                     "Midjourney_6": st.column_config.ImageColumn(label="Midjourney", width="small", help="Midjourney_6"),
                     "Midjourney_6_Human": st.column_config.NumberColumn("Rating Human", format="%.1f",
                                                                         width="small", help="Rating Human for Midjourney_6"),
                     "SDXL_2_1": st.column_config.ImageColumn(label="SDXL_2_1", width="small", help=None),
                     "SDXL_2_1_Human": st.column_config.NumberColumn("Rating Human", format="%.1f", width="small", help="Rating Human for SDXL_2_1"),
                     "SDXL_Base": st.column_config.ImageColumn(label="SDXL_Base", width="small", help=None),
                     "SDXL_Base_Human": st.column_config.NumberColumn("Rating Human", format="%.1f", width="small", help="Rating Human for SDXL_Base"),
                     "SDXL_Turbo": st.column_config.ImageColumn(label="SDXL_Turbo", width="small", help=None),
                     "SDXL_Turbo_Human": st.column_config.NumberColumn("Rating Human", format="%.1f", width="small", help="Rating Human for SDXL_Turbo"),
                 },
                 hide_index=True, selection_mode="single-row")
else:
    st.write("No data matches the selected filters.")