基於 Amazon SageMaker Notebook 快速搭建託管的 Stable Diffusion – AI 作圖視覺化環境
適合企業級客戶對生成式 AI 圖片(AIGC)做前期的研究和快速驗證,小型團隊可快速搭建輕量級 AI 生成圖片的應用的業務場景。
簡介
本文主要介紹如何使用 Amazon SageMaker Notebook 機器學習服務輕鬆託管 Stable Diffusion WebUI,一鍵部署開箱即用的 AI 生成圖片方向輕量級應用。通過 Amazon CloudFormation 基礎設施即代碼的服務,實現底層 Infra 環境、AI 模型和前端 Stable Diffusion WebUI 的部署,以及一套文生圖、圖生圖的 AI 應用。
此方案適合:
1. 企業級客戶對 AIGC 圖片方向做前期研究和快速驗證
2. 小型團隊快速搭建輕量級 AI 生成圖片的業務場景。
[註]:此方案目前提供基於 Stable Diffusion 1.5 版本的圖片生成,基於 dreambooth 的圖片訓練和推論,讀者可持續關注後續方案的功能反覆運算。
Amazon SageMaker
Amazon SageMaker 的功能 | 前 2 個月的每月使用情況 |
Studio 筆記本以及筆記本 instance | Studio 筆記本以及筆記本instance Studio 筆記本上的 250 個小時 ml.t3.medium instance,或者筆記本 instance上的 250 個小時 ml.t2 medium instance 或 ml.t3.medium instance |
RStudio on SageMaker | RSession 應用程式上 250 個小時的 ml.t3.medium instance和 RStudioServerPro 應用程式的免費 ml.t3.medium instance |
Data Wrangler | 25 個小時 ml.m5.4xlarge instance |
特徵存放區 | 1000 萬個寫單元,1000 萬個讀單元,25 GB 存儲 |
培訓 | 50 個小時 m4.xlarge 或 m5.xlarge instance |
即時推理 | 125 個小時 m4.xlarge 或 m5.xlarge instance |
無伺服器推理 | 150000 秒推理持續時間 |
Canvas | 會話時間為 750 小時/月,每月最多 10 個模型創建請求,每個請求最多 100 萬個單元/模型創建請求 |
*如您不打算繼續使用 Stable Diffusion,請記得關閉 instance, 以避免額外費用產生!
建立新帳戶
- 免費使用 100 餘種雲產品或服務, 長達 12 個月,任選 AWS 海外區域節點。
- 本教程建議使用美東伺服器(us-east-1)
1. 方案架構
2. 方案優勢
- 本方案使用 CloudFormation 一鍵部署,僅需點擊幾個步驟,即可快速在您的 AWS 帳戶中成功部署一套 AI 生成圖片方向的 web 應用環境,交互介面簡潔友好,説明使用者快速體驗文字生成圖片、圖片生成圖片等 AI 服務。
- 底層使用 Amazon SageMaker Notebook Instance 託管的 Jupyter 筆記本 instance,您無需關心基礎 IT 開發環境(如存儲、網路等)的構建及底層基礎設施維運。
- 方案基於 Stable Diffusion 模型構建服務(1.5 輕量版本,包含 Stable Diffusion WebUI 與 InvokeAI 兩個介面),具備良好的開源專案使用體驗,並支援根據您的需要安裝外掛程式以擴展使用場景(如 ControlNet)。
- 使用者可使用自有的圖片資料微調模型,產出的模型可基於自動化流水線工具快速部署上線至推論節點,方便規模化的圖片推論調用。
- 本方案完全開源,用戶可以在 SageMaker Notebook 中對模型和擴展(extension)客製化改造,滿足自身業務需求。
3. 方案組件
3.1 Amazon SageMaker Notebook
Amazon SageMaker 筆記本 instance 是運行 Jupyter Notebook 應用程式的機器學習 (ML) 計算instance。 SageMaker 管理 instance 和相關資源的創建。在您的筆記本 instance 中使用 Jupyter 筆記本來準備和處理資料、編寫代碼來訓練模型、將模型部署到 SageMaker 託管,以及測試或驗證您的模型。
3.2 Stable Diffusion 模型
Stable Diffusion 是由 CompVis 、 Stability AI 和 LAION 共同開發的一個文字生成圖片模型,它通過 LAION-5B 子集大量的 512×512 圖文模型進行訓練,使用者只要簡單的輸入一段文字,Stable Diffusion 就可以迅速將其轉換為圖片。同樣,使用者也可以置入圖片或影片,配合文字對其進行處理。
3.3 使用者交互介面
3.3.1 Stable Diffusion WebUI + 使用範例參考
Stable Diffusion WebUI 是 Stable Diffusion 的一個瀏覽交互介面,它提供了多種功能,如 txt2img、img2img 等,還包含了許多模型融合改進、圖片品質修復等附加升級。通過調整不同參數可以生成不同效果,使用者可以根據自己的需要和喜好進行創作。它不僅支援生成圖片,使用各種各樣的模型來達到你想要的效果,還能訓練你自己的專屬模型。
以文字生成圖片為例,使用者可在 “txt2img” 介面,使用提示詞生成期望圖片,步驟如下:
- 點擊 “txt2img” 進入文字生圖介面
- 在提示詞輸入框內輸入提示詞
- 點擊 “Generate” 按鈕即可生成圖片
1. 生成一對 90 年代中國情侶,尺寸 512×512,一次生成 4 張圖
提示詞(Prompt):A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen
2. 生成背景為雛菊的羅馬士兵半身像,尺寸 512×512,一次生成 4 張圖
提示詞(Prompt):A roman soldier with daisies in the background, bust figure
3.3.2 InvokeAI + 使用範例參考
InvokeAI 是 Stable Diffusion 的一個實現方式,它是開源文字到圖片和圖片到圖片生成器。 它提供了一個具有各種新功能和選項的簡化流程,以説明圖片生成過程。
提示詞(Prompt):temple in ruines, forest, stairs, columns
提示詞(Prompt):A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen
3.4 方案部署
3.4.1 方案部署操作步驟
1. 登入控制台,在控制台頁面右上角切換區域至 us-east-1。
2. 在 Service 搜索框中輸入 Cloudformation,點擊進入。
3. 在 Service Quotas 申請提高 Instance 的限額 - 點擊進入。
4. 在介面內選擇 SageMaker, 搜尋 g5.2xlarge,點擊 ml.g5.2xlarge for notebook instance usage
5. 按 “Request quota increase” ,申請提升 g5.2xlarge 的限額。
6. 創建堆疊 - 使用新資源(標準)- 當你的提升 g5.2xlarge 申請獲批準後,便可以在Amazon S3 URL,填入 https://xiekl.s3.cn-northwest-1.amazonaws.com.cn/sd-webui.yml。
7. 填入堆疊名稱,Instance Type 建議選擇 g5.2xlarge(可能產生小額費用,每小時約 1.52 美金,歡迎使用 AWS 美金 25 元抵用金折抵),磁片 Volume 大小預設為 100G,選擇 WebUI Type,默認是 auto 代表 Stable Diffusion WebUI,WebUI Version 選擇 0316,點擊 “下一步” 。
8. 設置保持預設,點擊 “下一步”。
9. 確認配置(維持預設即可),勾選 “我確認…”,點擊 “提交” ,等待 15-20 分鐘部署完成。
3.4.2 使用 Stable Diffusion WebUI 進行文字生圖
1. 創建堆疊後等待資源陸續啟動(約 20 分鐘),待堆疊狀態顯示為 “CREATE_COMPLETE” 後,點擊 “輸出”。點擊 “鍵” 為 “WebUI URL” 相應的 “值” 位置的 URL。
2. 進入 WebUI 介面,輸入 prompt,點擊 generate 即可生成圖片。
3.4.3 使用 Stable Diffusion WebUI 進行訓練(微調)
下面介紹如何使用 Stable Diffusion WebUI 訓練您自己的圖片。
1. 首先要創建一個模型。導航到 DreamBooth 頁面。
2. 創建成功後,如下圖所示。
3. 設置訓練參數,導航到 Select 頁面,如圖所示。
4. 在 input 頁面,設置 Setting,Basic 的參數保持預測即可,點擊右側箭頭。
5. 點擊 Advance 右側箭頭,展開選項卡。在 Mixed Precision 選擇 fp16,Memory Attention 選擇 xformers,其他選項保持預設即可,如下圖所示。
6. 點擊 Concepts 選項卡,在 Dataset Directory 輸入 instance 圖片所在的目錄。我們事先準備了範例圖片 在 /data/images 中,讀者也可以把自己的影像檔案放在該目錄中。
7. 向下拉動捲軸,在 Instance Prompt 中輸入”a photo of a zxw dog”,在 Class Prompt 中輸入”a photo of dog”,其他保持預測。
8. 點擊頁面上方的 ”Train” 按鈕。
9. 觀察右側 Output 選項卡的訓練進度,等待訓練完成。
10. 訓練完成後,點擊重新整理按鈕,模型列表中將出現剛訓練好的模型,選擇新訓練的模型。
11. 點擊 txt2img,跳轉到文字生成圖片頁面。輸入 Prompt,注意要帶上 zwx 首碼,查看結果。
12. 下面介紹如何用自己的圖片進行訓練。在 Cloudfomation 的輸出中,點擊 NotebookURL 連結。
13. 如下圖所示,點擊 sd-webui 進入到 data/images/資料夾。在檔案上依次點擊右鍵,刪除檔案。
14. 點擊 Upload files 按鈕,上傳您自己的圖片作為訓練集。上傳完成後,重複上述步驟完成訓練過程。
4. 總結
本文簡單介紹了如何使用託管的筆記本服務 SageMaker Notebook 來一鍵部署 Stable Diffusion WebUI,輕鬆構建 AI 生成圖片的介面化、快速驗證環境。方案只需點擊幾次即可實現自動化部署,基於託管服務的特性讓您無需擔心底層 Infra 基礎設施的搭建與運維,同時擁有良好的開源專案體驗。您還可以使用自己的圖片對模型進行微調,為客製化需求的生成式 AI 應用工具做好準備。
免費註冊 AWS 帳號,領取獨家好禮