read.cash Log in
@vcckvvOnNoiseApp edited

「aiArt」 本次主題:DreamBooth功能測試(訓練AI畫出特定的角色) 目前要訓練AI畫出特定角色的方法有兩種 一種是Textual Inversion,丟入訓練圖後會產生一個幾十KB的pt檔,然後放在embeddings 的資料夾就能使用 這個方法的原理大致是讓AI往隨機的方向畫,然後如果畫出來的結果和訓練圖接近,那麼就會把這個方向評為高分,所以它的缺點就是只能畫出AI原本就能畫出的東西,如果有角色髮形是AI之前沒見過的可能就沒辦法畫得很好,還有在模組A的環境下訓練出來的pt檔就沒辦法拿去給模組B用 我之前在測試的時候也覺得這個方法品質不算是很好,可能還有改善的空間 另外一種訓練AI畫出特定角色的方法就是今天介紹的DreamBooth,先準備一個基礎模組ckpt檔和訓練圖,然後訓練後會產生一個新的模組ckpt檔,換言之就是直接生成一個新的特化模組,出圖品質大都明顯會比Texual Inversion要好,不過檔案大小都是2GB起跳,這是它的不便之處 這次使用的是專門用來訓練DreamBooth的colab版: https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast-DreamBooth.ipynb 看網路上有蠻多人在安裝DreamBooth的擴充外掛後都沒辦法正常運作,目前只有colab版的看起來運作上都沒太大問題 目標要畫的角色是孤獨搖滾的喜多,從動畫截圖了十張下來,因為品質和大小不一,所以再使用SD upscale放大成清晰圖片,並裁切縮小成512X512的圖片,最後按照指示命名成「KitaIkuyo(編號).png」: https://imgur.com/a/MKT42QH 使用的基礎模組為Anything-V3.0-pruned.ckpt 設定的參數是learning rate 1.5e-6 ,步數是 3000 steps,因為會有overfitting的問題,所以學習率和步數不是越高越好 DreamBooth的特點就是少少幾張圖也能拿來訓練,之前有看過有人只用一張圖就訓練出一定的成果,訓練步數記得有調高到一萬步以上 這次訓練時間大概是一個小時,如果圖片大小選比較大的話會花更多時間訓練 出來的成果為圖一 因為是十張隨便挑選出的圖拿去訓練,動畫的作畫也不夠精細,所以測試後的出圖品質算是普普通通,不過也會有像圖一這樣還不錯的圖 隨便測試都能有不錯的效果出來,DreamBooth可說是很神的功能,而且不只可以用來訓練畫出特定的角色,也可以訓練畫出特定的畫風,訓練模組對未來的AI繪師來說應該是必備的技能 另外如果對模組的品質不滿意,可以再使用StableDiffusion的另一個功能:模組融合,在Checkpoint Merger這個頁面可以把二個模組ckpt檔融合成新的模組 這裡把之前產生的KitaIkuyo.ckpt和Anything-V3.0-pruned.ckpt進行融合,權重設成KitaIkuyo.ckpt為0.9、Anything-V3.0-pruned.ckpt為0.1,出來的結果為圖二 可以看到整體的作畫品質提高了,雖然失去了動畫作畫的簡略上色風格,但是角色的特徵都有好好保留下來,如果沒什麼時間訓練高品質的模組,使用模組融合來提高品質算是不錯的方法 另外特別要提的一點是Anything-V3.0的模組都需要另外放上Anything-V3.0.vae.pt,這裡訓練和融合出來的新模組也是一樣要放同名的vae.pt檔,否則和之前說的一樣會有色彩品質降低的問題 使用的咒文和參數放在https://read.cash/@vcckvv/aiart-dreamboothai-55cf9ae0

14 comments

Log in to join in Reading is open to everyone. Replying needs an account.