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

发布时间:2024年01月12日

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



llama
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不一样, 需要先安装一些基本依赖:

# 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文件(只需一个文件, 它会帮你全自动部署), 这个刚开始是没有权限, 需要运行一个命令:

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得到的精华, 没这条语句, 估计低端显卡都要崩, 而且根本无从查起.

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


文章来源:https://blog.csdn.net/m0_54206076/article/details/135540561
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。