本文目的:从零到1记录stable-diffusion在云服务器上的部署步骤,努力在前人的基础上,规避部分可能遇到的问题。至于搭建完成后使用优化,那就另一个故事了
首先感谢JASO前辈的手把手教程。在前辈的基础上,我从头到尾走了一遍并补充了一些自己碰到的问题。
鉴于本地的就是一个办公本,没有独显,跑起来肯定卡。而且这也是玩票性质的,所以就买个服务器吧,用完就扔~~~~
云服务商的选择上,很普通,大家随意选择腾讯云/阿里云/移动云/华为云....都可以。我是之前用的腾讯云,在腾讯云上抢的GPU云服务器(https://cloud.tencent.com/act/pro/gpu-study?from=10680),每天10点开始(准点去基本能抢到),45元/15天,够用了。配置如下
注意,预装镜像要选择“Ubuntu Server 18.04.1”,之后系统会默认自动安装GPU驱动。如果当时抢购太紧张了,也可以后面重装系统下(必要的归零操作是菜鸟必须,都怪云服务器的重装系统太方便了,全过程我重装了5次,。。。。)。
可以买好云服务器后,就重装一次,以免莫名其妙的问题
1、显卡驱动安装
先等服务器自己安装显卡驱动。预计等个5分钟。等不及的可以通过一下命令看下是否完成
2、更新Python到python3.10
参考文档(https://cloud.tencent.com/developer/article/1819871)
服务器自带的python是3.6.9,但直接使用中会出现莫名其妙的问题,经过探索,需要将python更新,用参考文档中的方法一即可
其中第三步命令要进行替换
原命令:
修改后:
完成标志如下:
3、将更新后的python3.10设置成默认
参考文档(https://www.cnblogs.com/STangQL/p/15647583.html)
安装了3.10后,我们系统中有多个python版本,要将我们需要的3.10版本设置成默认。
使用命令
会列出所有的python版本,但你现在高概率会出现“update-alternatives: error:no alternatives for python”,就说你的版本没有录入。那就补充下好了。
注意:要同时补充python和python3。
不想研究的,直接复制如下代码即可
验证方法
4、创建python3的虚拟环境
代码如下
1、克隆库
当你看到“done”的时候就OK了
2、修改launch.py文件
进入到对应的文件夹
修改launch.py的代码
主要两个目的:
①前辈说
由于腾讯源没有“torch==1.13.1+cu117“,导致需要从“--extra-index-url”的“https://download.pytorch.org/whl/cu117”中进行下载,速度非常慢。故此处对launch.py代码进行修改
找到torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117"),并修改
修改后:torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1 torchvision==0.14.1")
修改方法:输入“i”,再移动到对应位子上进行删除
②因为众所周知的网络原因,要对github的连接做处理
在每个 https://github.com/ (就在下面几行,注意每一个都要改)开头的链接前面添加 https://ghproxy.com/ ,变成如图所示的 https://ghproxy.com/https://github.com/的样子
两步修改完成后的样子如下
然后再按“esc”键,退出编辑
输入“:wq”,回车,保存并推出。
不确认自己有没有修改成功的,可以cat看一下
3、下载chilloutmix模型
进入stable-diffusion-webui/models/Stable-diffusion文件夹,下载chilloutmix模型到本地。
4、删除venv文件夹(必要的归零动作)
之前按照前辈的方法,直接开始./weiui.sh。结果出现以下报错,查了半天,简单除暴的删除就行了。
步骤如下:
在stable-diffusion-webui文件夹中删除venv文件
5、重头戏./webui.sh
因为是云服务器,为了完成后可以远程访问,对命令做如下修改
电脑访问http://云主机ip:7860
就可以Happy了~
最后的成果
至于“stable-diffusion”怎么玩,那就是另外一个故事了
圣殿地址:https://civitai.com/
补充附录:
1、如果想关闭云服务器页面后,服务仍然运行,可以使用nohup命令,具体是将启动时的命令做如下调整(即第3.5步)。*后续想关的时候使用kill命令即可
2、使用其他SD模型。将civitai上的模型下载到/stable-diffusion-webui/models/Stable-diffusion目录下。
2.1在C站找到想要的模型,右键复制连接
2.2参考前面的下载连接,修改相关命令。wget -O 文件名 文件url。示例如下
2.3重启webui页面,即可在页面左上角进行模型切换
3、添加Lora
3.1 克隆lora到/stable-diffusion-webui/extensions/sd-webui-additional-networks文件夹
3.2进入到lora文件夹
3.3下载模型。地址获取方式同上,在C站中右键复制“下载连接”
3.4重启webui页面,即可在“Additional Networks”中找到相关内容。
注意:要勾选Enable,并将权重设置在0以上
不良人米 2023-05-05
酷酷AI在路上 2023-07-24
Crazy412 2023-10-07