Spaces:
Runtime error
Runtime error
from vis_common import * | |
import vis_utils as v_uts | |
import io_utils as io_uts | |
import os | |
from pickle import FALSE | |
import gradio as gr | |
from functools import partial | |
import json | |
# install gradio of 3.14 | |
os.system("echo $BYTED_HOST_IP") | |
# Load the dataset change to your local path | |
root = "/home/mudehui/ChatEdit" | |
#prompt_version = "prompt_0_sd" | |
#prompt_version = "prompt_0_hd" | |
#prompt_version = "prompt_1_sd" | |
#prompt_version = "prompt_1_hd" | |
prompt_version = "prompt_0_rewrited_sd" | |
def load_json(file, existing_data=[]): | |
if not os.path.exists(file): | |
empty = {} | |
return empty | |
with open(file, "r") as f: | |
stats = json.load(f) | |
results = {name: score for name, score in stats.items() \ | |
if name not in existing_data} | |
return results | |
all_items = f"{root}/full_val.jsonl" | |
all_samples = io_uts.load_jsonl(all_items) | |
all_samples = {f"{i:03}":all_samples[i] for i in range(len(all_samples))} | |
votes = {} | |
def update(name, picture_name, vote, start_idx=0, end_idx=1000): | |
record_file = f"./output/{prompt_version}/{name}.json" | |
v_uts.mkdir("", record_file) | |
start_idx, end_idx = int(start_idx), int(end_idx) | |
end_idx = min(end_idx, len(all_samples) - 1) | |
items = list(all_samples.items())[start_idx:end_idx] | |
label_samples = {name:prompt for name, prompt in items} | |
if name == "": | |
new_picture = None | |
picture_name = None | |
description = None | |
message = "Please enter your lark username" | |
elif picture_name in label_samples.keys() and vote is None: | |
new_picture = None | |
picture_name = None | |
description = None | |
message = "Please make selections! Click Next to continue..." | |
else: | |
# Read record | |
existing_data = load_json(record_file) | |
# Save record | |
if (picture_name in label_samples.keys()): | |
sample = label_samples[picture_name] | |
sample["vote"] = vote | |
existing_data[picture_name] = sample | |
with open(record_file, "w") as f: | |
json.dump(existing_data, f, indent=2) | |
# Find Next example | |
all_remaining = {} | |
for i, name in enumerate(label_samples.keys()): | |
if name in existing_data: | |
continue | |
else: | |
all_remaining[name] = label_samples[name] | |
if len(all_remaining) > 0: | |
new_sample = list(all_remaining.items())[0] | |
picture_name, data = new_sample | |
description = f"input: {data['input']}<br>output: {data['output']}<br>edit: {data['edit']}" | |
new_picture = f"{root}/{prompt_version}/{picture_name}.png" | |
message = f"{len(all_remaining)} exmaples remaining" | |
else: | |
new_picture = None | |
picture_name = None | |
description = None | |
message = "You have finished all exmaples! Thank you!" | |
outputs = [new_picture, picture_name, message, description] | |
print(outputs) | |
return tuple(outputs) | |
with gr.Blocks() as demo: | |
gr.Markdown(""" | |
- 输入用户名, 开始结束index,点击Next按钮开始, 你正在评价 {prompt}" | |
""".format(prompt=prompt_version)) | |
with gr.Row(): | |
with gr.Column(): | |
picture_name = gr.Textbox(visible=FALSE) | |
picture = gr.Image(label=f"Input Image from ") | |
with gr.Column(): | |
name = gr.Textbox(label="User Name (enter and click Next to start)") | |
start_idx = gr.Textbox(label="Start Index (max 292)", default="0") | |
end_idx = gr.Textbox(label="End Index (max 292)", default="1000") | |
message = gr.Markdown() | |
description = gr.Markdown() | |
vote = gr.Radio([ | |
('1: Totally not related ', 1), | |
('2: Not follow edit, there is some/little relation between the two images.', 2), | |
('3: OK Pair data, not follow edit, image pair need some edit effort [flip etc.] to construct a good edit pair.', 3), | |
('4: Good pair data, can modify the instruction to form a good triplet', 4), | |
('5: Perfectly follows the edit instruction.', 5) | |
], label="Score", min_width=400) | |
greet_btn = gr.Button("Next") | |
greet_btn.click(fn=update, | |
inputs=[name,picture_name,vote, start_idx, end_idx], | |
outputs=[picture,picture_name,message,description]) | |
demo.queue(max_size=4) | |
demo.launch(share=True) |