免费下载
夸克:https://pan.quark.cn/s/6dc567a85fd1
迅雷:https://pan.xunlei.com/s/VNxdG1EW72Z_Dlpg6rP0BFkzA1?pwd=mnzp#
来源github作者:lllyasviel
WebUI Forge
Stable Diffusion WebUI Forge 是一个基于Stable Diffusion WebUI(基于Gradio)的平台,可简化开发、优化资源管理并加快推理速度。
“Forge”这个名字的灵感来自于“Minecraft Forge”。该项目旨在成为 SD WebUI 的 Forge。
与原始 WebUI(针对 1024 像素的 SDXL 推理)相比,您可以期待以下加速:
如果您使用常见的 GPU(如 8GB vram),您可以预期推理速度(it/s)会提高约 30~45% ,GPU 内存峰值(在任务管理器中)将下降约 700MB 至 1.3GB,最大扩散分辨率(不会 OOM)将增加约 2 倍到 3 倍,最大扩散批量大小(不会 OOM)将增加约 4 倍到 6 倍。
如果您使用功能较弱的 GPU(例如 6GB vram),您可以预期推理速度(it/s)会提高约 60~75% ,GPU 内存峰值(在任务管理器中)将下降约 800MB 至 1.5GB(最大)扩散分辨率(不会 OOM)将增加约 3 倍,最大扩散批量大小(不会 OOM)将增加约 4 倍。
如果您使用像 4090 这样具有 24GB vram 的强大 GPU,您可以预期推理速度 (it/s) 会提高约 3~6%,GPU 内存峰值(在任务管理器中)将下降约 1GB 至 1.4GB,最大扩散分辨率(不会 OOM)将增加约 1.6 倍,最大扩散批量大小(不会 OOM)将增加约 2 倍。
如果使用 ControlNet for SDXL,最大 ControlNet 数量(不会 OOM)将增加约 2 倍,使用 SDXL+ControlNet 的速度将加快约 30~45%。
Forge 带来的另一个非常重要的变化是Unet Patcher。使用 Unet Patcher,Self-Attention Guidance、Kohya High Res Fix、FreeU、StyleAlign、Hypertile 等方法都可以在大约 100 行代码中实现。
感谢 Unet Patcher,许多新的东西现在都可以在 Forge 中实现并得到支持,包括 SVD、Z123、masked Ip-adapter、masked controlnet、photomaker 等。
无需再对 UNet 进行 Monkeypatch 并与其他扩展发生冲突!
Forge 还添加了一些采样器,包括但不限于 DDPM、DDPM Karras、DPM++ 2M Turbo、DPM++ 2M SDE Turbo、LCM Karras、Euler A Turbo 等(LCM 从 1.7.0 开始就已经在原始 webui 中)。
后缀命令
Forge 后端删除了所有与资源管理相关的 WebUI 代码并重新设计了所有内容。所有以前的 CMD 标志,如medvram, lowvram, medvram-sdxl, precision full, no half, no half vae, attention_xxx, upcast unet, ... 都被删除。添加这些标志不会导致错误,但它们现在不会执行任何操作。我们强烈鼓励 Forge 用户删除所有 cmd 标志,并让 Forge 决定如何加载模型。 没有任何 cmd 标志,
Forge 可以运行具有 4GB vram 的 SDXL 和具有 2GB vram 的 SD1.5。
不过你还是可以添加一些自己的标注:
--always-offload-from-vram(这个命令会让事情变得更慢,但风险更小)。此选项将让 Forge 始终从 VRAM 卸载模型。如果您同时使用多个软件并希望 Forge 使用更少的 VRAM 并为其他软件提供一些 VRAM,或者当您使用一些将与 Forge 竞争 vram 的旧扩展时,或者(非常罕见)当您遇到 OOM 时,这会很有用。
--cuda-malloc(这个命令会让作图变得更快,但风险更大)。这将要求 pytorch 使用cudaMallocAsync进行张量 malloc。在某些分析器上,我可以观察到毫秒级的性能提升,但大多数设备上的实际速度通常不会被注意到(每个图像大约或小于 0.1 秒)。这不能设置为默认值,因为许多用户报告了异步 malloc 会使程序崩溃的问题。用户需要自行承担启用此 cmd 标志的风险。
--cuda-stream(这个命令会让作图变得更快,但风险更大)。这将使用 pytorch CUDA 流(GPU 上的一种特殊类型的线程)来同时移动模型和计算张量。这几乎可以消除所有模型移动时间,并将具有小型 VRAM 的 30XX/40XX 设备(例如 RTX 4050 6GB、RTX 3060 笔记本电脑 6GB 等)上的 SDXL 速度加快约 15% 到 25%。然而,不幸的是,这不能设置为默认值,因为我观察到 2060 上纯黑色图像(Nan 输出)的可能性更高,而 1080 和 2060 上 OOM 的可能性更高。当分辨率很大时,计算时间有可能会增加单个注意力层比将整个模型转移到 GPU 的时间还要长。当这种情况发生时,下一个注意力层将会 OOM,因为 GPU 充满了整个模型,并且没有剩余空间可用于计算另一个注意力层。大多数开销检测方法不够强大,在旧设备上不可靠(在我的测试中)。用户需要自行承担启用此 cmd 标志的风险。
--pin-shared-memory(这个命令会让作图变得更快,但风险更大)。仅与 一起使用时有效--cuda-stream。卸载模型时,这会将模块卸载到共享 GPU 内存而不是系统 RAM。在一些具有小型 VRAM 的 30XX/40XX 设备(例如 RTX 4050 6GB、RTX 3060 笔记本电脑 6GB 等)上,我可以观察到 SDXL 的速度显着提升(至少 20%)。然而,不幸的是,这不能设置为默认值,因为共享 GPU 内存的 OOM 是一个比普通 GPU 内存 OOM 严重得多的问题。Pytorch 不提供任何可靠的方法来卸载或检测共享 GPU 内存。一旦共享GPU内存OOM,整个程序就会崩溃(在GTX 1060/1050/1066上用SDXL观察到),并且没有动态方法来防止崩溃或从崩溃中恢复。用户需要自行承担启用此 cmd 标志的风险。
如果你确实想使用 cmd 命令,你还可以使用以下命令控制 GPU:
极低 VRAM 情况:
--always-gpu --always-cpu
罕见的情况下:
--attention-split --attention-quad --attention-pytorch --disable-xformers --disable-attention-upcast
浮点类型:
--all-in-fp32 --all-in-fp16 --unet-in-bf16 --unet-in-fp16 --unet-in-fp8-e4m3fn --unet-in-fp8-e5m2 --vae-in-fp16 --vae-in-fp32 --vae-in-bf16 --clip-in-fp8-e4m3fn --clip-in-fp8-e5m2 --clip-in-fp16 --clip-in-fp32
稀有平台:
--directml --disable-ipex-hijack --pytorch-deterministic
再次强调,Forge 不建议你使用任何 cmd 标志,除非您非常确定确实需要这些命令。
安装基本环境
还是和Stable Diffusion WebUI一样需要安装Python、 Git,注意:需要将Python加入到环境变量,就是把下图的√打上,Git一只下一步直到安装结束(如果你以前装过Web UI可以忽略这步)
Python 3.10.6-32位+64位(点我下载)
Git(点我下载)
拉取ForgeUI
找到你安装的位置,鼠标右键终端中打开,如果你没有终端中打开,上面的地址栏输入powershell或者CMD,然后输入拉取命令(需要科学上网)
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
如果无法科学上网,请在页面右侧免费下载压缩包,如果你觉得太慢也可以解锁页面高速下载通道。
安装①
拉取成功后打开文件,找到“webui-user.bat”双击运行,首次安装会下载必要的环境、依赖等
首次安装他会下载一个1.99GB的基础模型,下载完后会出现一段跟webui一样的网址,然后自动弹出UI界面
安装成功后,你会看见还是英文界面,老规矩和webui一样下载一个“中文简体汉化包”解压后放入以下路径:
stable-diffusion-webui-forge-main\extensions
然后再找到上面的Settings(设置)-User interface(用户界面)最上面选择刚刚下载的中文汉化插件zh_CN,点击Apply settings(应用设置)-Reload Ul(重启UI)
UI界面已经成功汉化...
安装②
除了以上git拉取项目以外,官方也给我们提供了一件安装包下载(包含 git 和 python页面右侧下载)
下载解压后,先双击运行“update.bat”文件更新,接着再双击运行“run.bat”文件,第一次安装同样需要一些时间,耐心等待......
(注意: 如果不运行update.bat,你可能使用的是尚未修复潜在错误的版本)
模型共用
包里找到“webui-user.bat”右键编辑记事本/其他文本软件打开,需要把「@REM」都删掉,第一个不用删,然后把其他webui的根目录贴过来就行
注意:需要把目录中的「\」改为「/」,也就是把复制目录所带的默认的斜杠改为反斜杠。
Forge 默认打开的页面背景是白色的,如果想要黑色背景,那就在这段代码后面加入以下命令
set COMMANDLINE_ARGS= --theme dark
无所谓那就无所谓咯。
修改参数后记得保存,然后重启终端,之后我们就可以看见共用之前 WebUI 的模型了!
多说一嘴;Forge没有做插件共享,需要我们重新下载,两者可以兼容相同的插件,直接复制webui里面的插件到以下路径:
\webui_forge\webui\extensions
还有CN模型路径:
\stable-diffusion-webui\extensions\sd-webui-controlnet\models
运行
方式一:如果你通过git拉取安装的请运行“webui-user.bat”
方式二:如果你通过一件安装包(包含 git 和 python)的方式安装请运行“run.bat”
不难发现,跑了一张512*512的用时竟然才17.9秒,内存峰值也下降1.3G,换做是A1111的以前跑一张同尺寸的图片需要1分12秒!
这已经接近4倍的速度了,太吓人了,记住我这只是一个办公电脑3GB的显存啊!!!
传送
(如遇失效,请加v:xkd2310备注SD)