局域网中访问 `stable-diffusion-webui`

895 阅读3分钟

要在局域网中访问 stable-diffusion-webui,你需要确保几个关键点,包括服务器配置、网络设置和防火墙配置。以下是排查和解决访问问题的步骤:

1. 确认 stable-diffusion-webui 正常运行

首先,确保 stable-diffusion-webui 在主机上运行并监听正确的端口。

1.1 启动 Web UI

如果你还没有启动 Web UI,使用以下命令启动:

python app.py --port 7860

确保应用启动时没有错误,并且正在监听你指定的端口(默认为 7860)。

1.2 确认监听地址

确保 Web UI 配置为监听所有网络接口(0.0.0.0),而不仅仅是本地地址(127.0.0.1)。如果你的 Web UI 启动命令中有 --host 参数,确保设置为 0.0.0.0

python app.py --host 0.0.0.0 --port 7860

2. 检查网络设置

2.1 确认 IP 地址

确保你知道运行 stable-diffusion-webui 的计算机的局域网 IP 地址。你可以使用 ipconfig(Windows)或 ifconfig(Linux/macOS)命令来获取。

# Windows
ipconfig

# Linux/macOS
ifconfig

记下显示的 IP 地址,例如 192.168.1.100

2.2 测试网络连通性

从另一台局域网计算机上测试是否能访问到 Web UI:

# 使用浏览器访问
http://192.168.1.100:7860

# 或者使用 curl 命令
curl http://192.168.1.100:7860

如果无法访问,检查以下内容:

3. 防火墙设置

3.1 检查防火墙规则

确保计算机的防火墙允许外部访问指定的端口(7860)。

  • Windows 防火墙

    1. 打开控制面板 -> 系统和安全 -> Windows Defender 防火墙。
    2. 选择“高级设置”。
    3. 创建一个新的入站规则,允许 TCP 端口 7860。
  • Linux 防火墙(例如 ufw

    sudo ufw allow 7860/tcp
    
  • macOS 防火墙

    1. 打开“系统偏好设置” -> “安全性与隐私” -> “防火墙”。
    2. 确保防火墙允许pythonapp.py通过,或者临时关闭防火墙以进行测试。

4. 路由和子网设置

确保所有设备在同一子网中,以便能够相互访问。如果你的网络使用了子网或 VLAN,可能需要额外配置以确保访问权限。

5. 检查 Web UI 配置

有时 stable-diffusion-webui 可能会有配置文件或启动参数来指定绑定地址和端口,确保这些配置设置正确。

6. 重启服务

如果你在做了上述更改后仍然无法访问,尝试重启 stable-diffusion-webui 和计算机,确保所有配置生效。

7. 诊断工具

使用网络诊断工具检查问题的根本原因:

  • Telnet:测试端口是否开放。

    telnet 192.168.1.100 7860
    
  • Nmap:扫描开放端口。

    nmap -p 7860 192.168.1.100
    

8. 记录和分析日志

查看 stable-diffusion-webui 产生的日志文件,寻找任何错误信息或警告,这可能有助于定位问题。

通过这些步骤,你可以排查和解决 stable-diffusion-webui 在局域网中访问的问题。如果问题依然存在,请确保每个步骤都仔细检查,或考虑重新检查 Web UI 的设置和网络配置。