【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?

作者:寒斜

上一篇讲了如何使用 Serverless Devs 和函数计算快速体验部署 Stable Diffusion,本篇继续聊聊如何解决动态模型加载的问题,从玩起来到用起来。


思路


其实很简单, 我们只需要将镜像里面的动态路径映射到 NAS[1] 文件存储里面即可,利用 NAS 独立存储文件模型,扩展,语言包等,并且我们可以为管理 NAS 单独配置一个可视化的后台,用简单的文件上传删除的方式管理我们的文件,为此我们需要展开打镜像的脚本,为了完成全套的流程我们接下来盘一下整体的准备项。


准备项


1. 开通阿里云函数计算[2]

2. 文件存储 NAS(可以根据情况自己创建性能更好的实例)

3. 开通阿里云容器镜像服务 ACR[3]

4. 安装 Serverless Devs[4]


$ npm install @serverless-devs/s -g


5. 使用 Serverless Devs 配置阿里云密钥信息[5]


快速开始


初始化应用模板

s init fc-stable-diffusion-plus


选择 region:cn-hangzhou

输入镜像:registry.cn-hangzhou.aliyuncs.com/serverlessdevshanxie/sd-auto-nas:v1


部署应用模板

cd fc-stable-diffusion-plus && s deploy


部署需要花费一些时间(预估 5 分钟),之后你会收到两个域名返回。


fc-nas-init: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       nas-init
    runtime:    python3.9
    handler:    index.handler
    memorySize: 3072
    timeout:    1200
    cpu:        2
    diskSize:   512
fc-nas-filemgr: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       admin
    runtime:    custom
    handler:    index.handler
    memorySize: 3072
    timeout:    7200
    cpu:        2
    diskSize:   512
  url: 
    system_url:          https://xxx.cn-hangzhou.fcapp.run
    system_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.run
    custom_domain: 
      - 
        domain: http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net
  triggers: 
    - 
      type: http
      name: httpTrigger
keep-warm: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       keep-warm
    runtime:    python3
    handler:    index.handler
    memorySize: 128
    timeout:    120
    cpu:        0.1
    diskSize:   512
  triggers: 
    - 
      type: timer
      name: timerTrigger
stable-diffusion-sd-server: 
  region:   cn-hangzhou
  service: 
    name: fc-stable-diffusion-plus
  function: 
    name:       sd
    runtime:    custom-container
    handler:    index.handler
    memorySize: 32768
    timeout:    600
    cpu:        8
    diskSize:   10240
  url: 
    system_url:          https://xxx.cn-hangzhou.fcapp.run
    system_intranet_url: https://xxx.cn-hangzhou-vpc.fcapp.run
    custom_domain: 
      - 
        domain: http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net
  triggers: 
    - 
      type: http
      name: defaultTrigger


其中:

http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net 是后台管理页面

http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net  Stable Diffusion 作界面


上传模型

因为上面容器镜像中移除了模型部分,所以你现在还无法启动 Stable Diffusion 的操作界面,需要上传自己的模型,之后再去启动 Stable Diffusion 操作界面,上传模型有两个方法:


方法一

通过可视化界面上传,访问 http://admin.fc-stable-diffusion-plus.xxxx.cn-hangzhou.fc.devsapp.net,点点点,配好登录密码之后,进来到这个界面:文件管理,然后在路径栏里输入"/mnt/auto/sd"



image.png


你就看到自己熟悉的本地目录了~



然后再访问 models/Stable-diffusion/ 把模型拖进来就行。


不过值得注意的是,这种方式上传的模型超过 2、3 个 G 的时候会不稳定。所以如果你的模型很大,可以考虑用我们提供的 nas 指令。


方法二

使用 nas 指令上传,进入项目根目录,执行↓


s fc-nas-init nas upload -r <你的模型地址> /mnt/auto/sd/models/Stable-diffusion/


就可以,剩下的就是等待,可能要花费 30 分钟。


注:其他的如 controlNet,extension 可以按照类似的方式,不过注意对应的 nas 地址变一下。


页面预览

准备就绪后我们开始使用页面了,打开这个地址↓


http://sd.fc-stable-diffusion-plus.xxxxx.cn-hangzhou.fc.devsapp.net 冷启动会有一定的加载时间。


文生图


图生图


其他的自己可以多摸索摸索。


有奖体验


阿里云将提供免费 Serverless 函数计算产品资源,邀请你,体验一把 AIGC 级的毕加索、达芬奇、梵高等大师作画的快感。下面请尽情发挥你的想象空间!!双重奖品设置,完成体验场景可得社区 1000 积分兑换奖品,还可参加 AI 生成图像比赛赢取 Airpods、500 元猫超卡及社区定制抱枕!


🌏 体验地址:

https://developer.aliyun.com/topic/aigc


你也可以轻松做出下方画作👇👇


相关链接:

[1] NAS

https://www.aliyun.com/product/nas?spm=5176

[2] 函数计算

https://www.aliyun.com/product/fc?spm=5176.devs

[3] 容器镜像服务 ACR

https://www.aliyun.com/product/acr?spm=5176.28055625.J_3207526240.121.1d22154aWn0gl1&scm=20140722.M_4776670._.V_1

[4] Serverless Devs

https://docs.serverless-devs.com/serverless-devs/quick_start

[5] 配置阿里云密钥信息

https://docs.serverless-devs.com/serverless-devs/command/config#config-add-%E5%91%BD%E4%BB%A4


点击此处进入体验

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
监控 Serverless 对象存储
Serverless 应用引擎常见问题之用ECI部署Traefik时设置如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
237 2
|
1月前
|
存储 人工智能 物联网
【体验有奖】用 AI 画春天,函数计算搭建 Stable Diffusion WebUI
【体验有奖】用 AI 画春天,函数计算搭建 Stable Diffusion WebUI
|
2天前
|
测试技术 Linux Docker
【好玩的经典游戏】Docker部署FC-web游戏模拟器
【好玩的经典游戏】Docker部署FC-web游戏模拟器
24 1
|
9天前
|
监控 Serverless API
阿里云函数计算的工作原理与事件驱动模型密切相关
【4月更文挑战第17天】阿里云函数计算的工作原理与事件驱动模型密切相关
64 4
|
27天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
20 1
|
1月前
|
关系型数据库 Serverless 分布式数据库
Serverless 应用引擎常见问题之部署官方镜像如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
216 1
|
1月前
|
运维 监控 Serverless
一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务
本文介绍如何使用函数计算 GPU 实例闲置模式低成本、快速的部署 Google Gemma 模型服务。
164780 57
|
2月前
|
人工智能 数据管理 Serverless
阿里云数据库走向Serverless与AI驱动的一站式数据平台具有重大意义和潜力
阿里云数据库走向Serverless与AI驱动的一站式数据平台具有重大意义和潜力
407 2
|
2月前
|
人工智能 运维 Cloud Native
、你如何看待阿里云数据库走向Serverless与AI驱动的一站式数据平台?
、你如何看待阿里云数据库走向Serverless与AI驱动的一站式数据平台?
149 2
|
2月前
|
人工智能 数据管理 大数据
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
34 2