作者:寒斜
本篇章是阿里云函数计算部署 Stable Diffusion 系列的第三篇,如果说第一篇是尝试应用云服务来解决用户本地部署 Stable Diffusion 的问题(显卡老本,部署技术简单),第二篇是面向技术同学解决云服务 Stable Diffusion 的实用性问题(自定义模型,扩大),那么本篇则是以更公众的形式实现本地电脑的平替,使得人人皆可领有一套实用的 Stable Diffusion 服务,不论你是普通用户,或者是技术同学,皆可实用。
前置条件
1. 注册并登录阿里云账号 [ 1]
2. 开明函数计算 [ 2]
3. 开明文件存储 NAS 服务 [ 3]
函数计算和文件存储 NAS 都是应用的时候才去计费,目前,函数计算和文件存储 NAS 都有新用户收费额度,能够去阿里云官网支付。
疾速开始
首先进入利用核心:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Ffcnext.console.aliyun.com%2Fapplications&lang=zh
通过模版创立利用 -> 人工智能选项卡 -> AI 数字绘画 Stable-Diffusion 自定义模板 -> 立刻创立。
填写表单项
抉择间接部署 -> 杭州地区 -> 复制开发者筹备好的容器镜像点击创立并部署默认环境。
利用部署
接下来什么都不须要操作,期待利用部署即可,约破费 5-10 分钟,如果你是技术同学,能够开展看看咱们提供的部署日志,察看部署过程。
配置管理后盾
部署胜利后失去两个域名。
其中 Stable Diffusion 结尾的是主服务,目前因为没镜像还不能拜访,admin 结尾的是咱们的治理后盾,接下来咱们须要先配置一下治理后盾,而后把咱们的模型上传上去。
治理后盾应用的是可道云提供的 kod-box,对于你而言一路点点点,就能够。
等初始化好之后,设置本人的登录账号和明码:
之后进行登录:
登录后在门路输出 /mnt/auto/sd。
如果你相熟 sd-webui 的目录的话,你能够看到对应的目录:
接下来咱们关上 /mnt/auto/sd/models/Stable-diffusion/,而后点击上传 -> 离线下载。
在这里咱们输出 sd1.5 的模型地址:https://huggingface.co/runwayml/stable-diffusion-inpainting/r…
当然,你也能够输出任意本人的地址,除了下载,你也能够把本地的模型间接拖拽上传。
因为模型较大,下载工夫预计破费 5-15 分钟,能够劳动期待一下(如果提醒出错能够疏忽)。
另外须要分外留神,如果是从 huggingface 源站下载下来的文件,须要把文件后缀改一下。
模型下载完,咱们能够关上 Stable Diffusion 的服务了。
源码定制
在这里也贴上构建镜像的源码,如果您是一名开发同学,能够构建本人的镜像。
基于↓
https://github.com/AbdBarho/stable-diffusion-webui-docker/tree/master/services/AUTOMATIC1111
这个我的项目,替换其中的 entrypoint.sh
#!/bin/bash
set -Eeuo pipefail
# TODO: move all mkdir -p ?
mkdir -p /mnt/auto/sd/config/auto/scripts/
# mount scripts individually
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
cp -vrfTs /mnt/auto/sd/config/auto/scripts/ "${ROOT}/scripts/"
cp -n /docker/config.json /mnt/auto/sd/config/auto/config.json
jq '. * input' /mnt/auto/sd/config/auto/config.json /docker/config.json | sponge /mnt/auto/sd/config/auto/config.json
if [! -f /mnt/auto/sd/config/auto/ui-config.json]; then
echo '{}' >/mnt/auto/sd/config/auto/ui-config.json
fi
declare -A MOUNTS
MOUNTS["/root/.cache"]="/mnt/auto/sd/.cache"
# main
MOUNTS["${ROOT}/models"]="/mnt/auto/sd/models"
MOUNTS["${ROOT}/embeddings"]="/mnt/auto/sd/embeddings"
MOUNTS["${ROOT}/config.json"]="/mnt/auto/sd/config/auto/config.json"
MOUNTS["${ROOT}/ui-config.json"]="/mnt/auto/sd/config/auto/ui-config.json"
MOUNTS["${ROOT}/extensions"]="/mnt/auto/sd/config/auto/extensions"
MOUNTS["${ROOT}/outputs"]="/mnt/auto/sd/config/auto/outputs"
MOUNTS["${ROOT}/extensions-builtin"]="/mnt/auto/sd/extensions-builtin"
MOUNTS["${ROOT}/configs"]="/mnt/auto/sd/configs"
MOUNTS["${ROOT}/localizations"]="/mnt/auto/sd/localizations"
# extra hacks
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/mnt/auto/sd/.cache"
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
if [! -f "$from_path"]; then
mkdir -vp "$from_path"
fi
mkdir -vp "$(dirname"${to_path}")"
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done
if [-f "/mnt/auto/sd/config/auto/startup.sh"]; then
pushd ${ROOT}
. /mnt/auto/sd/config/auto/startup.sh
popd
fi
exec "$@"
定制好本人的镜像之后替换下面流程中须要填写的镜像局部即可,留神对应好地区。
Q&A
下载模型不可用
须要查看模型的文件命名是否正确。
插件无奈在线装置
容器镜像部署有平安限度,能够将插件下载到本地,而后通过治理后台上传到 extensions 目录下,如果想反对通过 url,须要自行定制 docker 镜像,批改相干的参数。
如何拜访到 Stable Diffusion 的 api
须要定制镜像,开启 –api 参数,而后拜访 /docs 查看可调用 api。
资费局部
本次利用依赖函数计算和 NAS 文件存储,应用前请先支付相应的收费额度或者购买相应的资源包,具体的资费阐明,请参考官网阐明。
更灵便的定制计划
能够尝试将整个 webui 目录映射至 NAS,这样批改源码比拟不便。
其余注意事项
请关注对应的开源协定,避免您商业化可能的危险。
有奖体验
阿里云将 提供收费 Serverless 函数计算产品资源 ,邀请你,体验一把 AIGC 级的毕加索、达芬奇、梵高等巨匠作画的快感。上面请纵情施展你的设想空间!!双重奖品设置,实现体验场景可得社区 1000 积分兑换奖品,还可加入 AI 生成图像较量 赢取 Airpods、500 元猫超卡及社区定制抱枕!
🌏 体验地址:
https://developer.aliyun.com/topic/aigc
你也能够轻松做出下方画作👇👇
相干链接:
[1] 注册并登录阿里云账号
https://account.aliyun.com/login/login.htm
[2] 开明函数计算
https://www.aliyun.com/product/fc?spm=5176.devs
[3] 开明文件存储 Nas 服务
https://www.aliyun.com/product/nas
点击此处进入体验