当前位置:AIGC资讯 > AIGC > 正文

Stable Diffusion 开启后切换VPN无法使用问题

在使用Stable Diffusion时,经常需要切换VPN进行环境切换,科学上网。每次切换后Stable Diffusion也都会出现 无法使用的问题,笨办法就是每次重新启动……

这种情况主要是Stable Diffusion Webui 采用的是开源的 Gradio 框架,其中部分请求使用了websockets 链接进行服务端交互,每次网络环境切换 websockets 就会中断,所以都会出现此问题。解决办法也是相当的简单。官方提供了命令行参数 --no-gradio-queue 进行配置,它可以关闭websockets 模式。

Disables gradio queue; causes the webpage to use http requests instead of websockets; was the defau

lt in earlier versions.

 在webui-user 文件中设置此参数即可。

set COMMANDLINE_ARGS = --no-gradio-queue 

 此问题也同样适应于解决通过Web服务器进行前端反向代理时出现的websockets 链接不通的问题。

在使用Nginx 等Web服务器进行代理时,正常反向代理配置中未包括websockets链接支持,一般在nginx配置文件中会增加如下配置:

 location / {
            root   html;
            index  index.html index.htm;
			proxy_pass   http://127.0.0.1:7860;
			
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
        }

通过在 proxy_set_header 参数配置中升级协议支持 websockets代理,但使用--no-gradio-queue参数可以将Stable Diffusion 转为全http支持,反向代理时可以不再进行websockets相关配置。

更新时间 2024-03-26