此教程参考了 crosstyan 的 FAQ
WebUI 的官方代码仓库地址为 https://github.com/AUTOMATIC1111/stable-diffusion-webui
最低需要显存 2 GB,建议显存不少于 4 GB。
在开始前,打开 CMD,输入
查看机器的英伟达显卡是否正常运作。
这里是 9 月份效果(现在快了不少)
TIP
推荐有能力的同学阅读一下 官方 Wiki 的内容。
注意!运行 AI 项目有很大的硬盘需求,请做好心理准备。总计依赖大小约几 G,在中国网络环境下可能很慢!
对于 Windows,所有依赖均默认安装在 C 盘,请确保空间充足。
不推荐使用 整合包,会导致升级困难。
WSL 不可以迁移,如果 C 盘不够,寄!
在 Windows 上的安装流程如下。
安装 Python 3.10,安装时须选中 Add Python to PATH
部分整合包自带 Python 运行时。
切换国内下载镜像
如果你在安装依赖时遇到了网络问题,需要按照 设置 Pip 镜像 中所述步骤切换至国内镜像。
在 Git-SCM 下载 Git 安装包并安装。
打开命令提示符,并切换到合适的存放位置。
在命令框中运行
拉取仓库,这里如果如果失败请设置代理。
使用 Git 下载的源代码,可以直接使用 git pull 更新代码。推荐经常更新,并关注社区讨论。
如果是整合或者其他,请向上游(谁分发的)索取。
TIP
关于如何设置 Git 代理,见 Git 设置代理。
将 NAI 4G、 7G 或 其他模型的 model.ckpt 适当改名后放置在 models/Stable-diffusion 目录中,即可在页面顶部选择模型。
(可选)将 GFPGANv1.4.pth 放在基本目录中,旁边是 webui.py
先确认你的显卡是可用的(见上文),然后双击运行 webui-user.bat 。脚本会自动下载依赖(一般需要 22 分钟,默认安装在 C 盘 Python 目录下,下载的资源为 1.98GB,解压后大小 2GB 以上)并输出 启动网页界面 的地址。
在此期间你可以打开资源管理器,关注网络速度。在没有完成下载之前,脚本不会继续输出任何提示。(等了两小时?可以试试挂代理)
大约 30 分钟后安装完毕,程序会输出一个类似 http://127.0.0.1:7860/ 的地址,点开即可(注意是 http,且不指定端口的话可能会变动)。
运行需要模型!
如果你是瞄准二次元来的,请想办法搞到某个模型咯,至于模型选哪个,请看下一章节。如果你是整合包,也可以移植整合包其中的 models 文件夹。(甚至你可以直接去下载拆分整合包....?但是直接使用整合包迟早要走自己安装的流程,因为不能更新)
如果对其他模型感兴趣,(没错就是艺术,大概是梵高那类的)这里提供一个模型网站 Stable Diffusion Models,可以通过下载 2.Stable Diffusion v1.4 [4af45990] [7460a6fa] [06c50424] 这一个模型来运行 Stable Diffusion 的原始模型
使用
拉取代码到合适位置。
将整合包中所有 Bat 文件,与 models、outputs 以及 embeddings 文件夹复制到新目录下。自行处理冲突。
在新目录下,尝试运行原来的 Bat,如果报错,就根据提示排查是不是 NotFound 什么依赖,或者根据下面的命令说明修改 Bat 文件。
其他方法见 懒人包改 Git 仓库进行更新
安装依赖:
加载脚本:
完毕。
INFO
如果可以,尽量使用 miniconda (anaconda 特别巨大....),创建一个 Python 3.10.6 的虚拟环境。
使用 Git 下载的源代码,可以直接使用 git pull 更新代码。推荐经常更新,并关注社区讨论。
如果是整合或者其他,请向上游(谁分发的)索取。
首先运行前必须加载一个任意模型。界面顶部的菜单可用于选择模型。
如果你运行报错,请读最后的自救提示。
不提供 NV 模型,你可以去 关于/底部图标 页面找到 中文社区 的频道,里面应该有你想要的哈。
Win 用户编辑并运行 webui.bat
Linux 用户可运行 launch.py 或 webui.py ,前者会自动安装(新)环境。
咳咳,这里使用的是某个模型,示例仅仅适用于 那个模型。
令牌请读后面的内容,这里给出一个实例来供你完成测试。
第一个输入框里写关于期望结果的词汇
可以使用 颜文字 和 emoji,使用 () 来增强权重,具体规则见后
第二个输入框书写不希望出现的结果
指定需要过滤什么标签
选定分辨率参数。分辨率越大,生成耗时越长、耗费显存越大。通常不建议超过 1280 x 1280。
生成完成后的参数描述信息类似如下:
通过一样的参数和 Seed (-1 就是随机),可以生产一样的图像,这用于微调!
还有资源占用信息:
不想来回设置 Clip?
添加 sd_hypernetwork 和 CLIP_stop_at_last_layers 到设置页面的 Quicksettings list,保存并重新启动 webui,你就可以在 UI 顶部看到相应的快速切换选项啦~
当前,语言文件有两种分发途径:
通过插件机制分发。插件 localizations 目录中的语言文件将应用到系统中。同名语言文件会 互相覆盖。
作为单个 .json 文件提供。 将此文件放入 localizations 目录并在设置中选择即可。
转到设置并单击 Download localization template 底部的按钮,下载一个可以编辑的本地化模板。
通过添加 --share 开关即可使用 Gradio 托管的转发服务。
你会得到一个 https://xxx.gradio.app 链接,这是在协作中使用该程序的预期方式。
RCE 警告
使用 --share 公开实例时,请务必设置账号密码身份验证:--gradio-auth username:password (可选择提供多组用户名和密码,以逗号分隔)
示例:
使用该例子将会创建两个用户,一个是账号密码为 admin 的用户,另外一个是账号为 user1,密码为 user_password 的用户
如果攻击者可以访问 UI,他们可能能够远程运行 python 脚本。
10/30 社区报告:有人在扫描公开的 WebUI
11/1 社区反映:共享链接可能会导致安全风险,攻击者可以访问系统上的所有文件。
可以通过添加 --freeze-settings 启动参数来锁定设置,防止他人编辑。
参数 --listen 使服务器监听外部网络连接。
这将允许本地网络上的其他计算机访问 UI,如果配置端口转发,公网上的计算机也可以访问(当然你得有公网)。
注意,监听 0.0.0.0 意味着对本地网卡所有 IPv4 监听,局域网访问请使用对应 IP 地址。
使用 --listen 会启用默认的安全保护设置,插件功能会失效,需要使用 --enable-insecure-extension-access 开启。
参数 --port xxxx 使服务器监听特定端口。
对于 Linux 系统,如需监听低于 1024 的任何端口,程序需要以 root 权限运行或授权 CAP_NET_BIND_SERVICE 能力,因此建议使用高于 1024 的端口。
默认端口为 7860。
进一步熟悉这个程序,你会发现可以通过修改 Bat 运行脚本添加参数!具体参数列表请读下文。
生成时报错?请读 配置与调试 章节。
首先,你可以运行 python webui.py --help 查看所有命令参数,或者在源码文件中读到它们。
TIP
自定义程序运行方式的推荐方法是编辑 webui-user.bat (Windows) 和 webui-user.sh (Linux)
set PYTHON (Windows) 或 export PYTHON (Linux) 允许设置自定义 Python 路径。
set VENV_DIR (Windows) 或 export VENV_DIR (Linux) 可允许您选择虚拟环境的目录。默认为 venv。特殊值 - 在不创建虚拟环境的情况下运行脚本。
set COMMANDLINE_ARGS (Windows) 或 export COMMANDLINE_ARGS (Linux) 可设置运行 webui.py 的命令行参数。
示例中,设置使用模型 a.ckpt 而不是 model.ckpt
选择要使用的默认 GPU --device-id 0,来代替旧版本 (2022/10 之前) 的 CUDA_VISIBLE_DEVICES=0,可以选择第二个 GPU 允许同时运行两个实例,从而能够以更简洁的方式简单地选择设备。
查看 GPU 序号,可以使用
来自 官方 Wiki
| 命令行参数 | 解释 |
|---|---|
| --xformers | 使用xformers库。极大地改善了内存消耗和速度。Windows 版本安装由C43H66N12O12S2 维护的二进制文件 |
| --force-enable-xformers | 无论程序是否认为您可以运行它,都启用 xformers。不要报告运行时错误。 |
| --opt-split-attention | Cross attention layer optimization 优化显着减少了内存使用,几乎没有成本(一些报告改进了性能)。黑魔法。默认情况下torch.cuda,包括 NVIDIA 和 AMD 卡。(新版默认开启) |
| --disable-opt-split-attention | 禁用上述优化 |
| --opt-split-attention-v1 | 使用上述优化的旧版本,它不会占用大量内存(它将使用更少的 VRAM,但会限制您可以制作的最大图片大小)。 |
| --medvram | 通过将稳定扩散模型分为三部分,使其消耗更少的 VRAM,即 cond(用于将文本转换为数字表示)、first_stage(用于将图片转换为潜在空间并返回)和 unet(用于潜在空间的实际去噪),并使其始终只有一个在 VRAM 中,将其他部分发送到 CPU RAM。降低性能,但只会降低一点-除非启用实时预览。 |
| --lowvram | 对上面更彻底的优化,将 unet 拆分成多个模块,VRAM 中只保留一个模块,破坏性能 |
| *do-not-batch-cond-uncond | 防止在采样过程中对正面和负面提示进行批处理,这基本上可以让您以 0.5 批量大小运行,从而节省大量内存。降低性能。不是命令行选项,而是使用--medvramor 隐式启用的优化--lowvram。 |
| --always-batch-cond-uncond | 禁用上述优化。只有与--medvram或--lowvram一起使用才有意义 |
| --opt-channelslast | 更改 torch 内存类型,以稳定扩散到最后一个通道,效果没有仔细研究。 |
讨论 中有人认为,通过在 Windows 设置上禁用硬件加速 GPU 调度,WebUI 性能提高了大约 10-50%
添加 --theme 参数来切换主题。
见 API。
这里是一些关于设置不当引发的异常。
翻译整理自 Voldy 的傻瓜教程
路径不允许含有空格,确保您的文件夹路径没有空格。该程序经过测试可在 Python 3.10.6 上运行,低版本 Python 可能会发生错误。
重新安装,请删除目录:venv, repositories。
如果安装过程中出现:
形如 Connection timed out 字样
形如 Connection was Reset 字样
下载速度极慢
请设置代理,或者使用 VPN。
如果你本地开启了代理,可以使用如下命令设置:
使用结束后建议及时恢复,以免产生其他问题。
如果你不会设置代理,可以使用以下命令拉取镜像:
或
打开 CMD 命令行(Win+R 运行 cmd),输入 python 回车,检查是否正确安装 Python 环境。如果能成功进入 Python,按下 Ctrl+Z (或输入 exit() 回车) 退出。
然后输入以下命令设置镜像。
设镜像或者挂代理,依赖项 >2GB,请做好准备,而且对于 Windows,依赖默认安装在 C 盘!
确保你拥有可以运行的最新 CUDA 工具包和 GPU 驱动程序.
在具有少量显存 (<=4GB) 的视频卡上运行时,可能会出现内存不足错误。可以通过命令行参数启用各种优化,牺牲一些速度来支持使用更少的 VRAM:
如果出现显存不足错误,请首先尝试 --medvram;
如果仍然出现显存不足错误,请改用 --medvram --always-batch-cond-uncond;
如果依旧出现显存不足错误,请尝试 --lowvram。注意这会让运行速度大幅降低。
如果还不行....
建议你升级设备。
内存不足。
考虑关闭软件、增加虚拟内存容量,或增加内存条。
如果你的 Python 不在 PATH 中,可在文件夹中创建或修改 webui.settings.bat 添加行 set PYTHON=<python 路径> 来说明 Python 可执行文件的完整路径(请看下面的参数说明!)
先检查端口冲突,有没有和什么软件冲突。
这个错误有可能是 Python38 的 asyncio 库对 Windows 的兼容性问题。
如果曾经使用过 WSL,不妨试试
如果使用过游戏加速器,可尝试用 CMD 管理员身份运行 netsh winsock reset。
如果仍然无法启动,请尝试 更换一个端口。
如果你使用 conda 可以不使用一键脚本,自己运行 launch 安装依赖。
因为仓库给出的一键安装脚本会创建虚拟环境,然后启动 launch.py。
在运行时,一键安装程序会创建一个 python 虚拟环境,因此如果你在安装之前安装了一个模块,那么任何已安装的模块都不会影响你
如果需要防止创建虚拟环境而使用系统 python,编辑 webui.bat 替换 set VENV_DIR=venv为set VENV_DIR=
Windows 7 上运行很可能会报错: api-ms-win-core-path-l1-1-0.dll is missing,这是因为许多程序需要新版本的 Windows 的系统文件。
如果没有出现该错误,不需要执行下面的操作。
这些文件已经被移植来与 Windows 7 兼容,并且可以在 这里 下载。它的 GitHub 页面
解压缩并将 x86.dll 复制到 C:\Windows\SysWOW64 ,将 x64.dll 复制到 C:\Windows\System32 并重启。
在多数情况下,这代表显存溢出,也有可能是 GPU 硬件问题。
据说使用 DeepDanbooru 的话会有这个提示,可以尝试重新启动 或 安装 CPU 版本的 DeepDanbooru.
代理设置问题,检查全局变量有无协议头(需要有),如果是 Clash,开启 TUN 模式即可。
如果没开代理,尝试更新到最新版本。
见 #491。
在我的电脑 -> 右键 -> 属性 -> 环境变量中,删除代理环境变量(小心操作)
代理环境变量形如:
等等。
见 #2684。