stable-diffusion-webui-forge
基于SD WebUI的显存优化分叉版,让中端GPU也能流畅运行Flux/SDXL等大模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于SD WebUI的显存优化分叉版,让中端GPU也能流畅运行Flux/SDXL等大模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你有一台顶配游戏电脑,显存 12GB,跑 AI 画图却动不动就「显存不足」。Stable Diffusion WebUI Forge 就像给这台电脑换了一套液冷散热——它基于最流行的 Stable Diffusion WebUI(由 AUTOMATIC1111 开发的那个),专门针对显存管理和推理速度做了大量优化,成为 AI 绘画圈子里公认的「高配首选」分支。
Stable Diffusion WebUI(简称 SD WebUI)是 AI 绘画领域最受欢迎的开源工具,它让任何人都能通过浏览器界面方便地使用 Stable Diffusion 模型生成图像。然而随着 Flux、SDXL 等新一代模型出现,显存占用急剧攀升,原始 SD WebUI 在资源管理上的不足逐渐暴露——经常出现一张图跑一半就 OOM(内存溢出)崩溃的情况。
2023 年,GitHub 用户 @lllyasviel 决定 fork 原始 SD WebUI,开发一个专注于显存优化和推理加速的分叉版本。他将这个项目命名为「Forge」(锻造),灵感来源于 Minecraft Forge——后者是 Minecraft 最著名的模组平台,让玩家可以自由扩展游戏内容。Forge 的目标同样清晰:成为 SD WebUI 的「锻造台」,让开发者更容易扩展功能,让普通用户享受更流畅的生成体验。
目前 Forge 基于 SD-WebUI 1.10.1 版本开发,每 90 天同步一次上游更新。截至分析时,该项目已获得超过 12,600 颗星,fork 数超过 1,500,GitHub 活跃度远超同类项目。
Forge 的核心优化集中在**后端(backend/)**目录,这里的代码与原始 SD WebUI 有显著区别:
1. 显存管理系统(memory_management.py)
这是 Forge 最关键的技术改进之一。开发者从另一个知名 AI 绘画工具 ComfyUI 中借鉴了显存管理策略,并做了大量修复和增强。代码中定义了 VRAMState 枚举,根据可用显存大小动态决定模型层的存放位置(GPU/CPU),避免在加载大模型时一次性耗尽显存。比如,当你同时使用多个 LoRA 和 ControlNet 时,Forge 会自动将不常用的模型层临时卸载到内存,生成完成后再加载回来——这是原始 WebUI 不具备的能力。
2. 注意力机制重写(attention.py)
Stable Diffusion 的核心是扩散模型(Diffusion Model),而扩散模型中计算量最大的部分就是注意力机制(Attention)。Forge 在 backend/attention.py 中实现了对 xformers 库的集成,xformers 是 Meta 开源的注意力计算加速库,可以将注意力运算速度提升数倍。代码还包含了对 xformers 不同版本的兼容性检测(通过 BROKEN_XFORMERS 标志位),以应对某些版本中存在的 bug。
3. 自研神经网络层(backend/nn/)
Forge 在 backend/nn/ 目录下实现了完整的自定义神经网络层,包括:
unet.py:Forge 版 Unet 实现(原始 SD WebUI 从第三方库 ldm 继承,Forge 做了独立重写)vae.py:变分自编码器,用于图像编码和解码flux.py、chroma.py、mmditx.py、clip.py、t5.py:针对不同扩散模型架构的专用网络层cnet/:ControlNet 实现目录这些自研实现让 Forge 可以更精细地控制显存分配和计算路径。
Forge 完整继承了原始 SD WebUI 的全部功能,并通过 extensions-builtin/ 内置了大量扩展:
内置预处理器(Preprocessors):包括 OpenPose 姿态估计、Depth Map 深度图、MLSD 线条检测、Canny 边缘检测等 20+ 种图像分析工具,构成了 ControlNet 类工具的基础。
Forge Canvas:基于 Gradio 4 的画布工具,支持右键拖拽、宽高比叠加层、提示词拖拽排序等交互功能,还支持 Wacom 数位板的 128 级压感。这是原始 SD WebUI 所没有的原生画布功能。
FreeU 集成:在 extensions-builtin/sd_forge_freeu/ 中内置了 FreeU V2 算法,通过 FFT 频域滤波增强图像细节。用户可以在 UI 中直接调节 B1、B2、S1、S2 四个参数来控制增强效果。
LayerDiffuse 透明图像:这是 Forge 独有的功能,可以在生成图像时保留透明度通道(Alpha Channel),输出真正的 PNG 透明底图——对于设计工作流来说极为实用。
量化模型支持:原生支持 GGUF 格式和 BitsAndBytes 格式,可以在 4-bit/8-bit 量化下运行大模型,大幅降低显存需求。比如 Flux Dev 模型在 NF4 量化后,8GB 显存即可运行。
Forge 提供了一键安装包(7z 压缩包),包含预编译的 CUDA 12.1 + PyTorch 2.3.1 环境,用户只需下载、解压、运行 run.bat 即可。对于进阶用户,也可以通过 Git 克隆源码,使用 webui-user.sh 配置自定义参数。
硬件需求方面,Forge 建议 NVIDIA GPU(8GB+ 显存),最低配置 RTX 3060 级别即可流畅运行 SD 1.5 基础模型。运行 Flux 等新模型建议 12GB+ 显存。整个项目加上模型文件需要约 50GB+ SSD 存储空间。
启动后,Forge 在本地启动一个 Gradio Web 服务,用户通过浏览器访问 http://localhost:7860 即可操作界面。界面包含文生图(txt2img)、图生图(img2img)、高清放大(Extras)、LoRA/CheckPoint 管理等完整功能。
项目活跃度风险:Forge 定位为「SD WebUI 的分叉」,其命运与上游 AUTOMATIC1111 的发展紧密绑定。NEWS.md 中提到「原始 WebUI 现在几乎是静态的」,这既是 Forge 存在的前提,也意味着如果上游停止维护,Forge 可能需要承担更多主线开发工作。目前 Flux ControlNet 和 ControlNet Union 尚未实现,在 Roadmap 中标注为 pending。
OFT LoRA 损坏:部分特殊格式的 LoRA(如 OFT)当前存在兼容性问题,项目方已标注为「pending fix」。
文档相对简陋:Forge 的大量技术细节散落在 GitHub Discussion 中,缺乏集中的官方文档,新用户需要通过社区讨论来了解高级用法。
Stable Diffusion WebUI Forge 的出现,体现了开源 AI 工具生态的一个重要趋势:从「能用」到「好用」的工程化演进。SD WebUI 证明了 AI 绘画可以被大众接受,而 Forge 则在此基础上解决了资源门槛问题——让更多中端 GPU 用户也能流畅使用最新的扩散模型。
12,600+ 星的关注度表明,这个项目已经超越了单纯的个人实验,成为 AI 绘画工作流中不可忽视的基础设施。对于 AI 爱好者,Forge 提供了一个更友好的创作环境;对于 AI 开发者,Forge 的模块化架构是理解 AI 绘画引擎内部原理的优秀参考。
项目最新版本为 v2.0.1(基于 SD-WebUI 1.10.1),支持 Gradio 4,持续活跃维护中。