在GPU云服务器中部署Stable Diffusion web UI |
您所在的位置:网站首页 › gpu云服务器的部署 › 在GPU云服务器中部署Stable Diffusion web UI |
在GPU云服务器中部署Stable Diffusion web UI
1. 前言2. 关于云服务器的选择3. 关于机器的选择4. 部署Stable DiffusionPython和CUDA检查pip源下载Stable Diffusion web UI尝试运行Stable Diffusion使用命令手动下载依赖基础模型python库依赖
本机下载依赖并上传到服务器下载模型上传服务器
5. 运行6. 参考
1. 前言
最近在研究如何使用Controlnet细粒度控制Stable Diffusion生成满意的图片,无奈自己本地的显卡只有6G的显存,而Controlnet的Openpose功能需要10G以上的显存才能正常出图。于是只能租用GPU云服务器并将SD模型部署在服务器上,然后再通过本地浏览器访问。 2. 关于云服务器的选择推荐这篇文章:GPU云服务器平台对比!哪家最值得推荐? 自己使用的是AutoDL,但是并没有使用它家自带的Stable Diffusion模型,还是自己从头开始部署。不太推荐这家,原因是如果使用按量计费,关机后经常会出现无卡可用的情况,尤其是3090这种热门卡。 3. 关于机器的选择以AutoDL为例,注册完成后来到以下界面选机器:
关于计费方式,只推荐按量计费,很多有优惠的平台可以用1~2块/小时租到3090的显卡。除非是需要训练大模型,只是自己用的话不推荐包日/周/月,那价格1年自己都快能买一块了。按量计费的缺点就是关机后可能会因为空闲显卡不足无法正常开机。 AutoDL自带了NovelAI,但是实际使用起来可能会有各种错误,其中最多的是Python版本的问题。我这个时间点,它们的机器上自带的都是Python3.8,但是最新版本的stable-diffusion需要3.10的环境,所以不推荐用它自带的,而是选择如下的配置:
一般GPU服务器已经自带Python和显卡驱动,建议使用服务器厂商自带的,否则后续会出现很多问题。 检查pip源这一步很重要。Stable Diffusion的更新速度很快,但是有一部分厂商的机器所使用的的pip源没有及时更新,没有SD所需要的一些依赖的最新版本,就会导致一直报错。 以autodl为例,我的机器默认使用了华为源,导致自己在后续安装依赖的时候facexlib和numpy一直找不到最新的版本,最后换成阿里源才成功解决,同时换源后记得再更新一下pip的版本。 具体的操作方式见:pip换源 -pip更换国内镜像源 下载Stable Diffusion web UI在终端中输入以下命令,这里推荐部署在数据盘而不是系统盘,因为后续还需要下载各种模型,占用空间较大。 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git如果连接超时,建议多试几次,因为git的连接有时很不稳定。 尝试运行Stable Diffusion下载完成后,进入项目根目录,执行命令: cd stable-diffusion-webui COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py其中launch.py是执行脚本,medvram和always-batch-cond-uncond都是显存优化的参数; port 6006指定进程运行在机器的6006端口上。因为autodl自带了一个对外暴露的服务,端口号为6006,所以这样设置。当然,也有其他的方法,会在后面说明; 最后的REQS_FILE是运行所需要的的依赖,命令执行后会自动安装依赖。 使用命令手动下载依赖如果租用的是国内节点的云服务器,大概率会碰到各种连接失败和超时的问题。比如: The TLS connection was non-properly terminated如果出现这种问题推荐手动下载。 基础模型首先在主目录下创建repositories目录: mkdir repositoriesStable Diffusion web UI有四个依赖模型,需要分别下载。 StableDiffusion: git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusiontaming-transformers: git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformersCodeFormer: git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormerBLIP: git clone https://github.com/salesforce/BLIP.git repositories/BLIP安装完成后再次执行命令,会自动安装剩下的依赖,当然后续也可能因为连接超时而报错: COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py python库依赖在安装依赖的时候也可能会因为网络而卡住,尤其是gfpgan库,这时候建议使用pip install命令手动安装依赖。如果出现类似以下错误: No matching distribution found for facexlib>=0.2.5这是因为无法从pip中获取最新版本的库,建议升级一下pip,并且检查一下pip源是否太久没更新。 本机下载依赖并上传到服务器如果网络实在无法连接,则只能用本机下载模型并上传到服务器上。 在Stable Diffusion的依赖中有一个v1-5-pruned-emaonly.safetensors模型需要从huggingface网站中下载,但是终端的下载速度巨慢。按量计费每分每秒都是money,所以更推荐本地下载后直接上传到服务器。这里以autodl的服务器为例。 下载模型网址: https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.safetensors 上传服务器常规可以使用Xshell的方式,详情可以参加文档:AutoDL数据上传 我这里介绍通过阿里云盘(因为没有限速)的方式上传到autodl的服务器。 模型上传至阿里云盘,如果没有账号,需要先注册。 在控制台界面(开机状态),打开AutoPanel: 下载后的文件存放在数据盘的根目录中,进入数据存放的文件夹后,将模型移动到项目主目录: mv v1-5-pruned-emaonly.safetensors stable-diffusion-webui/后续其他模型都可以用这种方式上传至服务器。 5. 运行前面所有依赖安装完毕后,在项目主目录下再次执行命令: COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py如果出现以下输出则表示运行成功: 使用autodl的情况下,在控制台中点击自定义服务: 后面会出现提示,让进行实名,因为监管进一步收紧,如果不希望实名建议换其他服务器厂商。完成实名后就可以在本地浏览器中操作Stable Diffusion作画了。
Controlnet使用成功! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |