Ubuntu部署Stable Diffusion WebUI应用

AI_Mind 2024-09-02 15:33:05 阅读 91

本文主要讲述Ubuntu部署Stable Diffusion WebUI应用的部署教程,及在部署过程中可能遇到的问题及解决方法。


1. 部署教程

本次安装教程使用的系统配置是:  

CPU :10核,内存:220GB

GPU :L20, 显存:48GB,1张

系统:Ubuntu 22.04.3 LTS,Python版本:3.10.13

①安装pytorch(安装教程使用的是torch2.2.0+cuda12.1)

pip install torch torchvision torchaudio

(生成安装pytorch命令相关链接:https://pytorch.org/)

②下载Stable Diffusion WebUI项目下载到你自己的目录下:

Git clone GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

若上述代码报错,则可手动将项目下载到本地,解压后上传至自己的目录

③安装程序需要的依赖

定位到下载的Stable Diffusion WebUI项目,然后依次执行如下命令:

pip install -r requirements_versions.txt

pip install -r requirements.txt

pip 安装包缓慢可换源解决,以下是一些国内的pip源:

阿里云:https://mirrors.aliyun.com/pypi/simple/中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban):http://pypi.douban.com/simple/清华大学:Simple Index

命令格式:pip install <packetname> -i <sourceUrl>

如:pip install modelscope -i

启动Stable Diffusion WebUI项目,运行如下命令:

python launch.py

注意:运行时程序也会安装很多依赖包,若安装依赖包安装缓慢或装不上,可以单独找出来pip install XXXX(包名)

项目中自带的模型路径:models/Stable-diffusion/v1-5-pruned-emaonly.safetensors。

若出现如下显示,说明程序启动成功了。

这步就可访问webUl了。。


2. 可能遇到的问题及解决方法

问题1listen开启后,安装扩展插件时报错:AssertionError: extension access disabled because of command line flags

解决1python launch.py --enable-insecure-extension-access 加入这个参数即可。

问题2:报错信息:

解决2这个错误表示在您的系统上缺少 libgthread-2.0.so.0 共享库文件。具体解决方法如下:

①检查库文件路径:确认 libgthread-2.0.so.0 库文件是否存在于系统中,并且在正确的路径上。您可以使用命令 locate libgthread-2.0.so.0 或者 find / -name libgthread-2.0.so.0 来查找库文件。

如果找到了库文件,请确保路径被正确配置;您可以通过设置 LD_LIBRARY_PATH 环境变量来指定库文件的搜索路径。例如,如果库文件位于 /usr/local/lib 目录下,您可以执行以下命令来设置环境变量:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

如果没找到库文件,您可以尝试使用以下命令安装 libglib2.0-0 包来获得该库文件:

sudo apt-get install libglib2.0-0

问题3git报错:SSL certificate problem:self signed certificate in certificate chain

解决3添加如下代码:

export GIT _SSL_NO_VERIFY=true

git config --global http.sslVerify "false"

问题4:一直在install requirements

解决4:具体执行代码在这里:stable-diffusion-webui-master\modules\launch_utils.py

打开requirements_versions.txt,用如下命令行依次去手动安装依赖包:

pip install XXXX(包名)

问题5:clip报错或下载缓慢

解决5可根据提示的下载地址自行手动下载,具体是运行如下代码:

git clone GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image

然后放入指定文件夹,放到如下地址:           

stable-diffusion-webui\stable-diffusion-webui\venv\Scripts

问题6报错:Could not load library libcudnn_cnn_infer.so.8. Error: libnvrtc.so: cannot open shared object file: No such file or directory

解决6运行如下命令:

cd yourenv/lib/python3.10/site-packages/torch/lib

ln -s libnvrtc-672ee683.so.11.2 libnvrtc.so

问题7报错:TypeError: 'NoneType' object is not subscriptable

解决7这个报错一般是在stable-diffusion软件成功安装并运行后出现的。一般是显卡的显存太小导致的,如果GPU显存比较小,建议不要画太大的图片,如果只有4GB的显存,又要画2000*3000的图片,肯定会报错的。将画面调小一点,例如调成512*512或者512*768对于4GB显存来说一般都没问题。

问题8:torch.cuda.OutOfMemoryError: CUDA out of memory.

解决8这个报错是典型的显存不足,例如4GB显存的显卡,画968*968分辨率图像是正常的,画968*1152的分辨率图像也是正常的,画968*1264图像就报上面的错误了。

问题9点“生成”按钮就退出程序,报错如下:

解决9修改webui-env.sh,将原来的内容修改为如下内容:

export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --no-half"

问题10报错:Torch is not able to use GPU

解决10修改webui-user.bat文件,将原来的内容修改为如下内容:

注意:这是使用CPU去渲染图片,会非常慢。

问题11报错:

解决11添加git的全局设置

问题12:使用自己训练的Stable Diffusion模型无法生成图片

解决12解决步骤如下:

①检查模型超参数:确保模型超参数设置合适。不合适的超参数可能导致模型无法生成图片。可以考虑调整学习率、批量大小等参数,以找到最适合当前任务的设置。

②改善训练数据集质量:如果训练数据集质量不足,也可能导致模型无法生成图片。可以尝试对数据进行预处理,如归一化、去噪等,以提高数据质量。同时,确保数据集的多样性,以使模型更好地泛化。

③检查模型架构:确保模型架构具有良好的数值稳定性和梯度流动性。数值稳定性对于避免在训练过程中出现NaN值至关重要,而梯度流动性则有助于更好地优化模型参数。

问题13:训练Stable Diffusion模型时NaNs Unet报错

解决13解决步骤如下:

①检查训练过程中的损失函数:如果在训练过程中发现损失函数溢出,这可能导致NaNs Unet报错。可以尝试降低学习率,以减少优化过程中的振荡,从而避免损失函数溢出。

②使用Batch Normalization等技术:Batch Normalization等技术可以帮助解决梯度消失/爆炸问题,从而避免NaNs Unet报错。它可以使每一层的梯度保持在一个相对稳定的范围内,从而避免梯度消失或爆炸。

③处理异常值:如果输入数据存在异常值,这些异常值可能导致计算过程中出现NaN值。可以使用数据标准化等预处理方法,将输入数据处理为正常范围内的值,从而避免NaNs Unet报错。

④调试和详细分析:解决这些问题需要进行详细的调试和分析。可以通过打印关键变量的值、逐步执行代码等方式,找到导致问题的具体原因。然后根据具体原因,尝试不同的解决方案,直到问题得到解决。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。