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

共 6471字,需浏览 13分钟

 ·

2023-05-14 21:34

5846f3239aa9ece9ba439af932fafa49.webp作者 | 寒斜(阿里云智能技术专家) 一篇讲了 如何使用 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"

ce34abfc20d70147454dd60620786a4a.webp

111a086a8d659b0198249372b7b3767e.webp

89354773e9b5011c2be9261af6567c2e.webp

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

511f43d1b46cf3e20fa2aebe851c6c70.webp

然后再访问 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 冷启动会有一定的加载时间。

文生图

707907a6c72fca1120509c3a919a97ee.webp

图生图

a7f9818c23367da2b3dcfd49711a7f43.webp

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

有奖体验


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

🌏 体验地址: https://developer.aliyun.com/topic/aigc 你也可以轻松做出下方画作👇👇

aece8f0d07513bb01767a474e3ea3bcd.webp

相关链接:

[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
51d65080d87adcde0b66082ba74981c9.webp 点击阅读原文立即部署!
浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报