暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

阿里云云原生 2023-05-05
458

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

思路




Cloud Native

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

准备项




Cloud Native

1. 开通阿里云函数计算[2]
2. 文件存储 NAS(可以根据情况自己创建性能更好的实例)
3. 开通阿里云容器镜像服务 ACR[3]

4. 安装 Serverless Devs[4]

    $ npm install @serverless-devs/s -g

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

    快速开始




    Cloud Native

    初始化应用模板

      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"
          你就看到自己熟悉的本地目录了~
          然后再访问 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 冷启动会有一定的加载时间。

            文生图

            图生图

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

            有奖体验




            Cloud Native

            阿里云将提供免费 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

            点击阅读原文进入体验

            文章转载自阿里云云原生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论