[AI] 如何訓練LoRA? 猴子都學得會的手把手教學!
先附上預覽圖,幼妲貼貼:
https://truth.bahamut.com.tw/s01/202302/a2c1b53fb942cba44f6ae71c514e82bb.JPG
網頁好讀版:
https://home.gamer.com.tw/creationDetail.php?sn=5657565
前言都是一些廢話,如果只是想知道如何訓練LoRA,可以直接往下跳至分隔線。
*本文只是個人訓練LoRA的經驗分享,因為還沒有人做相關教學,所以寫這篇文章來看看能不能拋磚引玉,如果有任何問題歡迎大佬補充
在一開始AI繪剛紅的時候,是看西洽有人分享用AI畫大奶維多利亞美女,當時就有跟著教學把stable diffusion弄來玩玩了,但除了抄抄大奶維多利亞美女的咒文之外,其他自己想畫的圖並不怎麼樣。後來在西洽看了cybermeow大的文章,覺得能煉出特定角色的模型很實用,可以拿來畫我推的V,於是跟著YT教學一步步學著怎麼用dreambooth,然而顯存不夠只好去租3090,還因為國外網站卡在卡刷不過,跑去試用台智雲,搞到台智雲打給我們教授推銷ww,那時好像只有sd1.3跟wd幾版我忘了,反正用dreambooth fine-tune wd出來的結果不是很好,雖然還是有搞了張幼妲下蛋。後來novel ai模型洩漏出來以後台智雲的試用期也過了,加上訓練embedding內建在webui以後太方便,用我這3070 8g的顯卡隨便煉,也就忘了dreambooth這件事。
但前陣子漸漸覺得遇到瓶頸,為了複雜的場景prompt下太多,角色的特徵很容易會被抹掉,原本就不是很準確的特徵在複雜prompt下更難骰出好圖。想起還有比較準確的dreambooth可以用,想說也許經過幾個月的發展dreambooth能在低顯存的環境下訓練,一開始的確有在reddit看到去年十月的文章說dreambooth可以在8g vram顯卡上訓練,但我試了無法,而且近期的文章也都說要求10g顯存。那本地不能訓練,但我又不想在colab上跑,除了要掛載雲端硬碟然後還要清空間放模型很煩之外,邪惡的東西也不能在上面訓練,於是dreambooth這件事又被我放置了。
直到最近聽說有個新技術,LoRA,不僅訓練出來的模型很小對硬碟空間很友善,效果貼近dreambooth的同時,重點是,真的能在8g顯存的顯卡上訓練了。LoRA(Low-rank Adaptation)這個技術到底是什麼呢?我們來看一下原github上的"簡單"解釋:
https://i.imgur.com/FltrSEe.png
簡單來說,不直接微調模型權重,而是訓練一個偏移量作用於於模型上,而且重要的是將這個高秩的模型權重偏移量拆開,用低維度的矩陣相乘去近似它,因此可以節省空間,而且能以比dreambooth更快的速度進行微調。
===================================
正題開始,如何訓練LoRA?我知道現在webui的dreambooth插件也可以進行LoRA的訓練,但除了requirements容易衝突之外,重點是當我選了7.多g的模型要創建dreambooth模型時,直接CUDA OOM (吐血,第一步都做不了,所以這裡不使用webui插件訓練LoRA。
首先,安裝python 3.10.6與git,相信有裝webui的各位都有了,如果沒有可以去官網抓,或是用包管理器chocolatey直接安裝。
接著一步一步手把手教學
git clone https://github.com/kohya-ss/sd-scripts.git
將庫clone下來
cd sd-scripts
進入資料夾
python -m venv --system-site-packages venv
開一個獨立的虛擬python環境
.\venv\Scripts\activate
啟動虛擬環境 *之後每次要訓練,記得都要先啟動虛擬環境
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install --upgrade -r requirements.txt
pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl
安裝依賴項
cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\
cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py
cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py
複製庫文件
accelerate config
設定完成
接下來要用 https://github.com/derrian-distro/LoRA_Easy_Training_Scripts 提供的腳本進行訓練
wget -O lora_train_popup.py https://raw.githubusercontent.com/derrian-distro/LoRA_Easy_Training_Scripts/main/lora_train_popup.py
將腳本下載下來 *如果沒有wget,去用chocolatey裝一個,或是 https://github.com/derrian-distro/LoRA_Easy_Training_Scripts/blob/main/lora_train_popup.py 文件右上角Raw右鍵->另存連結
accelerate launch --num_cpu_threads_per_process 12 lora_train_popup.py
開始訓練
接下來會彈出一系列視窗,可以調整選項
Do you want to load a json config file?
是否載入設定,否
Select your base model
選擇基底模型,如anything-v4.5.ckpt
Select your image folder
選擇訓練圖像資料夾 *如何準備訓練資料等等會說
Select your output folder
選擇儲存LoRA輸出資料夾
Do you want to save a json of your configuration?
可以儲存設定檔以供第一步使用
https://i.imgur.com/M91Xpa8.png
Do you want to use regularization images?
是否使用正則化訓練圖片 *一樣等等講
Do you want to continue from an earlier version?
可以從中斷的訓練中回復,否
https://i.imgur.com/KzUWvcD.png
https://i.imgur.com/62tnNug.png
https://i.imgur.com/Y4wtNYI.png
https://i.imgur.com/tAPF9pS.png
https://i.imgur.com/7eCQ29d.png
https://i.imgur.com/YG39Hyc.png
https://i.imgur.com/1db1cRU.png
https://i.imgur.com/IBLcgu1.png
https://i.imgur.com/upMdQJn.png
https://i.imgur.com/9h9fDex.png
Do you want to save epochs as it trains?
是否儲存中途訓練結果,是
https://i.imgur.com/Z6Q2NQN.png
Do you want to shuffle captions?
是否將訓練資料的tag(prompt)打亂順序,是
Do you want to keep some tokens at the front of your captions?
是否保留前幾個tag不打亂順序,是
https://i.imgur.com/Hurfs5D.png
Do you want to have a warmup ratio?
學習率調整策略,否
Do you want to change the name of output checkpoints?
是否更改輸出模型檔名,否
接下來就會開始訓練,等待訓練完成吧
https://i.imgur.com/CNDFeCU.png
如何準備訓練資料
先貼一張圖
https://i.imgur.com/UnnBT7P.png
子資料夾的名稱為"重複次數_關鍵字"***重要:日後使用LoRA的關鍵字在此設定
可以為一個LoRA模型訓練不同概念,重複次數可以調整資料平衡,圖越少適當調高
子資料夾內的圖片與文檔怎麼來? 去蒐集要訓練角色的圖片吧,少至10張,多至上百上千張都可以。
訓練圖片預處理使用webui來做,如果之前有訓練過embedding應該不陌生
https://i.imgur.com/h1NVCSp.png
開啟webui之後 訓練->圖像預處理
指定來源目錄、輸出目錄與解析度
底下選項
建立鏡像副本
-> 勾,訓練圖片越多越好,但如果訓練的人物有標誌性特定方向的頭飾、配件,別勾
分割過大的圖像、自動焦點裁切、Auto-sized crop
-> 處理圖片大小,擇一,如果圖片長寬比不符再使用。推薦可以先使用Brime手動裁切就不必使用。
使用 BLIP 生成說明文字(自然語言描述)
使用 deepbooru 生成說明文字(標記)
-> 自動給圖片上tag(prompt),擇一,通常二次元圖片使用deepbooru比較好。 tag會存進同名.txt檔
像這樣子:
https://i.imgur.com/1iIRfZv.png
另外還有正則化圖片,如果圖片太少(20張以內),或是圖片視角不夠多樣化,通常會準備正則化圖像幫助訓練,例如你要訓練一個女V,那麼你就去收集動漫女孩的圖,那如果你不想自己找怎麼辦?也可以直接用生成的。那要準備幾張正則化圖片呢?根據網路上各式各樣的教學,我看過說準備1:1,也看過說要10倍的,我在這部分沒有太多經驗可以推薦。
===================================
教學完成啦,可以開始訓練自己的LoRA模型了!
在這邊推薦各位一個網站,civitai,上面可以找到很多別人訓練完的LoRA模型,可以拿來混搭。
接下來分享一些我產的圖吧,各種LoRA模型混搭真是好玩。另外,這位是我的推,ReLive_灰妲,講話風趣,雜談之鬼,總是不知不覺就到三點,雖然平時沒什麼氣質,只有炸雞腿的香味,但氣質來的時候超婆的,重點是還有我真正的主推,幼妲,幼妲簡直就是天使,蘿莉真是太棒了!!
大波鸚灰妲
https://i.imgur.com/oNJB01X.png
幼妲抱著小小妲
https://i.imgur.com/lXSwDOK.png
幼妲妮亞
https://i.imgur.com/4KrVvH8.png
幼妲,孤獨搖滾ed ver.
https://i.imgur.com/6qQmVSY.png
迷之陰影(X
https://i.imgur.com/mfYUahk.png
--
02/10 05:58
※ wres666:轉錄至看板 AI_Art02/10 05:59
推!很詳細的教學
推
推
好文先推
不要這麼認真好嗎
推,之後來試試
推
好詳細
推 晚點來玩玩看
大師
最少顯存要多少才能跑訓練?
推
可以
看來我比猴子還爛
感謝 正好需要 晚點來拜讀一下
推
謝謝你讓我知道自己是草履蟲
推
推教學
推教學!
推教學
酷
如果有需要 這裡有Colab版本的
推
也感謝FoxWu
這邊說說有多少猴子
假日研究
猴子....好強....
推整理!LoRA問世後各種模型真的如雨後春筍
這迭代越來越快了吧 什麼時後能突破限制自由探索性癖
我不當人了 吱吱
猴子... 也太強 了吧...
爆
[奶子] AI畫的婚紗大奶(圖多)爆
[賽事] 第17回維多利亞一哩賽 出馬表第17回維多利亞一哩賽將於5月15日,亦即本週日的台灣時間14:40開賽。 --------------------------------------- 維多利亞一哩賽的歷史,詳見我去年在本板發布的出馬表,此處不多贅述。 文章代碼:#1Wdewcg7 (UmaMusume) 網頁好讀版:62
[討論] AI作畫之維多利亞時代的巨乳?@ChromedSets AI作畫 維多利亞時代的巨乳會是什麼樣子呢?44
[閒聊] 林則徐為何敢對英國維多利亞女王大小聲?林則徐與英國維多利亞女王 是維多利亞3的角色, 遊戲中也有鴉片戰爭歷史劇情事件。19
[閒聊] 用AI畫出手繪風的金髮少女(多圖)前陣子看到維多利亞風大奶 完全打中我 忍不住裝來玩玩看 也算是緩解考研的壓力QQ 我用的是stable diffusion + waifu diffusion 金髮少女的圖我是參考這位17
[問題] 維多利亞3 VS 文明6 哪個更好?就直接比較 最近發行的維多利亞3 和幾年前的神座文明帝國6 大家覺得哪個更耐玩 維多利亞3有一大缺點是戰爭系統太簡陋 希望以後DLC能補足這一點 維多利亞3 VS 文明6 你選哪個?
爆
[情報] 鏈鋸人 劇場版 蕾潔篇 新PV爆
[闇龍] 跨性別總監談失敗原因:玩家不夠包容92
Re: [闇龍] 跨性別總監談失敗原因:玩家不夠包容81
[閒聊] 絕區零的初玩感想71
Re: [閒聊] 中山龍不再是鏈鋸人監督67
[妮姬] 聖誕生放送倒數1天 封面鴿肉要來了?!64
[閒聊] 漫威爭鋒似乎在華語圈紅不起來61
[閒聊] 結果原神5.3卡池改動也太爛了吧91
[搬屎] 唉,我們鳴潮怎麼又要死啦50
[閒聊] 黑白妹不看攻略只玩出農夫結局45
[鳴潮] 菲比日文聲優公布 本渡楓42
Re: [閒聊] 統神是不是才是真正的贏家43
Re: [鳴潮] 唉,我們鳴潮怎麼又要死啦41
[閒聊] 今年只剩幾天了,任天堂是不是38
Re: [闇龍] 跨性別總監談失敗原因:玩家不夠包容45
[魔獸] 魔獸新海島竟然有真正的泳裝37
[情報] 章魚嗶的原罪 PV36
[閒聊] 壞女人的魅力是什麼?34
[閒聊] 中山龍現在在想什麼29
Re: [閒聊] 統神是不是才是真正的贏家33
[獵人] 天空競技場接待小姐為何要嚇人?32
Re: [閒聊] ptcgp 新卡包 超夢直接霸榜??????27
[情報] 魔都精兵的奴隸 二期 新CV公開27
[閒聊] [PTCGP] 君主蛇時拉比感覺被高估太多了24
[PTCGP] 超夢牌組45勝活動心得27
[情報] 漫威爭鋒 後續角色及造型24
[討論] 如果柯南一開始只告訴小蘭會不會比較好?23
[情報] 2024年 Google 動畫/電玩 世界搜尋榜49
[妮姬] 官推:她的回憶錄影帶 III22
[閒聊] 小火龍 進化了