Stable Diffusion中如何用GPU而不是CPU,加速出图
Stable Diffusion中如何用GPU而不是CPU,加速出图
Stable Diffusion是AIGC内容创作中不可或缺的工具。但是,在使用过程中,很多用户会遇到启动时出现"RuntimeError: Torch is not able to use GPU"的错误。针对这个问题,很多(尤其是国内的)文章推荐在webui-user.bat中新增两个参数:--skip-torch-cuda-test
和--no-half
。完整的配置如下:
set COMMANDLINE_ARGS=--api --api-log --listen --port 9800 --skip-torch-cuda-test --no-half --enable-insecure-extension-access
然而,这种做法并不是真正的解决方案,而是一种错误的妥协。解释一下这两个参数的作用:
--skip-torch-cuda-test
:启动环节跳过CUDA检测,这样就不会看到错误提示。--no-half
:启动时不使用Half精度。这里的Half指的是浮点数的一半,Double是全精度,Float就是Half精度。
实际上,配置--no-half
意味着使用CPU,而不配置则使用GPU。根据作者的实际对比测试,使用GPU比使用CPU快4倍左右。因此,除非没有NVIDIA系列的显卡,否则使用GPU是必须的,这可以大大节约生成时间。
如何修复这个问题?
首先确保你有NVIDIA的显卡,并且已经安装了正确的驱动。接下来需要安装对应的CUDA。以作者的环境为例,安装CUDA 11.8版本。如果在安装过程中遇到奇怪的问题,可以选择自定义安装,只勾选CUDA相关组件。安装完成后,执行
nvcc -V
查看具体信息和版本。如果执行有问题,可能是全局环境变量没有正确添加CUDA的目录。使用
pip list
查看已安装的PyTorch情况。如果当前版本不支持GPU,需要卸载它。支持GPU的PyTorch版本会在输出中显示CUDA版本信息,例如CUDA 11.8。如果没有这些信息,说明是CPU版本。前往PyTorch官网找到适合你的版本:https://download.pytorch.org/whl/torch_stable.html。具体参考作者的另一篇文章:https://www.shxcj.com/archives/9238。选择与你的CUDA和Python版本相匹配的PyTorch版本。例如,作者使用的是CUDA 11.8、Python 3.11和PyTorch 2.2.0,对应的包是
torch-2.2.0+cu118-cp311-cp311-win_amd64
。如果你使用的是CUDA 11.6,对应的PyTorch版本只能是1.13.0。完成PyTorch和CUDA的安装后,清除当前Stable Diffusion的venv目录,然后重新运行。如果配置正确,在启动过程中会输出CUDA相关的字样。