使用弹性容器集群部署stable-diffuision-webui
Stable Diffusion WebUI 是一个基于 Stable Diffusion 模型的图形用户界面,使得用户可以更容易地生成和编辑图像。
Stable Diffusion 是一种深度学习模型,专门用于生成高质量的图像。通过 WebUI,用户可以方便地调整参数、运行生成任务,并查看结果。
本文介绍如何使用弹性容器集群,快速部署Stable Diffusion WebUI。
前置条件
安装docker,请参考安装Docker
开通弹性容器集群
连接弹性容器集群,具体请参考使用指南->弹性容器集群->快速开始
方案概述
- 准备镜像,并推送镜像仓库
- 下载模型文件,并上传对象存储管理
- 声明命名空间
- 创建密钥,用于容器从镜像仓库拉取镜像
- 创建容器,从对象存储下载模型文件,放置在容器代码指定的位置
- 创建服务
- 发布服务
操作步骤
准备镜像
关于镜像仓库使用,请参考镜像仓库的使用
用户名密码:查看开通镜像仓库时的通知短信
镜像仓库地址:由 访问域名/项目 组成
拉取源镜像
在开始部署前,需要先拉取Stable Diffusion WebUI的源镜像,然后根据部署需求,以源镜像为基础镜像,自定义镜像。
拉取源镜像:
docker pull freeze1111/stable-diffusion-webui
自定义镜像文件
可以把一些工具打包到镜像里,如:rclone,curl,vim 等。
rclone.conf 需要与Dockerfile文件放在同一目录下。
FROM freeze1111/stable-diffusion-webui:latest
ARG VERSION=3.0
# 切换回root用户来安装软件
USER root
# 安装rclone, curl, vim, ping 和 sudo
RUN apt-get update && apt-get install -y rclone curl vim iputils-ping sudo && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# 拷贝rclone配置文件,这个镜像里的用户为"user",所以将配置文件拷贝至"user"用户的home路径下
COPY rclone.conf /home/user/.config/rclone/
# 切换回之前的非root用户, 保持原有的工作目录和用户
WORKDIR /workspace
USER user
# 保留原有的启动命令
CMD ["sh", "-c", "./webui.sh --listen --no-download-sd-model"]
重打自定义镜像
docker build -t 镜像仓库地址/freeze1111/stable-diffusion-webui:5.0 .
推送到镜像仓库:
docker login 域名 -u username -p password
docker push 镜像仓库地址/freeze1111/stable-diffusion-webui:5.0
下载模型文件
本文档部署示例需要两个模型 clip-vit-large-patch14 和 stable-diffusion-v1-5
模型文件下载可以有多种渠道,如 modelscope,huggingface等
本文从modelscope下载模型文件, 以stable-diffusion-v1-5为例,下载方法如下:
pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple
modelscope download --model AI-ModelScope/stable-diffusion-v1-5