您需要首先安装 Docker 程序,根据引导程序安装完成后进入终端进行构建
下载地址:Docker: Accelerated Container Application Development
进入到 src/code/images,执行 DOCKER_BUILDKIT=1 docker build -f Dockerfile --target anime -t stable-diffusion:anime-v1 . 即可开始构建镜像
Dockerfile 支持多阶段构建,您可以通过修改 --target 来指定要构建的目标阶段,并且通过修改 -t 自定义您自己期望的镜像名
(阿里云容器镜像服务要求的镜像名为 registry.{region}.aliyuncs.com/{namespace}/{repo}:{tag},可通过 docker tag {原本的镜像名} {新的镜像名} 修改镜像名称)
镜像可推送至阿里云容器镜像服务https://cr.console.aliyun.com,根据引导创建您的 namespace 和 repo,并配置鉴权信息推送(请推送到您期望部署的地区)
您可以直接在 函数计算 - 服务及函数 找到您 Stable Diffusion 对应的服务,并进入 sd 函数修改镜像地址
如果您需要自己从 0 部署自己的镜像到函数,可以如下执行:
创建服务
创建函数(选择使用容器镜像创建),镜像提示填写您在阿里云容器镜像服务的地址
——参考链接。
以下是一个简化的流程:
准备基础镜像:
从现有的稳定版本开始,比如使用官方或社区维护的基础镜像,如 registry.cn-hangzhou.aliyuncs.com/aliyun-fc/fc-stable-diffusion:realman-v16。
修改 Dockerfile:
在 Dockerfile 中,可以通过更改或添加 RUN、COPY、CMD 等指令来自定义配置、安装额外的依赖、集成插件或更新模型。
例如,如果你想安装一个新的插件(如 sd-webui-inpaint-anything),可以像下面这样操作:
FROM registry.cn-hangzhou.aliyuncs.com/aliyun-fc/fc-stable-diffusion:realman-v16
RUN git clone https://github.com/Uminosachi/sd-webui-inpaint-anything.git ${SD_BUILTIN}/extensions/sd-webui-inpaint-anything
RUN --mount=type=cache,target=/root/.cache/pip pip install <所需依赖>
RUN echo "inpaint-anything-v1" > /IMAGE_TAG
构建并推送镜像:
使用 Docker 构建命令创建新的镜像,替换 <您的 ACR 命名空间> 和 <您的 ACR 仓库地址> 以及 <版本号>:
docker build -t registry.cn-hangzhou.aliyuncs.com/<您的 ACR 命名空间>/<您的 ACR 仓库地址>:<版本号> .
登录阿里云容器镜像服务 ACR,并推送您的镜像。
部署自定义镜像:
在函数计算服务中,更新部署配置,使用您刚推送的自定义镜像地址。
验证与调整:
重新加载 WebUI 并检查新功能是否正常工作。如有需要,重复上述过程进行调整。
记得,自定义过程中可能需要对 WebUI 的配置、环境变量等进行相应调整,以确保所有组件协同工作。此外,考虑到合规性和性能因素,确保您有权使用并分发所包含的所有软件组件。 此回答整理自钉群“【交流群】函数计算 AIGC 场景技术交流”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。