File size: 1,813 Bytes
5de9fd6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import pandas as pd
from PIL import Image
import os

# Load metadata
df = pd.read_csv('preferences.csv')

# Function to display image pairs
def show_image_pair(pair_id):
    record = df[df['pair_id'] == pair_id].iloc[0]
    img1_path = record['image1']
    img2_path = record['image2']
    img1 = Image.open(img1_path)
    img2 = Image.open(img2_path)
    return img1, img2, record['prompt'], record['label1'], record['label1_score'], record['label2'], record['label2_score'], record['label3'], record['label3_score']

# Create dropdown options
pair_ids = df['pair_id'].tolist()

# Define Gradio Interface
with gr.Blocks() as demo:
    gr.Markdown("# MID-Space Dataset Viewer")
    with gr.Row():
        with gr.Column():
            pair_id_input = gr.Dropdown(label="Select Pair ID", choices=pair_ids, value=pair_ids[0])
            show_button = gr.Button("Show Image Pair")
        with gr.Column():
            img1 = gr.Image(label="Image 1")
            img2 = gr.Image(label="Image 2")
    with gr.Row():
        prompt = gr.Textbox(label="Prompt", interactive=False)
    with gr.Row():
        label1 = gr.Textbox(label="Label 1", interactive=False)
        label1_score = gr.Number(label="Label 1 Score", interactive=False)
    with gr.Row():
        label2 = gr.Textbox(label="Label 2", interactive=False)
        label2_score = gr.Number(label="Label 2 Score", interactive=False)
    with gr.Row():
        label3 = gr.Textbox(label="Label 3", interactive=False)
        label3_score = gr.Number(label="Label 3 Score", interactive=False)
    
    show_button.click(
        show_image_pair, 
        inputs=[pair_id_input], 
        outputs=[img1, img2, prompt, label1, label1_score, label2, label2_score, label3, label3_score]
    )

if __name__ == "__main__":
    demo.launch()