【gradio】使用queue()方法让gradio并行处理

之前是在云服务器部署stable-diffusion-webui脚本,学习AIGC,工作需要,从该脚本了解到pythongradio库,才知道原来python也有这么强大的webui功能。

在使用sd-webui的过程中发现,如果上一个任务处理不完,(例如Sadtalker或者deforum处理一次任务的时间较长),则会影响其他功能的使用,此时如果使用其他功能,或者有其他人在使用webui时,会出现In queue的提示,则必须得等上一个任务完成之后才能进行下一个任务,这样做如果是对云服务器来说是非常亏的(因为GPU的显存利用率非常低),此时我们可以使用queue()方法给webui创建队列。

queue方法允许用户通过创建一个队列来控制请求的处理速率,从而实现更好的控制。用户可以设置一次处理的请求数量,并向用户显示他们在队列中的位置。

示例代码:

with gr.Blocks() as demo:
    button = gr.Button(label="Generate Image")
    button.click(fn=image_generator, inputs=gr.Textbox(), outputs=gr.Image())
demo.queue(concurrency_count=3)
demo.launch()

参数介绍:

  • concurrency_count:并发处理请求的工作线程数,默认为1。增加此值将增加请求处理的速率,但也会增加队列的内存使用量。
  • status_update_rate:状态更新的频率,以秒为单位。默认为”auto”,表示队列将在每个作业完成时向所有客户端发送状态估计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值