Xformers库(可选)
Xformers库提供了一种加速图像生成的可选方法。此增强功能仅适用于NVIDIA GPU,优化图像生成并减少VRAM使用。低于0.0.20的旧版本将产生非确定性结果。
重要通知-无需手动安装
截至2023年1月23日,Windows和Linux用户都不需要手动构建Xformers库。此更改是在WebUI从用户构建的车轮过渡到官方车轮时实现的。您可以在此PR中查看软件包升级和此更新的其他详细信息。
用法
如果您将Pascal、Turing、Ampere、Lovelace或Hopper卡与Python 3.10一起使用,只需使用--xformers标志启动存储库。兼容的车轮将自动安装。
Windows上构建xformers
- 安装VS Build Tools 2022,您只需要
Desktop development with C++
- 安装CUDA 11.3(后续版本未测试),选择自定义,您只需要以下内容(VS集成可能没有必要):
- 克隆xFormers repo,创建一个
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"
,如果打开,则set NVCC_FLAGS=-allow-unsupported-compiler``cmd
-
您最终可以构建xFormers,请注意,构建需要很长时间(可能为10-20分钟),它最初可能会抱怨一些错误,但它仍然应该正确编译。
可选提示:要进一步加快多核CPU Windows系统的速度,请安装ninja https://github.com/ninja-build/ninja。安装步骤:
- 从https://github.com/ninja-build/ninja/releases下载ninja-win.zip并解压缩
- 将ninja.exe放在C:\Windows下,或将提取的ninja.exe的完整路径添加到系统PATH中
- 在cmd中运行ninja-h,并验证您是否看到打印的帮助消息
- 运行以下命令以开始构建。它应该自动使用Ninja,不需要额外的配置。您应该会看到更高的CPU使用率(40%+)。
python setup.py build python setup.py bdist_wheel
这使配备AMD 5800X CPU的Windows PC的构建时间从1.5小时缩短到10分钟。Linux和MacOS也支持Ninja,但我没有这些操作系统可以测试,因此无法提供分步教程。
- 运行以下内容:
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
- 确保通过启动
stable-diffusion-webui
来激活xformers``--force-enable-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 .