Xformers库(可选)
Xformers库提供了一种可选的方法来加速图像生成。这种增强功能仅适用于NVIDIA GPU,优化图像生成并减少VRAM的使用。0.0.20以下的旧版本将产生非确定性的结果。
重要通知 - 无需手动安装
自2023年1月23日起,无论是Windows还是Linux用户都不需要手动构建Xformers库。当WebUI从用户构建的wheel转变为官方wheel时,这个改变已经实施。您可以在此PR中查看此更新的软件包升级和其他详细信息。
用法
如果您正在使用Pascal、Turing、Ampere、Lovelace或Hopper卡与Python 3.10,只需使用--xformers标志启动存储库即可。兼容的wheel将自动安装。
在Windows上构建xformers(由@duckness提供)
- 安装VS Build Tools 2022,您只需要
Desktop development with C++
- 安装CUDA 11.3(未测试更高版本),选择自定义,您只需要以下内容(VS集成可能是不必要的):
- 克隆xFormers仓库,创建一个
venv
并激活它
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
python -m venv venv
./venv/scripts/activate
- 为了避免获取CPU版本的问题,单独安装pyTorch:
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113
- 然后安装其余的依赖项:
pip install -r requirements.txt
pip install wheel
-
由于CUDA 11.3相对较旧,您需要强制在MS Build Tools 2022上启用它。如果使用
powershell
,请执行$env:NVCC_FLAGS = "-allow-unsupported-compiler"
;如果使用cmd
,请执行set NVCC_FLAGS=-allow-unsupported-compiler
。 -
最后,您可以构建xFormers,注意构建过程会花费很长时间(可能需要10-20分钟),它可能会最初报告一些错误,但仍然应该正确编译。
可选提示:为了进一步加快多核CPU Windows系统上的速度,请安装ninja https://github.com/ninja-build/ninja。 安装步骤: 1. 从https://github.com/ninja-build/ninja/releases下载ninja-win.zip并解压缩。 2. 将ninja.exe放置在C:\Windows下,或将提取的ninja.exe的完整路径添加到系统PATH中。 3. 在cmd中运行ninja -h,并验证是否打印了帮助消息。 4. 运行以下命令开始构建。它应该自动使用Ninja,无需额外配置。您应该看到显着更高的CPU使用率(40%+)。
python setup.py build python setup.py bdist_wheel
这将把一个在具有AMD 5800X CPU的Windows PC上的构建时间从1.5小时缩短到10分钟。 Ninja也支持Linux和MacOS,但我没有这些操作系统进行测试,因此无法提供逐步教程。
- 运行以下命令:
python setup.py build
python setup.py bdist_wheel
-
在
xformers
目录中,进入dist
文件夹,并将.whl
文件复制到stable-diffusion-webui
的基本目录中。 -
在
stable-diffusion-webui
目录中,安装.whl
文件,如果文件名不同,请在下面的命令中更改文件名:
./venv/scripts/activate
pip install xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl
- 确保通过使用
--force-enable-xformers
选项启动stable-diffusion-webui
时激活了xformers
。
在Linux上构建xformers(来自匿名用户)
- 进入webui目录
source ./venv/bin/activate
cd repositories
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .