Spaces:
Running
Running
from .utils import * | |
from .vote_utils import ( | |
leftvote_last_response_igm as leftvote_last_response, | |
rightvote_last_response_igm as rightvote_last_response, | |
bothbad_vote_last_response_igm as bothbad_vote_last_response, | |
leftvote_last_response_igm_anony as leftvote_last_response_anony, | |
rightvote_last_response_igm_anony as rightvote_last_response_anony, | |
bothbad_vote_last_response_igm_anony as bothbad_vote_last_response_anony, | |
) | |
# from functools import partial | |
def build_side_by_side_ui_anony(models): | |
notice_markdown = \ | |
""" | |
# βοΈ IDEA-Bench βοΈ : How Far are Generative Models from Professional Designing? | |
| [GitHub](https://github.com/ali-vilab/IDEA-Bench) | [Paper](https://arxiv.org/abs/2412.11767) | [Dataset](https://huggingface.co/datasets/ali-vilab/IDEA-Bench) | | |
## π Rules | |
- Choose the better one from two anonymous models. | |
- Click "New Round" to start a new round. | |
- After the voting ends, the model name will be displayed and the voting selection cannot be changed. | |
## β οΈ Data Collection Consent | |
- Your votes will be collected for research purposes only. | |
- By using this service, you agree to the collection of your votes for research purposes. | |
- Your data will be anonymized and will not be used for commercial purposes. | |
## π Arena Elo | |
Find out the best model for professional level image processing tasks! Welcome to upload your own model generation results! | |
## π Voting now! | |
""" | |
state0 = gr.State() | |
state1 = gr.State() | |
state_models = gr.State(models) # δ½Ώη¨ State εε¨ζ¨‘ε | |
gr.Markdown(notice_markdown, elem_id="notice_markdown") | |
with gr.Group(elem_id="share-region-anony"): | |
# Display model description | |
with gr.Accordion("π Expand to see all Arena players", open=False): | |
model_description_md = models.get_model_info_md() | |
gr.Markdown(model_description_md, elem_id="model_description_markdown") | |
# Display the input prompt as non-editable text | |
with gr.Accordion("βοΈ The input prompt:", open=True): | |
prompt = gr.Markdown( value="", # Display the prompt here | |
elem_id="prompt" | |
) | |
# Display input images | |
with gr.Row(): | |
input_images = gr.Gallery( | |
value=[], | |
columns=5, | |
label="Input Images", | |
show_label=True, | |
elem_id="input_images", | |
preview=True, | |
visible=True | |
) | |
with gr.Row(): | |
with gr.Column(): | |
chatbot_left = gr.Gallery( | |
value=[], | |
columns=3, | |
label="Model A", | |
show_label=True, | |
preview=True | |
) | |
with gr.Column(): | |
chatbot_right = gr.Gallery( | |
value=[], | |
columns=3, | |
label="Model B", | |
show_label=True, | |
preview=True | |
) | |
with gr.Row(): | |
with gr.Column(): | |
model_demo_left = gr.Markdown("", visible=False) | |
with gr.Column(): | |
model_demo_right = gr.Markdown("", visible=False) | |
with gr.Row(): | |
slow_warning = gr.Markdown("", elem_id="notice_markdown") | |
with gr.Row(elem_classes=["btn-row"]): | |
with gr.Column(): | |
leftvote_btn = gr.Button( | |
value="Prefer π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Column(): | |
rightvote_btn = gr.Button( | |
value="Prefer π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Row(elem_classes=["btn-row"]): | |
with gr.Column(): | |
bothbad_btn = gr.Button( | |
value="Both are bad π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Column(): | |
refresh_btn = gr.Button( | |
value="New Round π²", | |
interactive=True, | |
elem_classes=["vote-btn"], | |
) | |
btn_list = [leftvote_btn, rightvote_btn, bothbad_btn, refresh_btn] | |
refresh_btn.click( | |
refresh_side_by_side_anony, | |
inputs=[state_models], | |
outputs=[state0, state1, prompt, input_images, chatbot_left, chatbot_right, leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right], | |
api_name="refresh_btn_annony" | |
) | |
leftvote_btn.click( | |
leftvote_last_response_anony, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |
rightvote_btn.click( | |
rightvote_last_response_anony, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |
bothbad_btn.click( | |
bothbad_vote_last_response_anony, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |
def build_side_by_side_ui_named(models): | |
notice_markdown = \ | |
""" | |
# βοΈ IDEA-Bench βοΈ : How Far are Generative Models from Professional Designing? | |
| [GitHub](https://github.com/ali-vilab/IDEA-Bench) | [Paper](https://arxiv.org/abs/2412.11767) | [Dataset](https://huggingface.co/datasets/ali-vilab/IDEA-Bench) | | |
## π Rules | |
- Choose the better one from two anonymous models. | |
- Click "New Round" to start a new round. | |
- After the voting ends, the model name will be displayed and the voting selection cannot be changed. | |
## β οΈ Data Collection Consent | |
- Your votes will be collected for research purposes only. | |
- By using this service, you agree to the collection of your votes for research purposes. | |
- Your data will be anonymized and will not be used for commercial purposes. | |
## π Arena Elo | |
Find out the best model for professional level image processing tasks! Welcome to upload your own model generation results! | |
## π Voting now! | |
""" | |
model_list = models.get_name_list() | |
state0 = gr.State() | |
state1 = gr.State() | |
state_models = gr.State(models) # δ½Ώη¨ State εε¨ζ¨‘ε | |
gr.Markdown(notice_markdown, elem_id="notice_markdown") | |
with gr.Group(elem_id="share-region-named"): | |
with gr.Row(): | |
with gr.Column(): | |
model_selector_left = gr.Dropdown( | |
choices=model_list, | |
value=model_list[0] if len(model_list) > 0 else "", | |
interactive=True, | |
show_label=False, | |
container=False, | |
allow_custom_value=True | |
) | |
with gr.Column(): | |
model_selector_right = gr.Dropdown( | |
choices=model_list, | |
value=model_list[1] if len(model_list) > 1 else "", | |
interactive=True, | |
show_label=False, | |
container=False, | |
allow_custom_value=True | |
) | |
# with gr.Column(): | |
# gen_btn = gr.Button( | |
# value="Generate π", visible=True, interactive=True | |
# ) | |
# Display model description | |
with gr.Accordion("π Expand to see all Arena players", open=False): | |
model_description_md = models.get_model_info_md() | |
gr.Markdown(model_description_md, elem_id="model_description_markdown") | |
# Display the input prompt as non-editable text | |
with gr.Accordion("βοΈ The input prompt:", open=True): | |
prompt = gr.Markdown( | |
value="", # Display the prompt here | |
elem_id="prompt" | |
) | |
# Display input images | |
with gr.Row(): | |
input_images = gr.Gallery( | |
value=[], | |
columns=5, | |
label="Input Images", | |
show_label=True, | |
elem_id="input_images", | |
preview=True, | |
visible=True | |
) | |
with gr.Row(): | |
with gr.Column(): | |
chatbot_left = gr.Gallery( | |
value=[], | |
columns=3, | |
label="Model A", | |
show_label=True, | |
preview=True | |
) | |
with gr.Column(): | |
chatbot_right = gr.Gallery( | |
value=[], | |
columns=3, | |
label="Model B", | |
show_label=True, | |
preview=True | |
) | |
with gr.Row(): | |
with gr.Column(): | |
model_demo_left = gr.Markdown("", visible=False) | |
with gr.Column(): | |
model_demo_right = gr.Markdown("", visible=False) | |
with gr.Row(): | |
slow_warning = gr.Markdown("", elem_id="notice_markdown") | |
with gr.Row(elem_classes=["btn-row"]): | |
with gr.Column(): | |
leftvote_btn = gr.Button( | |
value="Prefer π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Column(): | |
rightvote_btn = gr.Button( | |
value="Prefer π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Row(elem_classes=["btn-row"]): | |
with gr.Column(): | |
bothbad_btn = gr.Button( | |
value="Both are bad π", | |
visible=True, | |
interactive=False, | |
elem_classes=["vote-btn"], | |
) | |
with gr.Column(): | |
refresh_btn = gr.Button( | |
value="New Round π²", | |
interactive=True, | |
elem_classes=["vote-btn"], | |
) | |
btn_list = [leftvote_btn, rightvote_btn, bothbad_btn, refresh_btn] | |
# gen_btn.click( | |
# refresh_side_by_side, | |
# inputs=[state_models, model_selector_left, model_selector_right], | |
# outputs=[prompt, input_images, chatbot_left, chatbot_right], | |
# api_name="refresh_btn_annony" | |
# ) | |
refresh_btn.click( | |
refresh_side_by_side, | |
inputs=[state_models, model_selector_left, model_selector_right], | |
outputs=[state0, state1, prompt, input_images, chatbot_left, chatbot_right, leftvote_btn, rightvote_btn, bothbad_btn, model_selector_left, model_selector_right, model_demo_left, model_demo_right], | |
api_name="refresh_btn_annony" | |
) | |
leftvote_btn.click( | |
leftvote_last_response, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |
rightvote_btn.click( | |
rightvote_last_response, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |
bothbad_btn.click( | |
bothbad_vote_last_response, | |
inputs=[state0, state1], | |
outputs=[leftvote_btn, rightvote_btn, bothbad_btn, model_demo_left, model_demo_right] | |
) | |