最近進行的課程匯報,學習了2023年的CVPR文章《DreamBooth: Fine Tuning Text-to-Image Diffusion Models?for Subject-Driven Generation》,因此嘗試使用了幾種方法對這篇文章的工作進行了一定的復現。本文主要介紹Stable Diffusion Web UI(webui)的安裝以及使用webui運行DreamBooth生成圖片。
參考教程
一開始看的文字教程主要是有關DreamBooth的,沒有看明白這個Stable Diffusion Web UI是怎么安裝與使用的,于是我又在B站找了個視頻教程,效果還不錯,下面給出我觀看的視頻教程鏈接和作者id,避免侵權~~~
視頻教程鏈接:stable diffusion 使用dream booth訓練大模型入門教程_嗶哩嗶哩_bilibili
b站視頻作者id:穆飛大神
接下來我將結合我在安裝過程中遇到的一些問題,以圖文形式對Stable Diffusion Web UI的安裝過程進行講解。
安裝過程
step1 克隆webui的github倉庫
webui的github倉庫鏈接:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)https://github.com/AUTOMATIC1111/stable-diffusion-webui通過命令將倉庫克隆至本地:
(在git bash中和在win cmd中運行效果似乎是一樣的)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
(此時需要注意,存放路徑中不能帶有中文,否則后續運行會報錯)
后面的run bat文件可以直接在資源管理器下雙擊運行。
運行后提示could not launch python。
step2?安裝python 3.10.6
Stable Diffusion Web UI本地運行需要安裝python 3.10.6,目前看下來似乎必須是這個版本。
安裝python時需要勾選,添加到環境變量add python to path,否則系統無法找到,在cmd中輸入python會跳轉microsoft store(至少在win11下會這樣,但是以前確實從來沒有遇到過這種情況,可能是以前安裝的時候都裝對了)。
安裝完之后在命令行中輸入python之后的結果如下圖所示。
step3?運行webui
雙擊運行webui.bat文件,第一次運行會自動安裝一些包,運行情況如下圖所示。
在安裝完包之后又遇到報錯:
通過排查,這里的報錯原因就是第一步路徑中帶有中文,重新在沒有中文的路徑下雙擊運行webui.bat文件,結果如下圖所示。
安裝相關的包完成后,命令行出現上述結果,瀏覽器直接跳出stable diffusion界面。
我這里的webui也沒有再另外進行漢化,所以界面都是英文的。
step4* 安裝DreamBooth插件
*如果不用訓練可以不做這一步。
插件的位置,在webui-Extension-Available-點擊Load from,在下面出現的眾多插件中找到DreamBooth(可以通過Ctrl+F直接在頁面中進行查找),點擊安裝。
(安裝過后,在這里就不會再出現了)
最終安裝好之后的效果如下圖所示。
(由于我這里的界面和我所看的視頻教程中不太一樣,所以我沒有使用這里的extension-dreambooth進行訓練)
至此,安裝過程就基本結束了。
上手使用
直接安裝的webui似乎是沒有模型的,在安裝了上面所說的DreamBooth插件之后,會自動下載一個v1.5-pruned.ckpt的模型,此時加載該模型,進行文生圖的測試。以ed sheeran為提示詞,設置Sampling steps為150,點擊generate進行生成,生成的圖片結果如下圖所示。
根據教程,我又在C站下載了作者發布的無聊猿模型,模型鏈接如下:
Apes - apes_v1.0 | Stable Diffusion Checkpoint | Civitai
將下載好的模型文件放到webui存儲模型文件的路徑下,具體位置如下圖所示。
添加完模型文件后需要刷新webui(重新進入),然后在webui中加載這個模型,此時模型的下拉菜單中已經可以看到剛剛添加的模型文件。
以下是我的一些生成結果。
思考
目前的文生圖技術感覺只是先把這項技術做出來,暫時還想象不到有什么具體的應用。比如平面設計,或是科研繪圖,這些都需要很多細節、色彩的微調,而直接生成的圖片是位圖不是矢量圖,無法滿足這樣的需求。文生圖感覺還是用來預覽想象力的一種手段,很多天馬行空的想法但是可能實現、繪制一個像樣的demo需要較長的時間,此時把想法描述給AI,來進行繪制與實現可以提高效率,為后期的制作提供一個具體的方向。