generated at
Kohya's GUIでLoRAの学習をする
参考


Windowsでインストール
依存関係
Git
$ git clone https://github.com/bmaltais/kohya_ss.git
$ cd kohya_ss
フォルダ内の setup.bat をダブルクリック
いくつか質問されるので選択する(選択肢は数字キー(0, 1, 2...)で選べるよ)
>どの環境で使っているか?
This machine
>どのタイプのマシンを使っていますか?
No distributed training
>CPUのみでトレーニングを実行しますか?
NO
>torch dynamoでスクリプトを最適化しますか?
NO
>DeepSpeedを使用しますか?
NO
>このマシンでのトレーニングに使用するGPU(idによる)をカンマ区切りでご記入ください。
グラボが1個しかなければ all
>FP16またはBF16を使用しますか?
nomadoorの場合RTX3070はBF16に対応しているので BF16 を選択
(オプション)CUDNN 8.6のダウンロードとインストール
NVIDIA 30X0/40X0を持っていれば使える
からcuDNN v8.6.0をダウンロード
解凍して cudnn_windows にリネーム
kohya_ssフォルダに置く
ターミナルでkohya_ssフォルダに移動して以下を実行
$ .\venv\Scripts\activate
$ python .\tools\cudann_1.8_install.py
ここあんまり自信ないnomadoor

アップグレード
upgrade.bat をダブルクリック

実行する
gui-user.bat をダブルクリック
今はgui.batしかないwogikaze
表示されたURLをブラウザで開く

素材の準備
画像を用意する
少なくとも512×512以上、できる限り高画質
Topaz Gigapixel等で解像度を上げる方法もある
縦横比は気にしなくて良い
いらない部分はトリミング
画像の枚数は8の倍数が良い
そうなんだ基素
ステップ数がバッチ数で綺麗に割り切れる数であれば良いのかなnomadoor
ステップ数 = 画像数 × リピート × epochs
👍ステップ数 % バッチ数 = 0
キャプションをつける
Kohya's GUIの Utilities にBLIP等を使った自動キャプション生成機能がある
今回はクオリアさんでやるので二次絵に強いWD14-taggerを使う
BLIPの性能がイマイチなので実写でもWD14-taggerを使ってもいいかもしれない
Basic Captioning に移動してテキストファイルの先頭に quoria-san, をつける
画像の横にキャプションが書かれたtxtファイルが生成されている
画像と比較しながら、妥当かどうか調べ、必要があれば編集する
とても面倒くさいnomadoor基素

トレーニング設定
Dreambooth LoRA欄に移動
基素がkohyaでやったときにはNAIの手法の方でやったのでこの辺りから違いそう
📁Source model
ベースに使うモデルを選択
フォーマットを選択
🟩v2 / 🟩v_parameterization はSD 2.X系を選んだときに必要

📁Folders
Image folder
さっき作った学習用素材を指定する
が、ちょっとややこしい
ディレクトリ構造
📁適当なフォルダ └ 📁img └ 📁100_quoria-san └ 🖼️📄作った画像とtxtファイル達
🚨imgフォルダのパスを指定する
$ C:/AI/SD 追加学習素材/LoRA/img
100_quoria-san の100は繰り返しの回数
学習画像が15枚以上なら100
それ以下なら1500/画像の枚数を入れる
これもとのスクリプトでもそうなんですかね?指定した記憶がない…基素
Kohya's GUIでいう 100 × 画像枚数 × バッチ数が がmax_train_stepsなのかな
🚨更新
100回回したモデルを一つ作るよりも、10回刻みで回したモデルを10個作る方が都合が良い
今は 15_フォルダ名 にして下のEpoch数を15に、つまり 15×15=225 回してますnomadoor
Regularisation folder (正則化画像)
🤔nomadoor
ディレクトリ構成
📁適当なフォルダ └ 📁classification └ 📁1_car └ 🖼️画像
上のimgと同じでclassificationのパスを指定する
Output folder
どこでも良いが、Stable Diffusion web UIのLoRAフォルダーにしておくと楽
$ ~~\stable-diffusion-webui\models\Lora
Logging folder
学習ログを置くフォルダ
これもどこでも良いけれど、imgフォルダの横に置くといいかも?
Model output name
好きなモデル名

📁Training parameters
LoRA type
LoRA / LoCoN / LoHAの指定ができる
Train batch size
処理を並行して行う
2なら、ステップ数が半分になる
増やせば早くトレーニングが終わるが、損失が増え(て失敗す)るため、元画像が膨大でないなら1or2で良い
Epoch
何回学習を回すか?
1回学習ごとにLoRAモデルが作られる
10にすると10個モデルができるため、XYプロットで過学習の判別ができる
15回くらいにしておく
>Kohya_ss LoRAは途中で中断して再開という機能がない
>代わりにKohya's GUIでLoRAの学習をする#63fbd5e0e2dacc0000e80f5dの値を小さくしてEpoch数を増やせば、n回目のLoRAモデルから再学習できる
Max train epoch
Max train steps
Save every N epochs
Caption Extension
キャプションファイルはテキスト形式で作ったので .txt を入れる
Mixed precision
使える人はbf16
Save precision
bf16が使える人も互換性のためにfp16にしたほうが良い?
Cache latents
Kohya's GUIでLoRAの学習をする#63fbde1ee2dacc0000e80f8bを使うためには✅を外す必要がある
Cache latents to disk
Optimizer
LR scheduler extra arguments
Optimizer extra arguments
LR number of cycles
LR power
Seed (デフォルト 1234)
再現性のために1234のままにしておくのが良い
以下鬼門
よく分からないのでとりあえずコピペnomadoor
Learning rate
0.0001
LR Scheduler
cosine_with_restarts
Text Encoder learning rate
3e-5
Network Rank(Dimension) / Network Alpha
128
Max resolution (デフォルト 512,512)
512,512
576,576がいいらしいhttps://rentry.org/59xed3
Enable buckets (デフォルト ✅)
✅が入っていると、アスペクト比がバラバラでも学習できる
🔻Advanced Configuration
Clip skip
リアル系なら1 アニメ系なら2 が良い?
>※SD2.0はデフォルトで後ろから二番目の層を使うため、SD2.0の学習では指定しないでください。https://github.com/kohya-ss/sd-scripts/blob/main/fine_tune_README_ja.md#%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8Bclip%E5%87%BA%E5%8A%9B%E3%81%AE%E5%A4%89%E6%9B%B4
Gradient checkpointing(デフォルト 🟩)
>各レイヤーに1つだけ活性化を保存:学習速度が30%低下する代わりに、使用するメモリは劇的に少なくなるhttps://huggingface.co/addy88/gptj8
Use 8bit adam (デフォルト ✅)
使わないほうが良いらしい
なくなった?nomadoor
Bucket resolution steps (デフォルト 64)
32
さっぱり意味がわからなかったnomadoor
解像度を何の倍数にするか決める。VAEが8分の1にするので最低でも8の倍数にした方が良い。
minとmax指定になってる,さっぱりわからないwogikaze
Random crop instead of center crop (デフォルト 🟩)
学習をする度にクロップする位置をちょっとずつ変える?
といいことがあるらしい???
Noise offset(0-1)
おそらく0.1で良い
Rate of caption dropout (デフォルト 0)
0.1
学習する度に10%の確率でキャプションが弾かれる
といいことがあるらしい???
Max num workers for DataLoader
0
処理が早くなるらしい
一番上に戻ってConfiguration file(設定ファイル)
しっかり保存しておきましょう
.jsonを忘れずにつけて Save💾

トレーニング開始
Train model ボタンを押してトレーニングを開始する
ターミナルの表示を確認してちゃんと開始されたかを確認
学習時間 : バッチサイズ1 3200ステップで45分
すごい短い?基素
バッチサイズ2 10000ステップで6-7時間かかった
CUDNN入れないとダメなのかなぁ
バッチサイズ2で10000ステップは多いですね…nomadoor
バッチサイズ2の4800ステップで2時間半強だったので、それくらいかかるかも
なるほど基素
ステップの間の待ち時間?が結構長いのがやっていて気になりました
GPUがしばかれてない時間が半分ぐらいある

ログを見る
Train modelの下にある Start tensorboard を押すと、ログファイルをもとにしたグラフを表示できる

使ってみる
左のprompt
ACertainModel
qualia-san, 1girl,Highly Detailed,looking at viewer,upper body,from front,bangs,wide view ,chibi, full body, wearing kimono <lora:qualia-san_v1.0:0.7>
すごいnishio



2023/4/16
各所修正nomadoor
Kohya's GUIはLoRA以外もできるのでタイトルを変更