2024年站点维护日志
2024年的站点维护更新日志
一次 stable-diffusion-webui 部署记录
项目地址:[bsgit user="AUTOMATIC1111"]stable-diffusion-webui[/bsgit]
stable-diffusion-webui 与 stable-diffusion 是俩东西,依照我的理解,stable-diffusion 是本体,是最主要的文生图大模型,是通过复杂的命令行进行操作,而 stable-diffusion-webui 则是使用Gradio框架让stable-diffusion可以通过网页可视化运行。
我在这里仅记录我所拥有的环境如何部署操作,可能不全面。我可以获得的环境:
1. 英伟达GPU(Telsa T4)
2. Ubuntu22操作系统(GPU: 1*T4, CPU: 8, 显存: 16GB, 内存: 45GB)
3. 国内网络环境
需要准备的软件:
1. 安装python 3.10.6版本,也可以python 3.10.X版本。
2. 确保机器有安装好相关的GPU驱动,GPU驱动加对应的CUDA软件,因为GPU驱动都是和CUDA同时安装使用的。驱动版本的话,最新的就行,因为驱动一般都是向下兼容的吧。
3. 安装git软件。
4. 一个stable-diffusion模型。
是的,必要的依赖项似乎只有这几个。
git clone
或下载项目文件到目录中
可以通过 nvidia-smi
命令查看 GPU 驱动版本和CUDA版本
不创建python虚拟环境安装,直接在项目根目录下执行 python launch.py
即可。执行 ./webui.sh
是创建python虚拟环境安装。
这里我选择的是不创建python虚拟环境安装,这会将各种python依赖直接安装到系统,十分差劲。而创建虚拟环境安装这个默认的安装方法呢,在国内的网络环境下十分费劲,因为要下载的东西全都访问不了。这里有个bug,理论上来讲使用python虚拟环境安装和使用纯净的系统安装应该是一样的,但在我这,不创建python虚拟环境反而是最快的,因为任何依赖似乎都不用再额外下载,可能与我所使用的这个系统镜像有关,需要注意。
可以看到,他会去git clone几个GitHub项目,这对于国内机器来说是可怕的。所以需要改一下库地址,我这使用gitee当作GitHub库镜像。这个库地址在这里:
把这几行替换为国内镜像就行了:
assets_repo = os.environ.get('ASSETS_REPO', "https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets.git")
stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://github.com/Stability-AI/stablediffusion.git")
stable_diffusion_xl_repo = os.environ.get('STABLE_DIFFUSION_XL_REPO', "https://github.com/Stability-AI/generative-models.git")
k_diffusion_repo = os.environ.get('K_DIFFUSION_REPO', 'https://github.com/crowsonkb/k-diffusion.git')
blip_repo = os.environ.get('BLIP_REPO', 'https://github.com/salesforce/BLIP.git')
之后再运行python launch.py
,emm。可以看到这次便没有了问题:
中途可能有个No module 'xformers'. Proceeding without it.
的提示,这个是个可选的模块,可以不用管。安装的话,就是 pip install xformer
后面还可以看到这个下载模型的提示,这个模型是SD自带的一个默认模型,据说效果拉跨,不用下载,国内也下载不下来。其实呢,这是因为程序没有检测到模型文件,所以启动了下载默认模型的动作,只要将随便的一个模型文件放到模型目录就不会触发这个下载。
将我们提前准备好的模型移动到模型目录 stable-diffusion-webui/models/Stable-diffusion/
再次执行python launch.py
,启动成功
随后啊,就能看到这俩讨厌的报错,模型也无法加载:
先说第一个报错的解决方法:
在项目根目录手动创建一个名叫openai的文件夹,openai文件夹里存放 CLIP-ViT-large-patch14 项目(git clone https://gitee.com/hf-models/clip-vit-large-patch14.git
)
具体介绍参考:
1. stable-diffusion-webui报OSError: Can‘t load tokenizer for ‘openai/clip-vit-large-patch14‘的正确解决方法-CSDN博客
2. [[Bug]: OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. (github.com)](https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/11507)
第二个错误的解决方法:
改 stable-diffusion-webui/modules/sd_models.py
文件send_model_to_cpu(m)
函数方法,里面加个 return
运行一次后可以删除return
具体介绍参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15595
我们再次执行 python launch.py
一切正常,画一个图试试
Ok,成功部署。
谢谢分享|´・ω・)ノ