【自己更換模型】如何用 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
  1. 使用 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

image

image.png

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

image

然後再訪問 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 冷啓動會有一定的加載時間。

文生圖

image

圖生圖

image

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

有獎體驗

阿里雲將提供免費 Serverless 函數計算產品資源,邀請你,體驗一把 AIGC 級的畢加索、達芬奇、梵高等大師作畫的快感。下面請盡情發揮你的想象空間!!雙重獎品設置,完成體驗場景可得社區 1000 積分兌換獎品,還可參加 AI 生成圖像比賽贏取 Airpods、500 元貓超卡及社區定製抱枕!

🌏 體驗地址:

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

你也可以輕鬆做出下方畫作👇👇

image

相關鏈接:

[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

點擊此處進入體驗

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章