Stable Diffusion ControlNet v1.1遇SSL证书验证失败问题求助(Windows)
Windows下解决Stable Diffusion ControlNet SSL证书验证失败的方案
方案1:通过启动脚本跳过SSL验证
找到Stable Diffusion的启动脚本(如webui-user.bat),编辑文件并在set COMMANDLINE_ARGS=行后添加参数:
--no-verify-ssl
修改后示例:
set COMMANDLINE_ARGS=--no-verify-ssl
保存后重启Stable Diffusion即可,该参数会强制跳过所有SSL证书验证,适合你已本地放置模型、无需从网络拉取资源的场景。
方案2:手动补充根证书到certifi库
- 打开CMD执行以下命令,获取Python 3.10.6的certifi证书路径:
python -c "import certifi; print(certifi.where())"
输出路径类似C:\Users\你的用户名\AppData\Local\Programs\Python\Python310\Lib\site-packages\certifi\cacert.pem。
2. 导出系统根证书:
- 按下Win+R输入
mmc打开控制台,依次点击「文件」→「添加/删除管理单元」,选择「证书」→「添加」,选择「计算机账户」→「本地计算机」后确认。 - 展开「受信任的根证书颁发机构」→「证书」,右键选择常用根证书(如DigiCert、GlobalSign),点击「所有任务」→「导出」,选择Base64编码的X.509(.CER)格式保存。
- 用记事本打开导出的CER文件,将内容复制到上述
cacert.pem文件末尾并保存,随后重启Stable Diffusion或删除venv重新生成虚拟环境。
方案3:修改Python全局SSL验证规则
找到Stable Diffusion虚拟环境中的ssl.py文件(路径如venv\Lib\ssl.py),找到create_default_context函数,在返回context前添加两行代码:
context.check_hostname = False context.verify_mode = ssl.CERT_NONE
注意:此方法属于全局修改,仅建议紧急情况下使用
方案4:排查代理/防火墙干扰
- 关闭所有第三方代理工具(如Clash、VPN)及系统自带代理,重启Stable Diffusion尝试。
- 暂时关闭Windows防火墙,测试是否是防火墙拦截了网络请求导致验证失败。
内容的提问来源于stack exchange,提问作者alpharoad
相关产品推荐
相关产品推荐

