点击 <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语言入门