KohyaSS 一直以來都是個很好的訓練Lora的腳本,但它的設定比較多,分支也多,使用上比較不容易操作,這幾天發現一個專案fluxgym,它的後端依然是運行KohyaSS,但它重寫了一個前端UI,並自動化精簡了一些流程,只需幾個步驟,就能開始訓練Lora,安裝起來也挺容易了。很少python專案一次就成功的。

我嘗試了一下,連我的老骨董RTX3060 12G,也是跑得動的,後面會說我的測試心得


安裝步驟

(一)前往fluxgym github

https://github.com/cocktailpeanut/fluxgym

(二)手動安裝

在自己的電腦隨便一個目錄,開啟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

image.png

@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 會自動根據圖片識別出提示詞

image.png



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,大概是長這樣的

ComfyUI_00034_.jpg

Lora的樣本

這是跑100Step的樣本 (從100step的就能看出效果)

flux-guofeng-hanfu_000100_00_20250112165825.jpg

200Step的樣本

flux-guofeng-hanfu_000200_00_20250112170916.jpg

300Step的樣本

flux-guofeng-hanfu_000300_00_20250112172009.jpg

400step的樣本

flux-guofeng-hanfu_000400_00_20250112173105.png

500step的樣本

flux-guofeng-hanfu_000500_00_20250112174159.png

600step樣本

flux-guofeng-hanfu_000600_00_20250112175255.png

700step樣本

flux-guofeng-hanfu_000700_00_20250112180351.png

800step樣本

flux-guofeng-hanfu_000800_00_20250112181443.png

900step樣本

flux-guofeng-hanfu_000900_00_20250112182537.png

1000step樣本

flux-guofeng-hanfu_001000_00_20250112183631.png

1100step樣本

flux-guofeng-hanfu_001100_00_20250112184726.png

1200step樣本

flux-guofeng-hanfu_001200_00_20250112185820.png

1300step樣本

flux-guofeng-hanfu_001300_00_20250112190914.png

1400step樣本

flux-guofeng-hanfu_001400_00_20250112192011.png

1500step樣本

flux-guofeng-hanfu_001500_00_20250112193122.png

1600step樣本

flux-guofeng-hanfu_001600_00_20250112194247.png

1700step樣本

flux-guofeng-hanfu_001700_00_20250112195414.png

1800step樣本

flux-guofeng-hanfu_001800_00_20250112200540.png

1900step樣本

flux-guofeng-hanfu_001900_00_20250112201708.png

2000step樣本

flux-guofeng-hanfu_002000_00_20250112202835.png


好像看不出很大的變化 哈~ 之後實際跑ComfyUI加載lora測試

實測自訓練Lora結果

實際測試,生成1024*1024的圖,提示詞一樣,種子一樣,step30,Lora權重都用1.0

沒有Lora,提示詞也沒有含觸發關鍵字

ComfyUI_00047_nolorakw.jpg

沒有Lora,提示詞有含觸發關鍵字

ComfyUI_00038_noLora.jpg

Lora 200step

ComfyUI_00035_lora200.jpg

Lora 400step

ComfyUI_00036_lora400.jpg

Lora 600step

ComfyUI_00037_lora600.jpg

Lora 800step

ComfyUI_00039_lora800.jpg

Lora 1000step

ComfyUI_00040_lora1000.jpg

Lora 1200step

ComfyUI_00041_lora1200.jpg

Lora 1400step

ComfyUI_00042_lora1400.jpg

Lora 1600step

ComfyUI_00043_lora1600.jpg

Lora 1800step

ComfyUI_00044_lora1800.jpg

Lora 2000step

ComfyUI_00045_lora2000.jpg

Lora完整品

ComfyUI_00046_lorafinish.jpg


測試起來200就有效果,訓練越多就越把其他提示詞給吃掉,想偷懶可以訓練到400左右權重就得設高點,訓練高則可以用控制權重來玩出比較多變化~




之後計畫測試:

  1. 同個專案是否可以延續繼續訓練下去

  2. 同個專案是否可以塞不同的詞進去訓練

  3. 人臉要多少張圖才能夠像


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/fluxgym-flux-lora
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記