当前位置:首页|资讯|AIGC|Stable Diffusion

鸡薯仔的AIGC炼丹笔记_第1章-Stable diffusion安装教程(云服务,Linux,webUI)

作者:鸡薯仔发布时间:2023-01-15
  • 以下配置方法以matpool为例,其它云服务或本机配置参考可跳过括号内容。注册矩池云请使用邀请码5ON44AncZinn6Nx:矩池云: https://matpool.com/,有118元礼包,谢谢。

1 简单五步

  • 1.1 选择合适的资源和环境,打开操作终端(矩池云可通过“我的租用-租用列表-马上去租赁”,实例镜像使用“Pytorch-1.12.1”,创建后打开“JupyterLab-Other-Terminal”)

  • 1.2 上传stable-diffusion-webui整理包,链接为: 百度网盘(提取码: zfzt): https://pan.baidu.com/s/1j74gxxJaWLXXb7Bmo9OMHQ?pwd=zfzt 。将整理包放至要安装的目录下。(矩池云需要上传至mnt目录,并在Terminal中输入cd mnt进入目录)

  • 1.3 依次使用以下命令(最后一条要求确认时输入y):

  • 1.4 上传要使用的模型(此处使用的是huggingface的sd-v1-4.ckpt模型),输入以下命令:

  • 1.4注:由于该文件较大且受网站本身的连接限制,也可以本地下载后上传到云服务中的stable-diffusion-webui/models目录下,下载地址为sd-v1-4.ckpt: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

  • 1.5 运行服务即可,输入以下命令(可将PASSWORD换成你自己的密码):

  • 1.5注:在任何网络下访问Running on public URL:后的地址均可,用户名为webui,密码为PASSWORD或你自己设置的密码。效果如下图所示:

2 分步解析

  • 2.1 矩池云操作,所有的操作尽量在mnt文件夹下进行,不要占用系统文件夹。如果是其它环境在Terminal中进入安装根录即可。

  • 2.2 本机下载stable-diffusion-webui整理包,整理包主要是对原版stable-diffusion-webui中的github连接部分进行了优化。有兴趣可看第3部分:优化过程。

  • 2.3 依次使用以下命令

  • 2.3.1 解压整理包

  • 2.3.2 进入程序目录

  • 2.3.3 安装stable-diffusion-webui注明要求的环境依赖,requirements_versions.txt为带有版本号的依赖列表。

  • 2.3.4 安装其它未在requirements中注明的环境依赖,运行launch.py时会检查。

  • 2.3.5 安装系统需要的程序组件。

  • 2.4 下载sd-v1-4.ckpt模型至models文件夹,sd是官方的stable diffusion模型,以后安装其它模型也都放在这个文件夹内。

  • 2.5 运行服务,可选参数有

    • --share:远程连接使用

    • --gradio-auth:用户名和密码验证,加上会比较安全

    • --gradio-debug:运行结果输出控制台

3 优化过程

  • 来看一下launch.py里的prepare_environment函数,首先是pytorch以及requirements

  • 然后是gfpgan,clip和openclip

  • 下来是xformers,windows要用,linux里用不到

  • 然后是repositories目录下的文件,主要优化就在这里

  • 可以看到,下面还有这5个文件的get_clone函数调用

  • 也就是说,运行launch.py文件时会检查各种依赖环境以及repositories目录,如果目录下没有这5个文件夹就会自动连接github进行clone并验证hash。而众所周知,法力不够的炼丹师是不能直连github的。手动下载这5个文件放入repositories目录,并在launch.py中将5个文件git_clone的部分注释掉,整合包就做好了。

4 常见问题(随时更新)

4.1 sd-v1-4.ckpt模型下载失败

  • 下载可能受到huggingface网站本身的连接限制,若下载失败说明需要提供huggingface的验证token。注册并登陆huggingface: https://huggingface.co/,点击头像-Settings-AccessTokens,复制其中的token并在Terminal中输入以下命令,将user_token换成你自己的token。

4.2 ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

  • libglib2.0问题,已整合入五步教程

4.3 GnuTLS recv error (-110): The TLS connection was non-properly terminated

  • github拒绝连接,说明你的法力不够,请直接使用整合包

  • 使用以下命令可以去掉连接代理,然而并没有什么卵用



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1