关于部署stable_diffusion(openvino版本)的讨论

stable_diffusion是当前挺热门的开源AI绘图项目,以下是部分官方介绍与百度渣翻:

proof of concept that you can work with state-of-the-art image generators even without access to expensive hardware. But, due we get a lot of feedback from you, we decided to make this project something more than a tiny script. Currently, we work on the new version of our project, so we can respond to your issues and pool requests with delay. 当我们开始这个项目时,它只是一个很小的概念证明,即使没有使用昂贵的硬件,您也可以使用最先进的图像生成器。 但是,由于我们从您那里得到了很多反馈,我们决定使这个项目不仅仅是一个小脚本。 目前,我们正在开发项目的新版本,因此我们可以延迟响应您的问题并池化请求。

顺便谴责一波google翻译虽然退出中国市场但是在必应搜索中占着茅坑不拉屎的恶劣现象:

进入主题:实际生活中仍然有大部分普通人用不起英伟达,包括我,所以一直没有体验这款AI,前段时间得知新的openvino版本可以在因特尔上使用,于是我偷偷去观摩了一波stable_diffusion.openvino,由于以前没整过这些活,看到readme.md文件的介绍时感觉有点懵,简单概括一下

*******
## Requirements环境
* Linux, Windows, MacOS
* Python 3.8.+
* CPU compatible with OpenVINO.

## Install requirements下载依赖包
pip install -r requirements.txt

*******

实测archlinux与windows10应该是没有什么问题的,只不过arch内存不够,我让她回溯了。

以下是windows10的配置过程,完成结果是能运行,但是输出网页为源代码,从背景被变成黑色可以合理猜测理论上当前的部署方式应该是可行的,现在正在寻找无法生成对应网页的问题:

下载

下载地址在上方链接,此外我自己在huggingface下载了模型,与项目一起放在新建的model文件夹中,完成后首先在python官网找到下载3.9.9版本python,有其他版本python可通过安装包进行删除后下载重装。

为什么不推荐使用其他版本:就文章发布时官方给出的Dockerfile文档中出现“FROM python:3.9.9-bullseye”,为了尽可能避免出现问题请转为3.9.9版本,比如此前我使用的3.10.0版本在安装时就曾出现过无法下载openvino的情况。

接下来是打开cmd(或powershell),按官方给出的README.md文档所示只需要一行命令就能完成,要不是实际装过我差点信了的官方的邪。

在开始前对曾装过python的玩家给个建议:使用pip list将除pip.py与setuptools.py文件外所有文件复制到文本text.txt中,建议放在C:\Users\[username]\处,或者使用cd找到文件位置:

pip freeze > text.txt
pip uninstall -r text.txt -y

以上代码可以批量删除第三方库,保证过程中不会出现格式不兼容等问题。

请不要随意改文件内容:之前为了方便,我把requirements.txt文件的numpy,scipy版本修改为我曾安装过的版本,结果导致后面numpy版本问题出现报错。

以下是我建议的安装代码:

cd [文件所在目录下]                  #切换路径
D:                                  #cmd中若项目解压于D盘,使用该命令切换(powershell无需这一步)
pip freeze > requirements.txt       #在虚拟环境中新建requirement
pip install -r requirements.txt     #pip安装,推荐使用镜像安装(-i)

其中我在使用pip安装时使用了中科大的镜像,感谢多年来中科大镜像对我的帮助:

pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ -r requirements.txt

使用镜像应该能很快装完一堆乱起八糟的第三方库,打开demo.py时发现diffusers库并没有被识别出来,于是我又重新使用pip命令安装了一遍:

pip install diffusers

完成后重启vscode,第三方库基本都被识别,

关于函数中未调用库的问题:我是这么思考的,完善代码最好在代码能跑的基础上,不然万一因为一些特殊原因出现本可以避免的问题可就太亏了,包括import os,还有其他文件的from huggingface_hub import hf_hub_download;from diffusers import LMSDiscreteScheduler, PNDMScheduler;from  PIL import Image, ImageEnhance我都没有对代码进行改动。

运行后出现了一堆Downloading进度条,没理解是什么意思,不过再次运行时不再出现进度条,大概是初始化环境?懒得分析代码,毕竟重点是另外一个文件。

打开demo_web.py,忘记当时是什么情况了,如果有没有显示出来的第三方库就自己再安装一下吧,没记错的话是需要:

pip install streamlit_drawable_canvas

运行后出现以下输出结果与报错:

[当前时间]
  Warning: to view this Streamlit app on a browser, run it with the following
  command:
    streamlit run [文件位置]\demo_web.py [ARGUMENTS]

在浏览器中打开~[文件位置]\demo_web.py~可以得到如上网页,另外有差不多这样的报错显示:

OSError: Windows requires Developer Mode to be activated, or to run Python

原因应该是需要管理员权限,我尝试过使用cmd以管理员身份运行,但是绕了很久还是弄不好,所以建议直接对编辑器(比如vscode)赋予管理员权限打开,重新调试demo_web.py不再出现报错。

现在正在尝试理解代码,找出无法正常显示网页的原因,顺便给黑客说的各位分享一下,万一可以受大佬指点一波呢?(笑)

Comments
登录后评论
Sign In
·

执行了10步,纪念第一次跑出图片,听着笔记本的声音还是有些心疼的,之后彻底研究清楚以后给大家分享一波