import gradio as gr import os from PIL import Image root = "/mnt/ve_share/generation/data/result/diffusions/vis/instructpix2pix/official" log_path = "/mnt/ve_share/generation/recordx.txt" def feedback(feedback_text, model, scene): output = "%s@%s@%s@%s" % (model, scene, feedback_text, length) with open(log_path, "a") as input_file: input_file.writelines(output + "\n") print(output) def get_file_paths(folder_path): file_paths = [] for root, dirs, files in os.walk(folder_path): for file in files: file_path = os.path.join(root, file) file_paths.append(file_path) return file_paths def generation_eval(): # print("request.headers: ", request.headers) models = [f for f in os.listdir(root) if os.path.isdir(os.path.join(root, f))] model_root = "%s/%s" % (root, models[-2]) scenes = [f for f in os.listdir(model_root) if os.path.isdir(os.path.join(model_root, f))] def clip_api(model, scene): # global feedback_btn # feedback_btn = gr.Radio.update(choices=['未知(反馈可持续优化LSU🤗)', '准确率低(<30%)', '准确率中(30% ~ 80%)', '准确率高(>80%)',], value='未知(反馈可持续优化LSU🤗)') ret_imgs = get_file_paths("%s/%s/%s" % (root, model, scene)) # print(ret_imgs) global length length = len(ret_imgs) ret_imgs = [Image.open(_) for _ in ret_imgs] return ret_imgs examples = [] # examples = [ # ["道路上工作的环卫工人", 20, VLP, "是"], # ["雨天打伞的人", 20, VLP, "是"], # ["救护车", 20, VLP, "是"], # ["校车", 20, VLP, "是"], # ["警车", 20, VLP, "是"], # ["喝水的人", 20, VLP, "是"], # ["后备箱打开", 20, VLP, "是"], # ] title = "

图像生成人工评测平台

" with gr.Blocks() as demo: gr.Markdown(title) # gr.Markdown(description) with gr.Row(): with gr.Column(scale=1): # with gr.Column(scale=2): # text = gr.Textbox(value="道路上工作的环卫工人", label="请填写文本", elem_id=0, interactive=True) # num = gr.components.Slider(minimum=0, maximum=200, step=1, value=30, label="返回图片数", elem_id=2) model = gr.components.Radio(label="模型选择", choices=models, value=models[0], elem_id=3) scene = gr.components.Radio(label="场景选择", choices=scenes, value=scenes[0], elem_id=4) # thumbnail = gr.components.Radio(label="是否返回缩略图", choices=["yes", "no"], value="yes", elem_id=4) btn = gr.Button("搜索") # feedback_btn = gr.Radio(label="检索结果反馈", # choices=['未知(反馈可持续优化LSU🤗)', '准确率低(<30%)', '准确率中(30% ~ 80%)', '准确率高(>80%)',], value='未知(反馈可持续优化LSU🤗)') with gr.Column(scale=100): out = gr.Gallery(label="检索结果为:").style(grid=6, height=200) feedback_btn = gr.Textbox(value="", label="请填写合格图像数", elem_id=0, interactive=True) btn2 = gr.Button("提交") # inputs = [text, num, model, thumbnail] inputs = [model, scene] btn.click(fn=clip_api, inputs=inputs, outputs=[out]) btn2.click(feedback, inputs=[feedback_btn, model, scene]) # feedback_btn.change(feedback, inputs=feedback_btn) gr.Examples(examples, inputs=inputs) return demo if __name__ == "__main__": with gr.TabbedInterface( [generation_eval()], ["图像生成人工评测"], ) as demo: demo.launch( enable_queue=True, share=True, )