关于serverless:如何用-Serverless-一键部署-Stable-Diffusion

40次阅读

共计 3316 个字符,预计需要花费 9 分钟才能阅读完成。

本篇章是阿里云函数计算部署 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=htt…

通过模版创立利用 -> 人工智能选项卡 -> 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,这样批改源码比拟不便。

其余注意事项

请关注对应的开源协定,避免您商业化可能的危险。

相干链接:

[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

作者:寒斜

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0