【换模型更简单】如何用 Serverless 一键部署 Stable Diffusion?
作者|寒斜(阿里云智能技术专家)
前文回顾
AI 作画火了,如何用 Serverless 函数计算部署 Stable Diffusion?
【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?
本篇章是阿里云函数计算部署stablediffusion系列的第三篇,如果说第一篇是尝试使用云服务来解决用户本地部署sd的问题(显卡成本,部署技术复杂),第二篇是面向技术同学解决云服务sd的实用性问题(自定义模型,扩展),那么本篇则是以更大众的方式实现本地电脑的平替,使得人人皆可拥有一套实用的sd服务,不管你是普通用户,或者是技术同学,皆可适用。
前置条件
- 1.注册并登录阿里云账号
- 2.开通函数计算
- 3.开通文件存储Nas服务
大家不用通费用的问题,本身函数计算和文件存储Nas都是使用的时候才去计费,而且费用比较低廉。
快速开始
通过模版创建应用-> 人工智能选项卡-> AI数字绘画stable-diffusion自定义模板->立即创建
填写表单项
选择直接部署-> 杭州地域 -> 复制开发者准备好的容器镜像
点击创建并部署默认环境。
应用部署
接下来什么都不需要操作,等待应用部署即可,约花费5-10分钟, 如果你是技术同学,可以展开看看我们提供的部署日志,观察部署过程
配置管理后台
部署成功后得到两个域名
其中sd开头的是主服务,目前因为没镜像还不能访问,admin开头的是我们的管理后台,接下来我们需要先配置一下管理后台,然后把我们的模型上传上去
管理后台使用的是 可道云提供的 kod-box,对于你而言一路点点点,就可以
等初始化好之后,设置自己的登录账号和密码
之后进行登录
登录后在路径输入 /mnt/auto/sd
如果你熟悉sd-webui的目录的话,你可以看到对应的目录
接下来我们打开/mnt/auto/sd/models/Stable-diffusion/ ,然后点击上传->离线下载
在这里我们输入sd1.5的模型地址
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
当然,你也可以输入任意自己的地址,除了下载,你也可以把本地的模型直接拖拽上传。
因为模型较大,下载时间预计花费5-15分钟,可以休息等待一下(如果提升出错可以忽略)
另外需要格外注意,如果是从huggingface源站下载下来的文件,需要把文件后缀改一下。比如这里,需要确保文件的名字是严格的 比如sd-v1-5-inpainting.ckpt这种
模型下载完,我们可以打开sd的服务了
源码定制
在这里也贴上构建镜像的源码,如果您是一名开发同学,可以构建自己的镜像
基于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镜像,修改相关的参数。
如何访问到 sd 的api
需要定制镜像,开启 --api 参数,然后访问 /docs 查看可调用api
资费部分
本次应用依赖函数计算和Nas文件存储,使用前请先领取相应的免费额度或者购买响应的资源包,具体的资费说明,请参考官网说明
更灵活的定制方案
可以尝试将整个 webui 目录映射直nas, 这样修改源码比较方便。
其他注意事项
请关注对应的开源协议,防止您商业化可能得风险。
【换模型更简单】如何用 Serverless 一键部署 Stable Diffusion?的更多相关文章
- 如何用Serverless让SaaS获得更灵活的租户隔离和更优的资源开销
关于SaaS和Serverless,相信关注我的很多读者都已经不陌生,所以这篇不会聊它们的技术细节,而将重点放在SaaS软件架构中引入Serverless之后,能给我们的SaaS软件带来多大的收益. ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- 【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单
一.引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两 ...
- Java I/O模型的简单说明
1.同步和异步 同步:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行,最简单的例子就是顺序的执行两个方法,当第 ...
- spring 第一篇(1-1):让java开发变得更简单(下)转
spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...
- [翻译]Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- iOS 让CoreData更简单些
原文:http://www.cocoachina.com/ios/20170421/19096.html 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而 ...
- Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- 转:[你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...
- [你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...
随机推荐
- 公司要做大数据可视化看板,除了EXCEL以外有没有好用的软件可以用
当企业需要进行大数据可视化看板的设计和开发时,除了Excel,还有许多其他强大且适合大数据可视化的软件工具.以下是几种常用的好用软件,以及它们的特点和优势,供您参考. 一.Datainside 特点和 ...
- 吉特日化MES配料工艺参数标准版-第二版
作者:情缘 出处:http://www.cnblogs.com/qingyuan/ 关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路 版权声明:本文版权归作者和博客园共有 ...
- LeetCode331:验证二叉树的前序序列化(递归)
解题思路:把所有元素存成数组,设置一个全局下标next,表示当前节点如果要继续遍历应当从数组的哪个位置开始,然后从下标 0 开始DFS.如果DFS返回真并且next下标等于数组的长度,说明元素已经全部 ...
- 三维GIS引擎用什么好?结合目前市面上的主流引擎进行分析
相信大多数人在谈到三维GIS引擎时,第一个想到的首先是CesiumJS,CesiumJS以其免费开源的特点,快速占领了三维GIS这个领域,同时也催生了许多以CesiumJS为基础的衍生产品.Cesiu ...
- 【C#】【IO】【实例】接上一个统计的新功能
先用Python来创建多层级文件夹: import os root_path = r"C:\Users\Desktop\文案整理\Practice" for item in ran ...
- 初探 Linux Cgroups:资源控制的奇妙世界
Cgroups 是 linux 内核提供的功能,由于牵涉的概念比较多,所以不太容易理解.本文试图通过简单的描述和 Demo 帮助大家理解 Cgroups . 如果你对云原生技术充满好奇,想要深入了解更 ...
- QRCoder1.4.3生成二维码,不依赖System.Drawing,解决"未能找到类型或命名空间名QRCode","及ImageFormatPng仅在windows上受支持"
生成二维码1(简单) 包引用: <PackageReference Include="QRCoder" Version="1.4.3" /> usi ...
- 六一新玩法!AI涂鸦秒变精美艺术画
摘要:上华为云ModelArts体验AI涂鸦新玩法,赢漫威复仇者联盟乐高!祝大小朋友们六一儿童节快乐~ 本文分享自华为云社区<[云享热点]六一新玩法!AI 涂鸦秒变精美艺术画>,作者:华为 ...
- Go语言微服务开发框架:Go chassis
摘要:分布式系统中每个进程的动态配置管理及运行时热加载就成为了一个亟待解决的问题.go chassis汲取了netflix的archaius框架经验,并做出来自己的创新特性. 引言 https://g ...
- 华为云CodeArts Req需求管理工具,7大特性限时免费体验
摘要:一图了解什么是华为云CodeArts Req 本文分享自华为云社区<华为云CodeArts Req需求管理工具,7大特性限时免费体验>,作者:华为云PaaS服务小智. 一图了解什么是 ...