2024-01-11 部署Stable Diffusion遇挫记


点击 <C 语言编程核心突破> 快速C语言入门


部署Stable Diffusion遇挫记



create by Stable Diffusion; prompt: fire water llama

前言

要解决问题: 由于近期的努力, 已经实现语音转文字模型, 通用chat迷你大模型的本地部署与使用自由, 貌似还缺了一个图像, 别无选择 stable diffusion

想到的思路: stable-diffusion + Web UI, 既然已经有人搭了台子, 咱们唱戏就完了.

其它的补充: 这是我部署AI模型最不顺利的一次, 因为笑脸被墙了, 导致很多问题.


一、一如既往的GitHub部署

https://github.com/AUTOMATIC1111/stable-diffusion-webui 这是网址, 如果GitHub不能登, 就不要看下面的了.

直接下载最近的Releases, 按照说明, Windows直接运行stable-diffusion-webui/webui.bat, 但我的Windows一如既往的抛出数百行错误提示, 于是没有纠结, 转战Linux.

Linux玩法和Windows不一样, 需要先安装一些基本依赖:

bash 复制代码
# Debian-based:
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
# Red Hat-based:
sudo dnf install wget git python3 gperftools-libs libglvnd-glx 
# openSUSE-based:
sudo zypper install wget git python3 libtcmalloc4 libglvnd
# Arch-based:
sudo pacman -S wget git python3

这个很简单, 然后下载并运行webui.sh文件(只需一个文件, 它会帮你全自动部署), 这个刚开始是没有权限, 需要运行一个命令:

bash 复制代码
sudo chmod +777 目录/webui.sh

详见https://blog.csdn.net/qq_47346664/article/details/120132193

但是我遇到了第一个问题, 重新下载torch, 这个问题有点大, 因为我部署whisper的时候下过6g的东西, 里面有这玩意儿, 它要更改版本, 可能其它的模型调用就会有问题,

于是我决定手动下载相关依赖, 根据依赖列表, 事实证明, 这浪费了大量的时间, 并且导致重复下载以及反复更新, 听我一句话, 对于这种版本冲突, 没辙, 老老实实的按照人家给你的方案装.

我的python下载的包, 不知为啥, 没有在PATH里, 所以, 可能会产生重复安装, 于是给包所在的lib文件夹, 添加到PATH中, 详见
https://blog.csdn.net/ymtianyu/article/details/105973953

之后的历程就是各种错误, 比如安装 PyTorch-Lightning 可能会重装torch(https://blog.csdn.net/qq_60592939/article/details/129177520),

安装tb-lightly失败, 需要更换pip源(https://blog.csdn.net/weixin_46455141/article/details/131353266) ,

安装xformers可能也有坑(https://blog.csdn.net/GranteZhou/article/details/131808110),

我刚开始没装, 后来老报错, 最后用用户启动命令行webui-user.sh文件加入如下命令自动安装,

另外的条目是解决显卡内存不足导致崩溃的, 显存小于8g的估计都要用上, 这是在官网查各种issue得到的精华, 没这条语句, 估计低端显卡都要崩, 而且根本无从查起.

bash 复制代码
export COMMANDLINE_ARGS="--medvram --xformers --no-gradio-queue"

在趟过了这些坑之后, 我们下载模型, 对, 依赖小10个G, 模型还要至少4个G, 网络不行, 还是绷不住.

v1-5-pruned-emaonly.safetensors, 这是基础模型, 当你完成部署后, 让你进入网页http://127.0.0.1:7860/ 但很快报错, 因为没有模型文件.

笑脸已经被墙了, 会登梯子的, 自己下, 不会登梯子的, 一如既往的阿里福音书:
https://www.modelscope.cn/home 自己搜索, 下载, 一定是我给的这个模型, 或类似的, 不是微调的那种.

下载到/stable-diffusion-webui/models/Stable-diffusion 路径下面.

以为这就完事了么, too young, 还有最后一个坑:

Can't load tokenizer for 'openai/clip-vit-large-patch14', 这个是openai的分词器, 但是是在笑脸, 所以被墙了, 你会发现, 网页可以进, 但是就是一会就蹦,

为什么呢, 因为没上面这个, 模型加载完, 没法用, 直接崩溃.

能上笑脸的自然不会出现这个问题, 不能上的, 去阿里福音书搜, 记住不需要下载模型文件, 但要把所有的json txt文件下载下来, 放入一个文件夹clip-vit-large-patch14,

然后, 搜两个文件mudules.py一样的名字, 不同的文件, 在文件中搜索openai, 找到 openai/clip-vit-large-patch14 的那一行, 把它换成你自己下载文件的那个文件夹的绝对路径, 每个文件两处, 一共四处, 详见(https://blog.csdn.net/qq_39352483/article/details/133883932)

之后, 如果你和我一样, 就应该可以愉快的玩耍了.

注意内存, 16g可称乞丐版了, 稍微开点应用, 就蹦.

二、使用的感受

首先, 比较慢, 这不是模型问题, 是我的贫穷问题, 我的错.

其次, 同样的prompt, 每次不一样, 更改尺寸也不一样, 风格也会变,

最后, 真的, 对内存小的设备及其不友好, 显存内存不足都是崩溃的主要原因.


总结

愉快的玩耍是以足够的硬件为基础的, 目前没有类似llama.cpp的穷人解决方案, 至少我没看到, 知道的可以告知一下.


点击 <C 语言编程核心突破> 快速C语言入门


相关推荐
Niuguangshuo9 小时前
DALL-E 3:如何通过重构“文本描述“革新图像生成
人工智能·深度学习·计算机视觉·stable diffusion·重构·transformer
Niuguangshuo19 小时前
深入解析 Stable Diffusion XL(SDXL):改进潜在扩散模型,高分辨率合成突破
stable diffusion
Niuguangshuo19 小时前
深入解析Stable Diffusion基石——潜在扩散模型(LDMs)
人工智能·计算机视觉·stable diffusion
迈火19 小时前
SD - Latent - Interposer:解锁Stable Diffusion潜在空间的创意工具
人工智能·gpt·计算机视觉·stable diffusion·aigc·语音识别·midjourney
迈火8 天前
Facerestore CF (Code Former):ComfyUI人脸修复的卓越解决方案
人工智能·gpt·计算机视觉·stable diffusion·aigc·语音识别·midjourney
重启编程之路9 天前
Stable Diffusion 参数记录
stable diffusion
孤狼warrior12 天前
图像生成 Stable Diffusion模型架构介绍及使用代码 附数据集批量获取
人工智能·python·深度学习·stable diffusion·cnn·transformer·stablediffusion
love530love14 天前
【避坑指南】提示词“闹鬼”?Stable Diffusion 自动注入神秘词汇 xiao yi xian 排查全记录
人工智能·windows·stable diffusion·model keyword
世界尽头与你14 天前
Stable Diffusion web UI 未授权访问漏洞
安全·网络安全·stable diffusion·渗透测试
love530love14 天前
【故障解析】Stable Diffusion WebUI 更换主题后启动报 JSONDecodeError?可能是“主题加载”惹的祸
人工智能·windows·stable diffusion·大模型·json·stablediffusion·gradio 主题