利用AutoDL部署Stable Diffusion加速图片生成

新闻 2023-02-19
438

本来想投B站,结果说我涉嫌广告内容把文章锁了。

那你怎么不说写C++的专栏是在给C++打广告呢。

于是只能投知乎了。

但感觉知乎人均计算机高手,可能也不太需要我这篇文章。

最近天天沉迷NovelAI,但是小笔记本的1650实在是太拉,一张512*768的图本地要跑四分多钟。

就这么忍受了几天,结果今天看到别人的出图速度感觉实在是眼馋,于是毅然决定搞台服务器。搜了一下发现教程并不多,所以我自己折腾了一个下午,终于实现了涩图自由,从十秒一个iter变成了一秒十个iter。

独乐乐不如众乐乐,秉承互联网的开源精神,这里大致分享一下操作流程,争取人人都能实现涩图自由。

本人尽力将本文写得通俗易懂,争取做到直接按照步骤一步一步操作下来就可以直接使用。但不排除可能需要用到一些基础计算机知识。

目录

一、平台选取与服务器租用

服务器我用的是AutoDL。首先进入AutoDL官网,点击右上角注册按钮注册账号。

利用AutoDL部署Stable Diffusion加速图片生成

AutoDL首页

注册完后进入控制台。如果是学生的话先完成控制台右上方的学生认证,价格会非常优惠。

完成后点击左侧我的实例——租用新实例。计费方式选择按量计费。选租主机和算力型号可以根据价格需求自行选择,但是一定要选择有空闲GPU的主机。

下午我已经用3080Ti配了一台服务器,这里本来想租一台A100玩玩,但是已经没有空闲GPU了,所以我租一个A5000进行演示。

利用AutoDL部署Stable Diffusion加速图片生成

服务器租用

GPU数量选1即可,50GB的数据盘也很够用了。镜像选择PyTorch 1.11.0,Python版本为3.8(ubuntu 20.04),Cuda版本为11.3。如果有优惠券的话选择一下优惠券,之后点立即创建即可。

利用AutoDL部署Stable Diffusion加速图片生成

服务器租用

创建好后应该和下图长得一样,系统会自动帮你开机。

利用AutoDL部署Stable Diffusion加速图片生成

租用成功

二、公网网盘绑定与换源

创建完成后点击快捷工具中的AutoPanel,选择上方的公网网盘并设置一个独立访问密码。进入后公网网盘选择阿里云盘。

在阿里云盘上注册一个账号,并下载PC端和移动端阿里云盘app,用移动端扫码进行绑定。

之后打开PC端阿里云盘app,将本地下载好的NovelAI模型(*.ckpt, *.pt)以及hypernetworks文件上传至阿里云盘里。上传速度应该很快,成功后可以在AutoPanel中看到。

利用AutoDL部署Stable Diffusion加速图片生成

NovelAI文件

之后在AutoPanel中点击右边的下载按钮,将所有文件下载至实例中。

在下载的过程中我们可以先做一些其他事。

点击AutoPanel上方的实用工具,在切换Pip/Conda源中将pip源切换至默认源并点击确定。

利用AutoDL部署Stable Diffusion加速图片生成

pip换源

三、Ubuntu环境配置

换源后回到我的实例界面,在快捷工具中点击JupyterLab。界面如下。

利用AutoDL部署Stable Diffusion加速图片生成

JupyterLab

由于个人比较喜欢终端操作,这里展示终端操作流程。点击其他中的终端,打开shell界面。

进入后首先输入指令:

conda init bash

之后重启终端。退出后在左侧选择“正在运行终端和内核”,点击“全部关闭”。

利用AutoDL部署Stable Diffusion加速图片生成

重启终端

之后回到控制台界面。选择上方的“帮助文档”,点击左侧的“学术资源加速”,找到你所租借的服务器所在区域并复制对应命令。由于我租的是芜湖区的机子,所以复制芜湖区对应的命令。

利用AutoDL部署Stable Diffusion加速图片生成

代理配置

回到JupyterLab,点击“其他”中的“终端”,再次打开终端界面,将指令复制进终端内。

执行结束后画面如下所示。

利用AutoDL部署Stable Diffusion加速图片生成

代理配置

之后输入指令:

conda create -n waifu python==3.10.6

出现如图所示界面后输入小写的y并回车,等待下载完成。

利用AutoDL部署Stable Diffusion加速图片生成

创建conda环境

出现如图所示界面后输入下一条指令:

conda activate waifu 利用AutoDL部署Stable Diffusion加速图片生成

环境创建完成

完成后应该能看到光标所在行最前面的括号内容变成了waifu。

之后输入:

cd autodl-tmp

进入autodl-tmp文件夹。

之后将stable-diffusion-webui克隆到本地,即输入命令:

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

等待命令执行完毕。

之后输入命令:

cd stable-diffusion-webui

进入stable-diffusion-webui文件夹。

进入后执行命令:

python launch.py --share

等待环境配置完成,可能需要一段时间。

上述操作完成后应该会显示如图所示的画面。

利用AutoDL部署Stable Diffusion加速图片生成

环境安装

如果这时模型还没有下载完成的话再等待一下,等模型下好。下好的文件存放在/autodl-tmp文件夹下。下载完成后将模型移动到models文件夹里。由于我的模型名字为animefull-latest.ckpt和animefull-latest.pt,文件夹为hypernetworks,所以输入如下三行指令:

mv ~/autodl-tmp/animefull-latest.ckpt ~/autodl-tmp/stable-diffusion-webui/models/Stable-diffusion/
mv ~/autodl-tmp/animefull-latest.pt ~/autodl-tmp/stable-diffusion-webui/models/Stable-diffusion/
mv ~/autodl-tmp/hypernetworks ~/autodl-tmp/stable-diffusion-webui/models/

需要注意的是如果模型名称或文件夹名称不同,那么请将命令中对应的模型名称替换为你的模型名称,对应的文件夹名称替换为你的文件夹名称。

完成后再次输入指令:

python launch.py --share

之后等待下载完成,完成后应该会出现如下界面:

利用AutoDL部署Stable Diffusion加速图片生成

配置完成

之后复制public URL至浏览器即可,enjoy!

四、注意事项

1、若不使用stable diffusion,请将实例关机,否则将一直扣费。

2、本文仅介绍了一种配置方法,当然本地ssh至服务器也可以,用jupyter notebook也可以,甚至网盘选取度盘也可以,只不过度盘比较麻烦而且非会员限速。

3、如果通过ssh登录或手抽把在线的终端掐了,为防止终端关闭后程序终止,需要使用tmux或者screen。

4、学生使用autodl价格比较亲民,并且现在注册完成之后送十元的代金券,十元其实非常够用了。如果不够的话再额外贴一点就行,最好的卡一小时也不超过五块钱。此外选择其他云服务器也是可以的。

5、如果配置完成并关掉终端后想重新运行stable diffusion,直接从步骤三中输入命令"conda activate waifu"开始做起即可。

6、本人能力有限,请各位大佬斧正。

利用AutoDL部署Stable Diffusion加速图片生成

老婆斯哈斯哈

2022.10.16 update:发现public URL稳定性奇差。将端口修改为6006之后用自定义服务登录即可,指令为:

python launch.py --share --port 6006

2022.10.18 update:发现有人蹭我的GPU,具体原因和操作方法不明。目前的解决方法是开auth认证,可以在项目的github仓库上找到使用方法。顺带更新一下老婆的美图。

2022.10.25 update:应该是最近玩这个的人太多了,现在开自定义端口要签实名协议,最好在negative prompts中加上nsfw防止封号。

2022.10.30 update:我的另一台机子三四天没开机,开机了一下发现文件损坏+zsh配置爆炸,合理怀疑平台有问题,注意数据备份。

具体问题是启动launch.py后报错:

AttributeError: NoneType object has no attribute keys

解决方法很简单,cd到~目录下,把.cache文件删了,重下一遍文件即可。

版权声明: 发表于 2023-02-19。
转载请注明:利用AutoDL部署Stable Diffusion加速图片生成 | 非常AI

相关文章