介绍
stable-diffusion无疑是现在最热门的AI绘画模型了,stable-diffusion-webui提供了一个简单的通过web图形化调用的方法,但可惜没有提供对应的docker镜像,这里就尝试构建一个,方便之后的使用和分享。
搭建
环境是一台ubuntu22.04服务器,配一张3070显卡。
docker安装以及显卡驱动的安装就省略吧。
从安装NVIDIA Container Toolkit开始。
按照nvidia的指南
设置软件包存储库和 GPG 密钥:
apt安装
测试
能看到nvidia-smi就算成功了
搭建docker镜像
基础镜像就选择 nvidia/cuda:11.3.1-devel-ubuntu20.04
然后坑就来了
cuda版本
因为webUI默认使用的torch是pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113
,所以这里要选择对应的11.3版本的cuda。
用户要求非root
WebUI脚本里去限制了root用户启动,这里在dockerFile里创建非root用户来启动
别忘了赋予相应的权限。
网络代理
很多库和git仓库都要去下载,要设置好对应的代理,如果想打包时就使用代理,可以在~/.docker/config.json中配置
python版本
虽然要求是3.10,但实测3.8也是可以的,但再低3.6好像就不行了。
GPU配置
docker-compose.yml中配置
dockerfile中使用Python-venv
方便起见,shell选用bash
这里Dockerfile中的每一行 RUN 都是一个不同的过程。如果分开写,比如
是没有效果的。
一定要连在一起
Dockerfile
- 这里的model.ckpt可以去huggingface下载,选择合适的stable-diffusion模型即可。
RUN ./webui.sh --skip-torch-cuda-test --exit
这里是把第一的初始化(安装依赖、下载仓库)也放到镜像中了
- 默认只监听127.0.0.1,添加–listen以监听0.0.0.0,默认端口是7860,这里也通过nginx反代出去了。
docker-compose
这里也可以选择配置volume,方便之后的替换模型
测试
最后随便在网上找点提示词试一试,模型权重就用runwayml/stable-diffusion-v1-5,
再整个二刺螈的模型权重试试waifu-diffusion-v1-3