KohyaSS 一直以來都是個很好的訓練Lora的腳本,但它的設定比較多,分支也多,使用上比較不容易操作,這幾天發現一個專案fluxgym,它的後端依然是運行KohyaSS,但它重寫了一個前端UI,並自動化精簡了一些流程,只需幾個步驟,就能開始訓練Lora,安裝起來也挺容易了。很少python專案一次就成功的。
我嘗試了一下,連我的老骨董RTX3060 12G,也是跑得動的,後面會說我的測試心得
安裝步驟
(一)前往fluxgym github
(二)手動安裝
在自己的電腦隨便一個目錄,開啟CMD,輸入
#從git複製專案fluxgym
git clone https://github.com/cocktailpeanut/fluxgym
#切換目錄
cd fluxgym
#從git複製專案sd-scripts
git clone -b sd3 https://github.com/kohya-ss/sd-scripts
建立python虛擬環境
python -m venv env
進入虛擬環境
env\Scripts\activate
切換到目錄sd-scripts
cd sd-scripts
安裝依賴包(安裝fluxgym\sd-scripts 目錄下的依賴包)
pip install -r requirements.txt
安裝完依賴包以後返回上層目錄
cd ..
在這個目錄也安裝依賴包(安裝fluxgym目錄下的依賴包,)
pip install -r requirements.txt
安裝pytorch Nightly
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
運行
python app.py
安裝流程影片
為了方便下次使用,我們可以自行寫一個bat檔,以後可以直接執行這個bat,它就會自己啟動虛擬環境,運行python app.py
@echo off REM 切換到虛擬環境所在的目錄(這個替換成自己的路徑) cd /d F:\project\AI\ComfyUI\fluxgym REM 啟動虛擬環境 call env\Scripts\activate REM 啟動 Python 應用程式 python app.py REM 停留視窗,避免自動關閉 pause
使用方式
在fluxgym專案內會有一個flow的gif動畫,可以看一下它的操作流程。
我的設定是這樣,先用六張圖試試看效果(圖片它會自動剪裁)
The name of your LoRA(LoRA專案名): flux_t2 (隨意取)
Trigger word/sentence觸發詞:hanfu (這個LoRA的觸發詞)
Base model : flux-dev
VRAM:12G (看自己的顯卡多大)
Repeat train per image :10
Max Train Epochs:16
Expected training steps:960 (這個它會自己算10*16*6[Repeat train per image*Max Train Epochs*圖片數])
Sample Image Every N Steps(多少步自動產生樣本) : 200
點Add AI captions with Florence-2 會自動根據圖片識別出提示詞
advanced設定
勾選(保存狀態)
save training state additionally (including optimizer states etc.) when saving model / optimizerなど学習状態も含めたstateをモデル保存時に追加で保存する
--save_state
設了200(設定多少步保存一個lora,我是先設定200看看,第二輪測試後覺得每100step就能存一個看看)
--save_every_n_steps
save checkpoint every N steps / 学習中のモデルを指定ステップごとに保存する
以下的待測試(以前跑lora都有勾,這個我之後試試在更新,確認是否需要勾選)
以前的都有勾(這個不確定) --> 這個確定不要勾,勾了會跟其他設定衝突
use 8bit AdamW optimizer (requires bitsandbytes) / 8bit Adamオプティマイザを使う(bitsandbytesのインストールが必要)
以前的都有勾(這個不確定) -->可以勾,不會報錯,但似乎也沒有提速的效果
use xformers for CrossAttention / CrossAttentionにxformersを使う
--xformers
測試結果
RTX3060 12G跑,選6張圖(圖片尺寸選自動裁切成512*512) 跑lora
從14:21:55 -> 14:41 跑200step (20分鐘)
到15:18:55總共跑了600step (約60分鐘)
從一開始的設定,總共需要跑960step,這樣大約需要100分鐘左右,能跑完訓練,這速度勉強能接受,目前還不確定訓練效果如何。
我跑的第一輪用了40多張圖,需要跑37XX多step,只跑了200step我便中斷重跑看看,但那時200step的sample圖,看起來已經略顯OK
結果這輪忘了設定每200step要輸出一個sample,只能等全部跑完再看看結果
後續還會測試跑更多step,跟更多張圖哪種效果好
補充1
第一輪實測結果 6張圖訓練的lora確實能用,有跑出人物特徵出來了,但跟以前的數十張圖直接訓練出新的checkpoint模型,相比的話,則沒那麼像。
但能看出是有效果的,第一輪選的圖也選得不好,決定跑第二輪(用13張國風漢服圖,來看看能否生成出來)
補充2
第二輪測試-用13張國風漢服圖作為底圖(圖片一樣自動裁切成512*512)
16:45:23開始
17:08:14 跑200step (花費23分)
17:43:57 跑520step (花費58分鐘)
17:51:53 跑600step (花費66分鐘)
19:08:12 跑 1300step (花費143分鐘)
這樣預計跑完2080step要220分鐘(3個多小時能跑一個Lora,但看下面的樣本,覺得應該能再縮些)
FLUX沒使用Lora,提示詞:hanfu,大概是長這樣的
Lora的樣本
這是跑100Step的樣本 (從100step的就能看出效果)
200Step的樣本
300Step的樣本
400step的樣本
500step的樣本
600step樣本
700step樣本
800step樣本
900step樣本
1000step樣本
1100step樣本
1200step樣本
1300step樣本
1400step樣本
1500step樣本
1600step樣本
1700step樣本
1800step樣本
1900step樣本
2000step樣本
好像看不出很大的變化 哈~ 之後實際跑ComfyUI加載lora測試
實測自訓練Lora結果
實際測試,生成1024*1024的圖,提示詞一樣,種子一樣,step30,Lora權重都用1.0
沒有Lora,提示詞也沒有含觸發關鍵字
沒有Lora,提示詞有含觸發關鍵字
Lora 200step
Lora 400step
Lora 600step
Lora 800step
Lora 1000step
Lora 1200step
Lora 1400step
Lora 1600step
Lora 1800step
Lora 2000step
Lora完整品
測試起來200就有效果,訓練越多就越把其他提示詞給吃掉,想偷懶可以訓練到400左右權重就得設高點,訓練高則可以用控制權重來玩出比較多變化~
之後計畫測試:
同個專案是否可以延續繼續訓練下去
同個專案是否可以塞不同的詞進去訓練
人臉要多少張圖才能夠像
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/fluxgym-flux-lora
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記