快速搭建托AI作畫可視化環(huán)境

本文主要介紹如何使用 Amazon SageMaker Notebook 機(jī)器學(xué)習(xí)服務(wù)輕松托管 Stable Diffusion WebUI,一鍵部署開箱即用的 AIGC 圖片方向輕量級應(yīng)用。通過 Amazon CloudFormation 基礎(chǔ)設(shè)施即代碼的服務(wù),實(shí)現(xiàn)底層環(huán)境、AI 模型和前端 Stable Diffusion WebUI 的快速部署,幫助用戶在 15~20 分鐘部署一套文生圖、圖生圖的 AI 應(yīng)用。此方案適合企業(yè)級客戶對 AIGC 圖片方向做前期調(diào)研和快速驗(yàn)證、小型團(tuán)隊快速搭建輕量級 AI 應(yīng)用的業(yè)務(wù)場景。
[注]:此方案目前提供基于 Stable Diffusion 1.5 的圖片生成,基于 dreambooth 的圖片訓(xùn)練和推理;暫不提供腳本(script)和插件(extension)的技術(shù)支持,讀者可持續(xù)關(guān)注后續(xù)方案的功能迭代。
1. 方案架構(gòu)

2. 方案優(yōu)勢
本方案使用 CloudFormation 一鍵部署,僅需點(diǎn)擊幾個步驟,即可快速在您的 AWS 賬戶中成功部署一套 AIGC 圖片方向的 web 應(yīng)用環(huán)境,交互界面簡潔友好,幫助用戶快速體驗(yàn)文本生成圖片、圖片生成圖片等 AI 服務(wù)。
底層使用 Amazon SageMaker Notebook Instance 托管的 Jupyter 筆記本實(shí)例,您無需關(guān)心基礎(chǔ)環(huán)境(如存儲、網(wǎng)絡(luò)等)的構(gòu)建及底層基礎(chǔ)設(shè)施運(yùn)維。
方案采用全托管的 Stable Diffusion AI 模型服務(wù)(1.5 輕量版本,包含 Stable Diffusion WebUI 與 InvokeAI 兩個界面),具備良好的開源項目使用體驗(yàn),并支持根據(jù)您的需要安裝插件以擴(kuò)展使用場景(如 ControlNet)。
用戶可使用自帶的圖片數(shù)據(jù)微調(diào)模型,產(chǎn)出的模型可基于自動化流水線工具快速部署上線至推理節(jié)點(diǎn),方便規(guī)?;膱D片推理調(diào)用。
本方案完全開源,用戶可以在 SageMaker Notebook 中對模型和擴(kuò)展(extension)定制開發(fā),滿足自身業(yè)務(wù)需求。
3. 方案組件
3.1 Amazon SageMaker Notebook
Amazon SageMaker 筆記本實(shí)例是運(yùn)行 Jupyter Notebook 應(yīng)用程序的機(jī)器學(xué)習(xí) (ML) 計算實(shí)例。 SageMaker 管理實(shí)例和相關(guān)資源的創(chuàng)建。在您的筆記本實(shí)例中使用 Jupyter 筆記本來準(zhǔn)備和處理數(shù)據(jù)、編寫代碼來訓(xùn)練模型、將模型部署到 SageMaker 托管,以及測試或驗(yàn)證您的模型。
3.2 Stable Diffusion 模型
Stable Diffusion 是由 CompVis 、 Stability AI 和 LAION 共同開發(fā)的一個文本轉(zhuǎn)圖像模型,它通過 LAION-5B 子集大量的 512×512 圖文模型進(jìn)行訓(xùn)練,用戶只要簡單的輸入一段文本,Stable Diffusion 就可以迅速將其轉(zhuǎn)換為圖像。同樣,用戶也可以置入圖片或視頻,配合文本對其進(jìn)行處理。
3.3 用戶交互界面
3.3.1 Stable Diffusion WebUI + 使用示例參考
Stable Diffusion WebUI?是 Stable Diffusion 的一個瀏覽器交互界面,它提供了多種功能,如 txt2img、img2img 等,還包含了許多模型融合改進(jìn)、圖片質(zhì)量修復(fù)等附加升級。通過調(diào)節(jié)不同參數(shù)可以生成不同效果,用戶可以根據(jù)自己的需要和喜好進(jìn)行創(chuàng)作。它不僅支持生成圖片,使用各種各樣的模型來達(dá)到你想要的效果,還能訓(xùn)練你自己的專屬模型。
以文字生成圖片為例,用戶可在“txt2img”界面,使用提示詞生成期望圖片,步驟如下:
點(diǎn)擊“txt2img”進(jìn)入文生圖界面
在提示詞輸入框內(nèi)輸入提示詞
點(diǎn)擊“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 的一個實(shí)現(xiàn),它是開源文本到圖像和圖像到圖像生成器。 它提供了一個具有各種新功能和選項的簡化流程,以幫助圖像生成過程。
提示詞(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. 登錄控制臺,在控制臺頁面右上角切換區(qū)域至 us-east-1。

2. 在 Service 搜索框中輸入 Cloudformation,點(diǎn)擊進(jìn)入。

3. 創(chuàng)建堆棧 -使用新資源(標(biāo)準(zhǔn))- Amazon S3 URL,填入?https://xiekl.s3.cn-northwest-1.amazonaws.com.cn/sd-webui.yml。

4. 填入堆棧名稱,Instance Type 建議選擇 g5.2xlarge,磁盤 Volume 大小默認(rèn)為 100G,選擇 WebUI Type,默認(rèn)是 auto 代表 Stable Diffusion WebUI,WebUI Version 選擇 0316,點(diǎn)擊“下一步”?。

5. 設(shè)置保持默認(rèn),點(diǎn)擊“下一步”。

6. 確認(rèn)配置(維持默認(rèn)即可),勾選“我確認(rèn)…”,點(diǎn)擊“提交” ,等待 15-20 分鐘部署完成。

3.4.2 使用 Stable Diffusion WebUI 進(jìn)行文生圖
1. 創(chuàng)建堆棧后等待資源陸續(xù)啟動(約 20 分鐘),待堆棧狀態(tài)顯示為“CREATE_COMPLETE”后,點(diǎn)擊“輸出”。點(diǎn)擊“鍵”為“WebUI URL”相應(yīng)的“值”位置的 URL。

2. 進(jìn)入 WebUI 界面,輸入 prompt,點(diǎn)擊 generate 即可生成圖片。

3.4.3 使用 Stable Diffusion WebUI 進(jìn)行訓(xùn)練(微調(diào))
下面介紹如何使用 Stable Diffusion WebUI 訓(xùn)練您自己的圖片。
1. 首先要創(chuàng)建一個模型。導(dǎo)航到 DreamBooth ?面。

2. 創(chuàng)建成功后,如下圖所示。

3. 設(shè)置訓(xùn)練參數(shù),導(dǎo)航到 Select ?面,如圖所。

4. 在 input ?面,設(shè)置 Setting,Basic 的參數(shù)保持默認(rèn)即可,點(diǎn)擊右側(cè)箭。

5. 點(diǎn)擊 Advance 右側(cè)箭頭,展開選項卡。在 Mixed Precision 選擇 fp16,Memory Attention 選擇 xformers,其他選項保持默認(rèn)即可,如下圖所示。

6. 點(diǎn)擊 Concepts 選項卡,在 Dataset Directory 輸入實(shí)例圖片所在的目錄。我們事先準(zhǔn)備了示例圖片 在/data/images 中,讀者也可以把自己的圖像文件放在該目錄中。

7. 向下拉動滾動條,在 Instance Prompt 中輸入”a photo of a zxw dog”,在 Class Prompt 中輸入”a photo of dog”,其他保持默認(rèn)。

8. 點(diǎn)擊?面上方的”Train”按鈕。

9. 觀察右側(cè) Output 選項卡的訓(xùn)練進(jìn)度,等待訓(xùn)練完成。

10. 訓(xùn)練完成后,點(diǎn)擊刷新按鈕,模型列表中將出現(xiàn)剛訓(xùn)練好的模型,選擇新訓(xùn)練的模型。

11. 點(diǎn)擊 txt2img,跳轉(zhuǎn)到文生圖?面。輸入 Prompt,注意要帶上 zwx 前綴,查看結(jié)果。

12. 下面介紹如何用自己的圖片進(jìn)行訓(xùn)練。在 Cloudfomation 的輸出中,點(diǎn)擊 NotebookURL 鏈接。

13. 如下圖所示,點(diǎn)擊 sd-webui 進(jìn)入到 data/images/文件夾。在文件上依次點(diǎn)擊右鍵,刪除文件。

14. 點(diǎn)擊 Upload files 按鈕,上傳您自己的圖片作為訓(xùn)練集。上傳完成后,重復(fù)上述步驟完成訓(xùn)練過程。

4. 總結(jié)
本文簡單介紹了如何使用托管的筆記本服務(wù) SageMaker Notebook 來一鍵部署 Stable Diffusion WebUI,輕松構(gòu)建 AI 生成圖片的界面化、快速驗(yàn)證環(huán)境。方案只需點(diǎn)擊幾次即可實(shí)現(xiàn)自動化部署,基于托管服務(wù)的特性讓您無需憂心底層基礎(chǔ)設(shè)施的搭建與運(yùn)維,同時擁有良好的開源項目體驗(yàn)。您還可以使用自己的圖片對模型進(jìn)行微調(diào),為定制特色的 AIGC 應(yīng)用做好準(zhǔn)備。
計算支持:aws?https://aws.amazon.com/cn/free/
參考資料:
https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/
https://github.com/AbdBarho/stable-diffusion-webui-docker
https://github.com/AUTOMATIC1111/stable-diffusion-webui
https://github.com/invoke-ai/InvokeAI