本地化的SD-WEBUI(Stable-Diffution-WenUI)默认仅监听127.0.0.1的7860端口,有些大佬的整合包启动器似乎也加了网络相关的设置,具体没有体验。不过我现在通过修改程序源代码的一些功能可以实现监听所有地址,去除了之恶能使用本地环回地址访问的限制。
首先再程序根目录找到名为‘webui.py’的文件,在代码61行的位置,有以下一段代码,原始代码如下:
if cmd_opts.server_name: server_name = cmd_opts.server_name else: server_name = "0.0.0.0" if cmd_opts.listen else None
(相关资料图)
还有在222行附近的一段代码,如下:
api.launch(server_name="0.0.0.0" if cmd_opts.listen else "127.0.0.1", port=cmd_opts.port if cmd_opts.port else 7861)
修改这两段代码,第一段如下:
if cmd_opts.server_name: server_name = cmd_opts.server_nameelse: server_name = "0.0.0.0"
第二段如下:
api.launch(server_name=server_name if server_name else "0.0.0.0", port=cmd_opts.port if cmd_opts.port else 7861)
修改前建议备份原文件,两端代码分别在原位置替换或注释原有的代码,另起一行粘贴,注意位置可以顺延,但是代码缩进层级必须严格按照源代码规范,否则无法正常运行。
演示效果:
程序监听状态
此时可通过配置端口映射将本地端口转发到外网进行访问,也可尝试使用反向代理来使用。
关键词: