前言
在啊b上看到了这个腾讯云ide,发现他可以每个月白嫖5w分钟(一个月才43200分钟)的高性能gpu,而且他配置还挺高的(vps融合怪测试)显卡是Tesla T4(16G显存),整体上类似于谷歌的colab,但是时长更长,不过缺点也挺致命的
- 除去系统外可用硬盘容量只有30G,对于ai绘画来说模型能用的不多
- 国内网络,根本连不上GitHub和hunggingface,而且我测试没办法安装魔法,所以只能找反代
不过经过不懈的努力,终于还是成功装上了StableDiffusion,这里分享一下
安装
先去主页新建一个高性能gpu容器(建议选torch,后面要改动的地方少),然后进ide
删除他自带的torch(捎带把左侧文件夹内的所有东西都删了,留着占空间)
pip uninstall torch
然后clone sd-webui仓库(这里使用gitee上面的转载,部分gitee转载不及时采用GitHub反代链接)(安装完后先不着急装依赖,后面一起装)
git clone https://gitee.com/whilewon/stable-diffusion-webui.git
安装torch
pip install torch==2.1.2+cu121 -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html
安装xformers(可选,但是装上可以加快速度 装不装吧,实测速度几乎没有提升 好像似乎大概也许可能还是有点提升的,装上反正也占不了多大地,给自己一个心理安慰(bushi)
pip install -U xformers --index-url https://download.pytorch.org/whl/cu121
进入webui目录
cd stable-diffusion-webui
安装sd本体
#gitee转载
git clone --config core.filemode=false "https://gitee.com/chriskong93/stablediffusion.git" "/workspace/stable-diffusion-webui/repositories/stable-diffusion-stability-ai"
安装taming-transformers
#gitee转载
git clone "https://gitee.com/atari/taming-transformers.git" "/workspace/stable-diffusion-webui/repositories/taming-transformers"
安装CodeFormer
#GitHubfast反代
git clone "https://githubfast.com/sczhou/CodeFormer.git" "/workspace/stable-diffusion-webui/repositories/CodeFormer"
安装BLIP
#gitee转载
git clone "https://gitee.com/laphi/BLIP.git" "/workspace/stable-diffusion-webui/repositories/BLIP"
安装generative-models
#kkgithub反代
git clone "https://kkgithub.com/Stability-AI/generative-models.git" "/workspace/stable-diffusion-webui/repositories/generative-models"
#stablediffusion依赖
pip install transformers==4.19.2 diffusers invisible-watermark --prefer-binary
#安装k-diffusion gitee转载
pip install git+https://gitee.com/Sualiu/k-diffusion.git --prefer-binary
#(可选)安装GFPGAN(面部修复) GitHubfast反代
pip install git+https://githubfast.com/TencentARC/GFPGAN.git --prefer-binary
#(可选)CodeFormer(面部修复)的依赖 建议安装,指不定不安装就跑不起来了(
pip install -r repositories/CodeFormer/requirements.txt --prefer-binary
#安装weibui的依赖
pip install -r requirements.txt --prefer-binary
#将numpy更新到最新版本(官方文档给出了这条,但是升级会导致依赖不兼容。建议用下面那条)
pip install -U numpy --prefer-binary
#建议放弃上面的更新numpy,而是选择用1.23版本,实测没兼容性问题
pip install numpy>=1.23
#安装 opencv-python-headless
pip install opencv-python-headless
启动
在stable-diffusion-webui目录下新建start.sh输入如下内容:
#!/bin/bash
export COMMANDLINE_ARGS="--deepdanbooru --port 6006 --theme dark #--xformers"
python_cmd="python"
LAUNCH_SCRIPT="launch.py"
"${python_cmd}" "${LAUNCH_SCRIPT}" "$@"
上面的启动命令:
–deepdanbooru 启用了图生文的功能,主要用于训练前数据处理,这里没有太大用。
–port 6006 访问端口6006
–theme dark 黑色主题
(不要接share参数,接了会没法装插件。至于如何访问下面会说)
–xformers 如果你装了xformers就加上这条,注意在引号里,如果没加就不用管
授予权限
chmod +x start.sh
然后启动
./start.sh
他会先链接抱脸装模型,但是因为无法连接所以会卡一会然后报错,不用管其实我想管,但是我翻了半天没找到删除自动下载的代码写在哪里找到了解决办法了,只要你stable-diffusion-webui/models/Stable-diffusion里有模型文件他就不会下载了
curl ifconfig.me
查看公网ip~~~
然后用http://ip:6006(或者你修改的端口)进入webui
不用看了,免费版不支持端口外部访问的
这里选择ngrok内网穿透(如果你想,也可以用其他的比如SakuraFRP之类的)
内网穿透
这里用ngork,其他内网穿透自行研究
访问 ngrok官网注册/登录一个账号(不支持qq邮箱,qq邮箱注册的GitHub也不行)
下载Linux-x86/64的压缩包后上传到ide(根目录即可,方便找就行)
#解压
tar -xvzf ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin
然后运行下面那条“Run the following command to add your authtoken to the default ngrok.yml configuration file.“底下的指令把api添加到配置文件中,不同人的api不同这里就不放指令了
然后启动内网穿透
# 这里的端口号就是最上面start.sh中的端口号
ngrok http http://127.0.0.1:6006
启动后你会看到一个类似https://一堆数字.ngrok-free.app的网站,点进去然后点visit site就行,实测延迟平均100ms
安装插件
进入webui后点击 Extensions→Install from URL然后把插件链接塞进去点Install,安装好后去Settings→Reload UI重启后就可以使用了
这里附一条汉化插件,url安装网址请使用
https://kkgithub.com/dtlnor/stable-diffusion-webui-localization-zh_CN.git
另外,webui貌似没有插件卸载功能,可以去stable-diffusion-webui/extensions文件夹内卸载
安装模型
国内网络所以是无法访问Civitai和Huggingface的,所以对于模型来说有两个办法
- 本地下载后上传
- 通过镜像站直接下载
先说第一个,本地下载后上传传输速度取决于你的网络上传(实测平均速度在5mb/s左右)
第二个就是通过镜像站抱脸镜像站;Civitai镜像站,或者你也可以用大善人cf自己给下载链接做个反代,这里不过多阐述
对于抱脸,具体可以看CSDN如何在linux远程服务器上直接下载huggingface官网的模型这篇文档(不建议,实测下载速度巨慢,wget不到1mb,curl也才5附近,不如你直接上传)
下载的模型放到’/workspace/stable-diffusion-webui/models’对应的文件夹,一般来说是子路径的Stable-diffusion,具体看模型吧
其他
查看磁盘剩余空间
df -h
有关容器保活
只要浏览器开个ide窗口就行,不过每天凌晨2点会自动强制关机,需要重新进ide
一些成品演示
已知bug
- webui有时候进度条会突然消失,得去ide界面看进度条
- webui有时会卡死,强制关了重启就好
- 图生图/局部重绘可能无法正常使用
鸣谢
官方GitHub文档
CSDN手把手教你在linux中部署stable-diffusion-webui
CSDN利用ngrok实现内网穿透(全网最详细教程)
知乎stable diffusion汉化教程