前几天写了一篇《手把手教你在本机安装Stable Diffusion秋叶整合包》的文章,有些同学反映对硬件的要求太高,显卡太TM贵了。今天我再分享一个云服务器炼丹的方法,方便大家快速入门上手,这个云服务不需要特殊网络设置,能连接公网网盘,随开随用,有3090显卡,也有4090显卡,不过我经常使用的是A5000显卡。本文非广告推广,只分享使用方法,不喜跳过。
闲话不多说,下面就正式开始了。
注册登陆
注册方式一
手机号直接注册,打开这个链接:www.autodl.com/register,很简单就不多说了。
注册方式二
为什么还有两种方式?测试的时候发现验证码发不出去,官方说这两天验证码通道有点问题,有时发不出去。具体原因就不知道了,做个备选吧。
在它的登陆页面,点击"微信登陆"按钮,用微信扫一扫,在微信打开的页面中,点击"关注公众号",关注成功后,AutoDL的网页会自动跳转,要求绑定手机号,这个验证码却能收到,感觉有点奇怪。
开服务器
注册成功之后,就可以登录了,登陆成功之后会进入一个管理界面。

之前听说注册用户还送10块钱,现在应该没有了,现在是会送30天的炼丹会员,单价上有些折扣,正常情况下这个折扣需要消费达到500才会有。
没有余额就开不了服务器,所以我们要先充点米进去。
充值
鼠标划到管理界面右上角的这个账户名称上,在弹出的窗口中点击"充值"。

在"充值"页面中,选择"其它金额",我这里充值5米,你可以试试更小的金额能不能开机。每次少冲点也可以避免忘了关机导致被扣钱心疼的问题。
付款方式按照自己的情况选择就行了,具体支付流程大家都应该很熟练了,这里就不演示了。

租用实例
在管理界面的右上角点击"控制台"。

然后在左侧菜单中点击"容器实例",在打开的页面中点击"租用新实例"。

在"创建实例"的页面,按照下图的顺序设置。
- 计费方式:一开始体验选择"按量计费"就可以了。
- 选择地区:大家都推荐内蒙A区,据说网络比较稳定,我也一直用这个。
- GPU型号:A5000,实测性能也可以。
- GPU数量:先选择1个,后边熟练了再根据实际情况来。
- 选择主机:GPU型号和数量选择后,这里就会列出可用的主机,先随便选一个就行了。

下边还有一些设置。
数据盘:免费容量是50G,如果不够需要花米扩容,一般50G也够了。
镜像:首先选择"社区镜像",然后在输入框中输入"yinghuoai",会自动弹出一个镜像,选中它就行了。这个镜像是我专门修改过的,后续也会不断优化升级,大家有问题向我反馈就行。当然也可以用别的镜像,不过后边启动SD WebUI的步骤可能有些不同,建议先按照我这个步骤跑一遍再说。
最后点击"立即创建"。

启动
现在服务器实例已经启动起来了,我们还需要2步来启动 Stable Diffusion WebUI。
本机启动
点击"快捷工具"这一列中的"JupyterLab",如下图所示:

上边的操作会在浏览器中打开一个新的页面,JupyterLab的页面。JupyterLab 是一个Web应用程序,可以管理文件、记点东西、运行程序,功能类似于VSCode。
参照下图,执行以下2个步骤:
- 在页面左侧的文件管理器中双击"启动器.ipynb";
- 在页面右侧打开的页签中点击红框中的启动按钮。

首次启动要下载一些模型,会有点慢,大概2-3分钟。后边再启动就会跳过这些下载步骤,达到秒级。

看到下图的"Running on local URL"和"Model loaded in" 就说明启动成功了。
其中的"http://127.0.0.1:6006"就是SD WebUI的访问地址,不过这个地址只能本机访问,而这个云服务器本质上只是个容器实例,没有桌面环境,也没有浏览器可以用。当然这个问题可以解决,请继续看下文。

映射到外网
回到容器实例列表,找到刚才启动的实例,在"快捷工具"中点击"自定义服务",如下图所示:

如果第一次使用自定义服务,它会弹出一个身份认证的提示。因为AutoDL会把SD WebUI的本机访问地址映射到外网,大家可能都听说过网站备案这件事,这里AutoDL给大家提供的外网地址用的是AutoDL自己备案过的域名的子域名,所以AutoDL要承担一定的风险,出了问题的时候它得能找到人,所以需要身份认证。

按照提示操作就行了,这里我使用个人认证进行演示。


输入姓名和身份证号,注意一个身份证只能在AutoDL上认证一次,多个账号就得用不同的身份证号来认证。

只要姓名和身份证号能对上,上边的认证就通过了。
我们再次点击"自定义服务",这时候会弹出一个警告,意思就是不要乱搞,乱搞必被罚。我们都是好人,勾选同意服务协议,然后点击"访问"。

然后AutoDL就会在浏览器中打开一个新的页签,稍等片刻,期待已久的 SD WebUI 页面就展示出来了。

出图
为了方便大家绘画,这个镜像自带两个大模型,一个二次元,一个真实视觉。
这里以二次元模型为例,演示如何生成图片。
1、选择大模型,这里是默认的二次元模型 AnythingV5。
2、提示词,先来个简单的:a girl。
3、反向提示词:EasyNegative,这是一个嵌入式模型的代号,揉合了一些常见的反向提示词。
4、点击生成。
5、稍等片刻,图片就生成出来了,可以点击放大,右键保存。

更多的参数和设置,后续会有其它文章介绍,请及时关注公/众\号:萤火遛AI(yinghuo6ai)。
这里还有一些云服务器的使用问题需要关注,请继续看下文。
关机/开机
本文介绍的服务器实例计费方式是按量付费,每小时计费1次,如果暂时不用了,记得"关机"。
建议使用"小程序管理实例",当你记不清楚的时候,就打开微信小程序看看,避免白白的浪费资源。

关机之后再次开机可能会遇到GPU无法分配的问题,因为服务器都是共享的,你关机的时候,别人就可能继续使用这个服务器的计算资源,再次开机时可能就没有足够的显卡了。
这时候怎么办?别慌,有办法。
在关机实例的"更多"这里,点击"克隆实例",

在弹出的提示中,有两个关键的信息:1、数据盘不会自动拷贝,需要手动处理 2、每天3次克隆机会。

点击"确定"之后的流程和创建新服务器差不多,只不过不需要选择容器镜像了。
然后就可以在容器实例列表中看到克隆的进度:

新实例启动后,如果还需要数据盘的数据,我们需要在原实例的"更多"中点击"跨实例拷贝数据":

在弹出的窗口中,选择"目标实例",也就是克隆出的新实例;"源实例数据路径"填写:*,代表数据盘所有的文件。

等待数据拷贝完成:

数据拷贝完毕后,就可以使用新的实例继续工作了。
启动 SD WebUI 的方法在上边的步骤中介绍过了,这里就不重复了。
存储
文件管理
JupyterLab自带一个文件管理器。
- 点击右上角的文件夹图标可以开启/关闭文件管理器
- 这个文件管理器的根目录实际对应的是Linux系统的 /root 目录。
- 鼠标双击文件后会在右侧的编辑器中打开。

对文件夹和文件的操作可以通过鼠标右键触发,可以看到这里边有很多操作,新建、复制、删除都有了,还是挺方便的。

对于服务器和本地文件的交互,我们可以通过这个文件管理器的上传、下载实现。

公网网盘
AutoDL系统盘是30G、数据盘是50G,如果超出就需要付费购买数据空间。虽然我们已经将各种模型搬到了数据盘中,但是大模型动辄就2-5G,所以免费的数据盘也放不下几个模型,而且我们还有各种插件和生成的文件。
考虑下使用场景,对于模型,我们不会同时使用所有模型,所以可以把它们先放到别的地方,用的时候再加载进来,不怎么用的就挪到别的地方。这个别的地方可以是用户本地电脑,但是也会占用很多空间,所以很多时候就是各种网盘,比如百度网盘、阿里云盘这种。AutoDL支持的"公网网盘"就是干这件事的。
网盘授权
在实例列表中,找到需要下载数据的实例,点击"AutoPanel":

在AutoPanel页面中点击"公网网盘",这里需要设置一个密码。

设置密码之后,就可以进行网盘授权了,阿里云盘不怎么限速,所以建议优先使用它。没有阿里云盘的同学需要先去注册个账号,然后手机上安装它的APP,扫码授权。

授权通过后,当前服务器就可以操作云盘了。不过这样授权之后,只有当前服务器可以访问网盘,其它服务器想要访问网盘还得重新授权。
AutoDL提供了一个方法,把授权信息保存到一个独立的位置,新开的实例自动加载授权信息。
操作方法是,在已经授权的服务器这里,点击"导出授权"。

在弹出的窗口中,点击"复制授权信息"。

然后打开AutoDL的控制台,进入"账号"->"设置"->"公网网盘",粘贴前边复制出来的授权信息,最后点击"确定"按钮。这样新创建的实例就自动授权了,访问网盘的时候只需要输入独立密码就行了。

下载文件
在授权过的公网网盘这里,找到你要下载到本地的文件,点击"下载"按钮。

确认下载文件的位置,这里不能修改,知道就行了,点击"确定"开始下载。

下载完毕后,进入到 JupyterLab 中,进入"autodl-tmp"文件夹,可以看到我们下载的文件。

如果你需要把文件移动到别的目录,在目标文件上点击右键,在弹出的菜单中点击"剪切"。

然后通过文件管理器进入到目标路径,在空白的地方点击"粘贴",稍等片刻,文件就移动过来了。

上传文件
在"AutoPanel"的"公网网盘"页面中,点击"上传",会弹出一个"上传文件"的页面,页面上方可以切换路径,页面下方会展示路径下的文件列表,找到想要上传的文件,点击文件后边的"上传"。
单个文件和文件夹都可以上传,但是文件夹下超过100个文件时需要先压缩再上传。可以连续发起多个上传任务,它们会排队执行。

文件存储
这部分内容因为需要用户手动开启,然后做一些技术处理,操作门槛比较高,如果搞不懂也没关系,不影响正常使用。
AutoDL本身提供了一个名为"文件存储"的功能,可以在多个服务器实例中共享,它类似于公网网盘,但是我们能够在服务器中直接访问它,所以它比公网网盘更方便一些。

点击"初始化文件存储"之后,我们可以看到下边这个界面。可以上传、下载文件,有点可惜的是这个免费空间只有20G,如果超出20G,超出的空间会被计费,目前每G每天1分钱。

开启文件存储后,我们可以在服务器的文件系统中看到这个文件夹,挂载的就是上边创建的"文件存储"。如果服务器是"文件存储"初始化之后创建的,需要把服务器实例先关机再开机,才能成功挂载。

"文件存储"的本质是一种网络存储,它的好处是三副本存储,数据不容易丢失,但是相比服务器本地的"系统盘"和"数据盘",访问速度会慢一些。
如果你对磁盘性能要求不高,可以把SD WebUI的部分路径改到这个下边,比如生成图片的输出路径,一些小模型等等。
更换图片输出路径的方法:
(1)启动一个可以执行命令的终端。
点击 JupyterLab 中的这个加号,打开一个新的 Launcher。

在 Launcher 页面中点击"终端"。

(2)在终端执行更换路径的命令。
- 先在"文件存储"中创建一个目录,用来保存SD生成的图片;
- 然后把 SD WebUI 的文件输出目录删除;
- 最后创建一个 SD WebUI 输出目录到"文件存储"中新建目录的软链接。
这样 SD WebUI 保存文件时就自动保存到了"文件存储"中。
bash
mkdir /root/autodl-fs/webui_outputs
rm -Rf /root/stable-diffusion-webui/outputs
ln -s /root/autodl-fs/webui_outputs /root/stable-diffusion-webui/outputs
更换模型保存路径的方法:
这个简单点,修改下启动命令就行了,如果使用的是 yinghuoai 的镜像,直接修改下边这个文件:

这个命令中有几个 --xxx-dir 的参数,就是各种模型的路径,按照需要替换就行。
更改完毕之后,不要忘了在 JupyterLab 中重新启动,就是点那个两个箭头的按钮。
OK,以上就是本文的主要内容了,如有问题,欢迎给我反馈。
我会经常分享一些AI方面的前沿知识和应用实例,为你呈现最新、最酷、最实用的AI技术,陪你一起探索AI世界!请关注公/众\号:萤火遛AI(yinghuo6ai),及时获取精彩内容。