之前試玩了一下 Midjourney,通過 Discord 訪問,但很快我就把免費體驗次數耗完了,於是跑去淘寶買了一個月的共享帳戶繼續試玩。然而新鮮感兩三天就過去了,我就基本很少碰了。這兩天又來了點興趣,試了下本地部署 Stable Diffusion。
我主要參考了這篇文章《本地部署 Stable Diffusion 教程,親測可以安裝成功》by Pancras Wen。
基本上我按照其描述的過程安裝的,只遇到一點小問題。
首先是下載 git 和 Python,他這裡建議安裝 Python 3.10.9,沒有說明原因,我也不知道為啥。
然後下載 stable-diffusion-webui 軟件庫:新建一個文件夾,然後通過 git 克隆:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
下載完成後,運行 webui-user.bat 批處理文件,讓其自動下載安裝其餘組件。
如果過程中遇到 pip 更新提示,就新開一個 cmd 然後運行綠色的提示命令即可。
這個過程在克隆 taming-transformers 和 CodeFormer 時遇到了問題,出現了 error code 128,可以參考這裡的報告。
對於 taming-transformers,我重新啟動 webui-user.bat 批處理成功解決了,但是等了不少時間。
對於 CodeFormer,重開多次 webui-user.bat 也沒能解決,於是我換了 git bash 來克隆,完成後再運行 webui-user.bat。
後面就沒啥問題,繼續下載。
之後我們就能通過瀏覽器訪問 http://127.0.0.1:7860 來調用 Stable Diffusion。
還是很方便使用的,各個參數設置都有說明,懸停鼠標便能看到。
試著調用了幾次默認設置,感覺效果相當差。
圖 1:默認設置的結果,prompt 為「a man is standing in front of a tank with the muzzle pointing at the man」
為了生成高質量的圖像,自然需要合適的設置;其中採樣器的選擇是非常重要的。這裡有一篇指南值得參考:《Stable Diffusion Samplers: A Comprehensive Guide》,其中給出了一些使用建議:
- 如果想要使用相對新的模型,快速生成,質量好,可以選擇:
- DPM++ 2M Karras,執行 20-30 步
- UniPC,執行 20-30 步
- 如果你想要高質量圖像,但不在乎收斂情況,可以選擇:
- DPM++ SDE Karras,執行 8-12 步(注意:速度更慢)
- DDIM,執行 10-15 步
- 如果想要生成的結果穩定,可再現,就不要使用老式採樣器,即 Euler a、DPM2 a、DPM++ 2S a、DPM++ 2S a Karras。
- 如果偏好簡單的選擇,可以使用 Euler 和 Heun;Heun 的步數不宜過多,以節省時間。
圖 2:UniPC 採樣器執行 22 步的結果,prompt 為「a crying Chinese woman with iron chain around the neck」
我也看了看另外兩篇教程,這裡索引一下: