Stable Diffusion|安装过程中常见报错解决方法
[title-plane title=“前言”] 大家可能在安装部署Stable Diffusion WebUI过程中遇到各种各样的问题,本站已对所有问题进行汇总整理,而且教大家如何去查看报错。解决常见的Installing gfpgan、BLIP错误、显存不足等各种各样的花式问题,希望大家在看完此文章之后,都能够顺利解决各自所遇到的问题。 [/title-plane]
查看报错
在你安装时可能经常遇到各种各样的问题,但是对于一堆陌生的英文和各种各样的错误,大家可能经常无从下手,下面我将会教大家如何查看报错,就像这个截图这样:
C:\X65.NET\stable-diffusion-webui>webui-user.bat
venv “C:\X65.NET\stable-diffusion-webui\venv\Scripts\Python.exe”
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)]
Commit hash: 955df7751eef11bb7697e2d77f6b8a6226b21e13
Installing clip
Installing open_clip
Cloning Stable Diffusion into C:\X65.NET\stable-diffusion-webui\repositories\stable-diffusion-stability-ai…
Cloning Taming Transformers into C:\X65.NET\stable-diffusion-webui\repositories\taming-transformers…
Cloning K-diffusion into C:\X65.NET\stable-diffusion-webui\repositories\k-diffusion…
Cloning CodeFormer into C:\X65.NET\stable-diffusion-webui\repositories\CodeFormer…
Traceback (most recent call last):
File “C:\X65.NET\stable-diffusion-webui\launch.py”, line 351, in
prepare_environment()
File “C:\X65.NET\stable-diffusion-webui\launch.py”, line 287, in prepare_environment
git_clone(codeformer_repo, repo_dir(‘CodeFormer’), “CodeFormer”, codeformer_commit_hash)
File “C:\X65.NET\stable-diffusion-webui\launch.py”, line 151, in git_clone
run(f’”{git}” clone “{url}” “{dir}”‘, f”Cloning {name} into {dir}…”, f”Couldn’t clone {name}”)
File “C:\X65.NET\stable-diffusion-webui\launch.py”, line 97, in run
raise RuntimeError(message)
RuntimeError: Couldn’t clone CodeFormer.
Command: “git” clone “https://github.com/sczhou/CodeFormer.git” “C:\X65.NET\stable-diffusion-webui\repositories\CodeFormer”
Error code: 128
stdout:
stderr: Cloning into ‘C:\X65.NET\stable-diffusion-webui\repositories\CodeFormer’…
我们先看一下第一行内容(base) C:\X65.NET\stable-diffusion-webui>webui-user.bat
,前面的(base)是使用conda创建的虚拟环境名称,代表我们目前正在使用哪一个虚拟环境,很显然这与本站所提供的教程是不一致的,正常来说应该是(D:\X65.NET\stable-diffusion-webui\automatic)
,这一串路径就是虚拟环境的名称。
第5行和第6行分别是Installing clip
和Installing open_clip
,这是两个依赖库。这里没有报错,因为后面是是Cloning一些其它的依赖库。
第11行Traceback (most recent call last):
,这就是代表出现问题了,我们在出现问题的前一行中可以看到内容为Cloning CodeFormer into C:\X65.NET\stable-diffusion-webui\repositories\CodeFormer…
,这就是代表是一步出错了。
网络问题
本部分内容基本都是因为网络问题,大部分安装问题可以通过使用国内镜像源来解决。
例如:我们需要在执行安装requirements.txt文件时,我们可以尝试使用pip install -i https://mirrors.aliyun.com/pypi/simple/ -r D:/X65.NET/stable-diffusion-webui/requirements.txt
。
这段代码可以理解为不使用官方下载地址,而是国内阿里云的镜像地址下载相关依赖组件。如果阿里云的速度不行,各位同学也可以搜“PIP 国内镜像” 进行对应的替换,当然也可以寻找班主任协助。
PyPI错误
当我们遇到这类型的代码 就意味着PyPI的错误,note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
Encountered error while generating package metadata.
See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
虽然提示中是代码包的问题而非PIP的问题,而是PyPI元数据包有问题,但依然可以尝试执行pip cache purge
清理缓存。
组件安装失败
这类型问题是特别容易遇到的,包括了GFPGAN、xformers、open_clip、CodeFormer等核心组件,但凡失败一个就会导致SD失败,虽然最终都是导致无法安装SD但其过中原因还是存在差异,需要根据实际情况处理:组件不匹配
这个错误信息意味着在当前使用的Python环境下,没有找到匹配的opencv-contrib-python
版本。这可能是因为在PyPI上没有发布所需的版本或版本不兼容。请尝试使用pip search
命令来搜索可用的版本,并尝试安装兼容的版本。
按道理来说,如果根据教程来安装是不会出现这个问题的,尽量删除后从头来过,严格遵守每一步。
ERROR: Could not find a version that satisfies the requirement opencv-contrib-python (from versions: none)
ERROR: No matching distribution found for opencv-contrib-python
未找到pip
venv “D:\X65.NET\stable-diffusion-webui\venv\Scripts\Python.exe”
Python 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)]
Commit hash: 4c1ad743e3baf1246db0711aa0107debf036a12b
Installing torch and torchvision
D:\X65.NET\stable-diffusion-webui\venv\Scripts\python.exe: No module named pip
Traceback (most recent call last):
File “D:\X65.NET\stable-diffusion-webui\launch.py”, line 351, in
prepare_environment()
File “D:\X65.NET\stable-diffusion-webui\launch.py”, line 253, in prepare_environment
run(f’”{python}” -m {torch_command}’, “Installing torch and torchvision”, “Couldn’t install torch”, live=True)
File “D:\X65.NET\stable-diffusion-webui\launch.py”, line 81, in run
raise RuntimeError(f”””{errdesc or ‘Error running command’}.
RuntimeError: Couldn’t install torch.
Command: “D:\X65.NET\stable-diffusion-webui\venv\Scripts\python.exe” -m pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 –extra-index-url https://download.pytorch.org/whl/cu117
Error code: 1
根据错误日志,似乎在运行 launch.py
文件尝试安装 torch 和 torchvision。然而,这个命令在运行时出现了错误,错误信息是 No module named pip
。
这可能是因为 Python 环境中没有安装 pip,所以在运行 pip 命令时出现了问题。
你可以尝试先安装 pip,然后再运行 launch.py
。你可以使用以下命令来安装 pip:
python get-pip.py
这应该会在你的 Python 环境中安装 pip。然后你可以再次运行启动文件即可。
xformers
No module ‘xformers’. Proceeding without it.
首先这个情况的提示是影响SD的运行的,每次启动时显示如上内容,这并不算错误。可以手动更改为支持。这个库的主要作用是可以加速生成图像,但有时候安装过后速度反而下降,所以建议保持即可,不用理会。
PIP升级
[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: D:\X65.NET\stable-diffusion-webui\venv\Scripts\python.exe -m pip install –upgrade pip
PIP需要升级,解决方法很简单,直接复制执行你的电脑所给出的代码即可。例如我们复制run:
后面的全部,然后在CMD中执行即可,例如:
D:\X65.NET\stable-diffusion-webui\venv\Scripts\python.exe -m pip install –upgrade pip
注意力,每位同学的地址是存在差异的,不能一概而论,需要根据自己的目录来修改
显存不足
(base) D:\X65.NET\stable-diffusion-webui>webui-user.bat
venv “D:\X65.NET\stable-diffusion-webui\venv\Scripts\Python.exe”
Python 3.10.9 | packaged by Anaconda, Inc. | (main, Mar 8 2023, 10:42:25) [MSC v.1916 64 bit (AMD64)]
Commit hash: a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
Installing requirements for Web UI
Launching Web UI with arguments:
No module ‘xformers’. Proceeding without it.
Loading weights [ad2a33c361] from D:\X65.NET\stable-diffusion-webui\models\Stable-diffusion\v2-1_768-ema-pruned.ckptCreating model from config: D:\X65.NET\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\configs\stable-diffusion\v2-inference-v.yaml
LatentDiffusion: Running in v-prediction mode
DiffusionWrapper has 865.91 M params.
loading stable diffusion model: OutOfMemoryError
Traceback (most recent call last):
File “D:\X65.NET\stable-diffusion-webui\webui.py”, line 136, in initialize
modules.sd_models.load_model()
File “D:\X65.NET\stable-diffusion-webui\modules\sd_models.py”, line 441, in load_model
sd_model.to(shared.device)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\core\mixins\device_dtype_mixin.py”, line 113, in to
return super().to(*args, **kwargs)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 989, in to
return self._apply(convert)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 641, in _apply
module._apply(fn)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 641, in _apply
module._apply(fn)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 641, in _apply
module._apply(fn)
[Previous line repeated 4 more times]
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 664, in _apply
param_applied = fn(param)
File “D:\X65.NET\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py”, line 987, in convert
return t.to(device, dtype if t.is_floating_point() or t.is_complex() else None, non_blocking)
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 2.00 GiB total capacity; 1.66 GiB already allocated; 0 bytes free; 1.71 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
Stable diffusion model failed to load, exiting
请按任意键继续…
根据错误信息显示,Stable Diffusion 模型加载时遇到了 CUDA 显存不足的错误,简单点来说就是显卡不行,没有足够的显存空间分配给该模型。普遍而言 6G 的显卡现存能基本满足,更换显卡也能解决上述问题。但既然看到这篇文章,就给大家演示不换换显卡、不买新显卡的办法:开启低显存模式,开启低显存模式的方法如下。
修改配置
在stable-diffusion-webui文件夹下找到webui-user.bat,用文本或代码编辑器打开该文件夹,可以看到如下内容。
我们只需要修改set COMMANDLINE_ARGS=
部分即可,该部分内容是启动参数。如果你的显卡显存不足4G,可以在set COMMANDLINE_ARGS=
的后面添加参数–lowvram –always-batch-cond-uncond
之后保存即可,变更之后的文件内容如下。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=–lowvram –always-batch-cond-uncond
call webui.bat
如果你的显卡大于4G又小于6G显存,可以在set COMMANDLINE_ARGS=
的后面添加参数–precision full –no-half –medvram
之后保存即可,变更之后的文件内容如下。
@echo off set PYTHON= set GIT= set VENV_DIR= set COMMANDLINE_ARGS=–precision full –no-half –medvram call webui.bat