本文為您介紹如何在DSW中,快速啟動Stable Diffusion WebUI,實現SD(Stable Diffusion)模型推理。
背景信息
AIGC是指通過人工智能技術自動生成內容的生產方式,已經成為繼互聯網時代的下一個產業時代風口。其中,文生圖(Text-to-image Generation)任務是流行的跨模態生成任務,旨在生成與給定文本對應的圖像。本教程啟動Stable-Diffusion-WebUI進行SD模型推理的示例效果如下所示。
準備環境和資源
開通PAI并創建工作空間,詳情請參見開通PAI并創建默認工作空間。
創建DSW實例,其中關鍵參數配置如下。具體操作,請參見創建DSW實例。
地域及可用區:進行本實踐操作時,建議選擇華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)這四個地域。這四個地域在后續操作中下載ChatGLM模型數據時速度更快。
實例規格選擇:ecs.gn6v-c8g1.2xlarge。
鏡像選擇:在官方鏡像中選擇
stable-diffusion-webui-develop:1.0-pytorch2.0-gpu-py310-cu117-ubuntu22.04
。
步驟一:下載stable-diffusion-webui開源庫及其它依賴
打開DSW實例,在Notebook頁簽的Launcher頁面,單擊快速開始區域Notebook下的Python3。
在Notebook中執行以下代碼進行下載。
import os ! apt update ! apt install -y aria2 def aria2(url, filename, d): !aria2c --console-log-level=error -c -x 16 -s 16 {url} -o {filename} -d z68uejxpaoma url_prefix = { "cn-shanghai": "http://pai-vision-data-sh.oss-cn-shanghai-internal.aliyuncs.com", "cn-hangzhou": "http://pai-vision-data-hz2.oss-cn-hangzhou-internal.aliyuncs.com", "cn-shenzhen": "http://pai-vision-data-sz.oss-cn-shenzhen-internal.aliyuncs.com", "cn-beijing": "http://pai-vision-data-bj.oss-cn-beijing-internal.aliyuncs.com", } dsw_region = os.environ.get("dsw_region") prefix = url_prefix[dsw_region] if dsw_region in url_prefix else "http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com" webui_url = f"{prefix}/aigc-data/code/stable-diffusion-webui-v1.tar.gz" aria2(webui_url, webui_url.split("/")[-1], "./")
步驟二:安裝常用插件
本示例會默認安裝tagcomplete和漢化插件,您也可自行添加其它插件。
! tar -xf stable-diffusion-webui-v1.tar.gz
! cd stable-diffusion-webui && wget -c http://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com/aigc-data/webui_config/config.json
步驟三:下載模型
本示例將開源SD模型Counterfeit-v2.5作為base模型,為了保證下載的穩定性,在OSS上提供了緩存鏈接,您可直接執行以下命令下載緩存的模型。
model_url = f"{prefix}/aigc-data/sd_models/Counterfeit-V2.5_fp16.safetensors"
aria2(model_url, model_url.split("/")[-1], "stable-diffusion-webui/models/Stable-diffusion")
vae_url = f"{prefix}/aigc-data/vae_models/Counterfeit-V2.5.vae.pt"
aria2(vae_url, vae_url.split("/")[-1], "stable-diffusion-webui/models/VAE")
embedding_url = f"{prefix}/aigc-data/embedding/EasyNegative.safetensors"
aria2(embedding_url, embedding_url.split("/")[-1], "stable-diffusion-webui/embeddings")
clip_url = f"{prefix}/aigc-data/clip/ViT-L-14.pt"
! mkdir -p /root/.cache/clip
aria2(clip_url, clip_url.split("/")[-1], " /root/.cache/clip")
bert_url = f"{prefix}/aigc-data/hug_model/models--bert-base-uncased.tar.gz"
aria2(bert_url, bert_url.split("/")[-1], "~/.cache/huggingface/hub")
! cd ~/.cache/huggingface/hub && tar -xvf models--bert-base-uncased.tar.gz
您也可以前往開源模型地址自行下載模型:
模型下載完成后,您還可以在ModelScope或HuggingFace下載其它類型的SD模型,并將其存放到./stable-diffusion-webui/models
的指定目錄中。在后續啟動的WebUI頁面中,您可以切換到相應的模型進行模型推理。
步驟四:啟動WebUI
執行以下命令,啟動WebUI。
! cd stable-diffusion-webui && python launch.py --no-half-vae --xformers
在返回結果中,單擊
Running on public URL
后的URL(例如:http://127.0.0.1:7860),進入WebUI頁面。后續您可以在該頁面,進行模型推理。說明由于
http://127.0.0.1:7860
為內網訪問地址,僅支持在當前的DSW實例內部通過單擊鏈接來訪問WebUI頁面,不支持通過外部瀏覽器直接訪問。
步驟五:試玩模型
完成以上操作后,您已經成功完成了AIGC文生圖模型的WebUI部署。您可以在WebUI頁面,進行模型推理驗證。相關參數可參考以下進行設置,完成后單擊生成。
模型的VAE:Counterfeit-V2.5.vae.pt
提示詞:
prompt
((masterpiece,best quality)),1girl, solo, animal ears, rabbit, barefoot, knees up, dress, sitting, rabbit ears, short sleeves, looking at viewer, grass, short hair, smile, white hair, puffy sleeves, outdoors, puffy short sleeves, bangs, on ground, full body, animal, white dress, sunlight, brown eyes, dappled sunlight, day, depth of field
negative prompt (用于阻止或減少生成圖像中出現您不想要的內容)
EasyNegative, extra fingers,fewer fingers
采樣方法(Sampler):DPM++2M Karras
高清修復:單擊,并配置以下參數:
重繪幅度:0.6
放大倍率:1.8
高度:832
提示詞相關性(CFG Scale):10
隨機種子(seed):2337269170
相關文檔
更多關于DSW的內容介紹,請參見什么是DSW。
在DSW中,通過對AIGC Stable Diffusion文生圖Lora模型進行模型微調,并啟動WebUI進行模型推理實現虛擬上裝,詳情請參見AIGC Stable Diffusion文生圖Lora模型微調實現虛擬上裝。
EAS預置了stable-diffusion-webui鏡像,您可以使用該鏡像快速搭建基于AIGC Stable Diffusion SDWebUI的AI-Web應用,詳情請參見EAS快速部署AI繪畫SDWebUI。