免费下载

夸克: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)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。