ATscore

  • 首页
  • 听音乐
  • 科普
  • 冒险岛
  • 声明
  • 关于
  1. 首页
  2. 信息技术
  3. 正文

从零开始部署AI项目,cuda环境到stable-diffusion

2023年5月7日 1479点热度 0人点赞 0条评论

file

部署深度学习AI项目

以stable-diffusion项目为例。
stable-diffusion是目前非常热门的,可本地部署的图片生成AI模型项目。
网上各种一键包满天飞。黑箱式的一键使用,只适合尝鲜,不利于学习。
本文将从零开始,以stable-diffusion项目为例(后称sd),介绍目前(2023年5月),一个深度学习的人工智能项目应该如何部署。

核心问题

对部署项目应该做什么没有概念
访问github缓慢

安装python

需要win10以上系统。
建议安装python-3.10后的版本

安装显卡驱动

nvidia的驱动分为GameReady驱动与Studio驱动。前者主要是针对游戏做了种种性能优化。跑cuda建议使用Studio驱动。

根据cuda版本安装cuda runtime

runtime用白话就是cuda的lib和so库。最好让驱动里的cuda版本与runtime版本相同。
请去寻找安装教程。并不难。下载cuda runtime很慢。毕竟越洋线路,NV也不肯多设服务器。
别忘了还要有cuDNN。

pip安装torch,使用pip清华源

许多人会推荐conda安装,我则不建议使用。anaconda是一个公司。最好不要形成对它的依赖。
pip安装并没有什么困难。同样是一键式的。安装的命令可以去pytorch的官方发布页上找到。
file
安装torch时会遇到官方仓库数据源比较慢的情况,使用清华源绕行。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后再安装

pip install torch ...

安装git程序

下载安装 https://gitforwindows.org/
file

安装stable-diffusion-webui项目

其实现在许多程序,都是以项目的形式发布到了github (一个微软运营的开源代码发布站),如下图。
file
关于git项目结构,以及git常用命令的使用,更多内容请参阅介绍其他科普类文章,此处仅作按需介绍。
在项目主页中,显示了master分支中的文件,下方有项目介绍,建议好好阅读一下。右方红框处是git文件地址,用它就可以获取到项目。
在项目顶层主目录中,执行以下命令,结果如后图所示(图中以d:/test/为主目录示例)

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

file
git就会自动创建一个项目目录stable-diffusion-webui,并将各个文件置于其中。

问题1,怎么知道git clone哪个项目呢?

首先你要对该AI项目有了解。
AI项目分为模型和WEB界面。模型是从数据中训练出来的,使用模型进行生成的过程则叫做推理。
WEB界面是使用模型操作界面,通常使用gradio这个简易的python WEB框架开发的,它的主入口是webui.py。
所以在github中查询stable-diffusion时,会有有以下结果。
file
所以看项目名称,大概就能猜到,叫xxx webui的,大概就是这项目的ui界面。而第二个,大概就是模型相关的了(其实第二个那个模型才是项目的核心)
但是我们这里只选择下载web-ui,而不下载模型。因为现在模型大多发布在huggingface这个网站上。

问题2,我git clone非常慢,还会报错。

仔细看报错内容,是不是connection reset,或者443这类与网络连接有关的错误。
如果是,通常有以下办法。

  1. 反复重试
  2. 使用ghproxy.com等代理进行github加速
  3. 使用一些方法进行加速,但你要知道github本就是可以访问的
  4. 外部下载后同步到本地,我使用这个方法

预部署stable-diffusion-webui

git获取到项目后。经阅读项目介绍,了解了windows下只需要配置webui-user.bat,再运行即可。
其实阅读一下相应代码,了解到它调用webui.bat,安装一系列依赖包,并一键启动。可以说已经非常地“一键式”了。
执行以下命令。
这里我创建一个名为venv的运行环境。

cd d:\test\stable-diffusion-webui
python -m venv venv

右键编辑webui-user.bat,内容如下。保后运行。

@echo off

set PYTHON=python
set GIT=git
set VENV_DIR=D:\test\stable-diffusion-webui\venv
set COMMANDLINE_ARGS=

call webui.bat

启动项目,遇到卡安装包的问题

到这里,你已经离成功非常近了。
同样,你遇到了python安装依赖包,和git clone依赖项目时的网络连接问题。

卡安装gfpgan

例如首先是卡在了安装gfpgan上。
file
先查查gfpgan是什么,无非要么是python包,要么是github项目。
首先去项目的requirements.txt中查,一查就有了。再一步去./venv/Lib/site-packages/下看看,果然没有gfpgan这个目录。由于我们已经设置了清华源,没道理下载不动。不如试试手工下载。
请记的要在对应的python环境下操作。

.\venv\Scripts\activate
pip install gfpgan

然后再试webui-user.bat,果然过了。
file
现在是卡clip,该怎么做不用我说了吧。

.\venv\Scripts\activate
pip install clip

卡安装open_clip

file
按上面方法尝试,得到以下报错。
file
说找不到open_clip这个模块。怪了。搜一下。首先是github上有它,难道它是一个github项目吗。
可是在项目主页里看到它其实也是一个python模块,版本2.19。
file
猜测大概它的模块名不叫open_clip,去pypi上搜一搜,图中的标记就可以直达。
file
好么,叫open-clip-torch。安装,通过。

卡sd-webui插件

继续安装
file
log上写着cloning,大概是一个github项目了。上面也写了项目名称,该项目应该放置的路径。
所以依前面的方法

  1. 在github上查到对应项目,进而查到项目git文件URL
  2. 根据log上的路径提示,去对应文件夹下,执行git clone
  3. 如果遇到卡慢,则参考前面提过的方法
    于是,全部完成!

完成sd-webui的安装

file
看到web ui的URL地址,过程中没有报错,应该就算完成了启动。
图中我使用了其他的文件路径地址,不是前述的test。

下载模型

去huggingface.co上下载模型文件,放置在以下目录

.\stable-diffusion-webui\models\Stable-diffusion\

安装control net插件

应该首先阅读sd-webui的使用大致说明,并探索一下主要功能。
其中注意到可以直接按git文件URL地址直接安装git项目作为插件。
file
但还是很慢。。试着安装,失败。
命令行窗口处会有错误提示,主要是从错误提示中找到插件的文件夹路径,其实我们前面安装时也已经处理过类似问题了。
自己找到插件的git项目地址,然后自己git clone,之后就刷新UI即可。
file

安装control net插件的模型

模型仍然是去huggingface上自己寻找
模型放在以下路径。

.\stable-diffusion-webui-1.1.0\extensions\sd-webui-controlnet\models

但我发现需要对模型做重命名,否则会找不到模型。 如下图。yaml文件是在插件项目中有的,pth文件是从huggingface下载后自己重命名的。
file

完成

通过以上,完成了sd-webui项目在本地的部署。

总结

本文介绍了sd-webui在本地从零开始的部署过程。主要是给出了一个部署AI项目要做哪些工作这么一个感性概念。大体来讲,包括以下环节

  1. 搭建系统级的python与cuda环境
  2. 获取主项目,并在主项目中构建项目python环境
  3. 展开主项目依赖包部署,主项目插件部署
  4. 下载模型
  5. 探索项目
ATscore

用常识解读世界,用自己的大脑独立思考

Post Views: 1,426
标签: 暂无
最后更新:2023年5月7日

ATscore

用常识解读世界,用自己的大脑独立思考

点赞
< 上一篇
下一篇 >

文章评论

取消回复

ATscore

用常识解读世界,用自己的大脑独立思考

文章目录Toggle Table of ContentToggle
  • 部署深度学习AI项目
    • 核心问题
    • 安装python
    • 安装显卡驱动
    • 根据cuda版本安装cuda runtime
    • pip安装torch,使用pip清华源
    • 安装git程序
    • 安装stable-diffusion-webui项目
      • 问题1,怎么知道git clone哪个项目呢?
      • 问题2,我git clone非常慢,还会报错。
    • 预部署stable-diffusion-webui
    • 启动项目,遇到卡安装包的问题
      • 卡安装gfpgan
      • 卡安装open_clip
      • 卡sd-webui插件
    • 完成sd-webui的安装
    • 下载模型
    • 安装control net插件
    • 安装control net插件的模型
    • 完成
    • 总结

COPYRIGHT © 2022 atscore.cc. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS