实现了一个功能,上传一个图像后自动调用函数做算法处理,但是网页如果静止,等待的这段时间会令人怀疑,是不是真的在处理,处理的时长是多少?
首先查了下进度条的实现,有个Progress的函数,但是没用:https://www.gradio.app/docs/progress
别人实现,是这样的:
https://www.cnblogs.com/tian777/p/17371619.html
怀疑我这不显示,可能是gr.Image,图上上传后把进度条挡住了?对gradio还不是很熟悉,多次尝试无果后,问gpt,它提到用
progress_label = gr.components.Label() # 创建一个Label组件用于显示进度
虽然他给我的代码是有错的,但通过gr.components这个方法,我看到了进度记时,于是查了下官方教程:https://www.gradio.app/docs/components
写得不详细,不过,就先在Image前加上components试试吧
file_output = gr.components.Image(label = '上传图片', height = 500, type="filepath")
随后仍是用.change()实现自己的函数,虽然最后上传图像部分没有延迟展示,但函数里有个需要更新状态的框,有延迟显示
行吧,实现到这种程度就够了。
参考:
def process_input(filepath):
eva = gr.update(value=[])
return eva
with gr.Blocks() as demo:
with gr.Row():
with gr.Column(scale=0.5):
with gr.Row():
file_output = gr.components.Image(label = '上传图片', height = 500, type="filepath")
with gr.Tab(label="Evaluate"):
with gr.Row():
eva = gr.CheckboxGroup(["选项1","选项2"], label="评价结果")
eva_button = gr.Button("提交评价结果")
file_output.change(
process_input,
inputs=[file_output],
outputs=[eva]
)
if __name__ == "__main__":
demo.title = "demo"
demo.launch(server_name="0.0.0.0",server_port=8890,debug=True,share=False)