煩雑なインストール、複雑なディレクトリ構成、フォルダ名の命名規則などの面倒から解放!!
「sd-webui-train-tools」を用いて、WebUI(1111)上でLoRA学習ができました!!
この拡張機能で何ができるの?
- LoRAの学習がWebUI上で完結します!!
1, 「train-tools」の導入方法
この拡張機能はURLを使用してインストールできます。
以下のURLをコピペしてください。
https://github.com/liasece/sd-webui-train-tools
なお、URLを使用した拡張機能のインストール方法はこちらを参照してください。
インストールし終えたら、WebUI(1111)自体を再起動します。
黒い画面自体を一度閉じて、ブラウザのタブも一度閉じて、batファイルから再度起動します。
WebUI上の再起動して適用みたいなボタンからの再起動では不具合が出てtrain-toolsタブが出ません。
「Train Tools」タブが表示されていればインストール成功です。
エラーがでたらどうする?→安定バージョンに戻そう!!
git clone でインストールしたWebUIのダウングレードを行います。
コミットバージョン「a9fed7c364061ae6efb37f797b6b522cb3cf7aa2」に戻します。
なお、このバージョンは当方で動作確認済です。
(一度新規にWebUIをgit cloneし、上記のバージョンに戻して、LoRAファイル作成に成功したため、動作確認済としました)
詳細な手順はこちらを参考にしてほしいのですが、要するに、webuiを閉じてから「stable-diffusion-webui」フォルダ内でターミナルを開き、以下のコマンドを実行します。
git checkout a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
そして、「stable-diffusion-webui\extensions」から、「sd-webui-train-tools」というフォルダを削除すればOKです。
その後webuiを起動して、再度URLからのインストールを行ってください。
これでもまだエラーが出た場合は、新規にwebuiをgit cloneしてみてください。
2, 「train-tools」の使い方
「train-tools」でプロジェクト名とバージョンを設定
「Train Tools」タブから、Create Projectをクリックして、プロジェクト名を決めます。
プロジェクト名は何でも良いです。
今回は「otameshi」で。
挙動的にこのプロジェクト名がLoRAのインスタンスプロンプトになるような気がします。
ソースを読んだわけではないのであくまで推測ですが。
そのため一般的すぎる名前は避けましょう。1girlとかNG
そして、バージョンも設定します。
今作成したプロジェクトをセットして、Create Versionをクリック。
デフォルト通り「v1」でいきます。
これで学習プロジェクトの作成が終わりました。
このように学習画面が登場します。
バージョン管理できるので、試行錯誤する際にファイルが煩雑にとっ散らかるのを防げますね!!
「train-tools」の各種設定を行う
データセットの準備
まず、学習元画像をアップします。
フォルダ内の画像をまとめて選択して、ドラッグすればOK.
画像サイズやキャプションの取り扱い、繰り返し数など色々設定できますが、とりあえず下のようにしています。
※Train number of repetitionsをおまかせの「-1」にしたら、繰り返し数64回になってました!!!?!?
手動で適当な数入力しないと偉いことになります。
そして、「Update Dataset」をクリック。
加工完了です。なお今回はお試しのため、適当に生成した16枚の初音ミクさんを使用します。
データセットが出来上がると、train-toolsタブを下にスクロールできるようになります。
データセットの次はトレーニング設定を決めていきます。
トレーニングのパラメータ設定をする
こんな感じの画面になっているハズです。
左上から順に解説していきます。
- Train base model:学習元のモデル
- Base on Stable Diffusion V2:SD v2が基のモデルを使うならチェック
- Use xformers:高速化できるのでチェック
- Clip skip (2 if training anime model):二次元絵なら2
- Save every n epochs:何エポックごとに保存するか
続いて真ん中。
- バッチサイズ:とりあえず1でいきました
- Number of epochs:何エポック学習するか
- Learning rate:学習率。とりあえずデフォルト0.0001で
最後に右側。
- Net dim (128 ~ 144MB):次元数。大きいと高精細っぽい
- Alpha (default is half of Net dim):アルファはdimの半分くらいがオススメ
- Optimizer type:オプティマイザを選択。奥が深い…
- Mixed precision (If your graphics card supports bf16 better):精度。基本fp16で問題ない
- Generate all checkpoint preview after train finished:各学習成果にプレビュー表示をするか?
Optimizer typeはこのように色々ありますが、分からないのでデフォルトでいきます。
設定が終わったら、学習開始です。
「Begin Train」をクリック!!
ImportError: No xformers / xformersがインストールされていないようです
※Xformersの代わりにSPDA↓を使用していると、上記のようなエラーが出ます。
その時は、Use xformersをチェックせずにやります。
学習時の様子
ハードウェア負荷 VRAMを使用量
512,512画像のトレーニング、繰り返し1,バッチサイズ1,Xformers有効でVRAM7.3GBでした。
たいていのグラボでできますね☆
ターミナルの様子
ここはkohya版LoRA(sd-scriptsのやつ)と同じ見た目ですね。
steps: 20%|████████████▌ | 16/80 [00:29<01:56, 1.82s/it, loss=0.105]epoch 2/5
steps: 40%|████████████████████████▊ | 32/80 [00:31<00:47, 1.01it/s, loss=0.0976]saving checkpoint: C:\SD\stable-diffusion-webui\outputs\train_tools\projects\otameshi\versions\v2\trains\nai-bs-1-ep-5-op-Lion-lr-0_0001-net-128-ap-64\otameshi-v2-000002.safetensors
epoch 3/5
steps: 60%|█████████████████████████████████████▏ | 48/80 [00:34<00:23, 1.38it/s, loss=0.0867]epoch 4/5
steps: 80%|█████████████████████████████████████████████████▌ | 64/80 [00:37<00:09, 1.71it/s, loss=0.0998]saving checkpoint: C:\SD\stable-diffusion-webui\outputs\train_tools\projects\otameshi\versions\v2\trains\nai-bs-1-ep-5-op-Lion-lr-0_0001-net-128-ap-64\otameshi-v2-000004.safetensors
epoch 5/5
steps: 100%|███████████████████████████████████████████████████████████████| 80/80 [00:40<00:00, 1.98it/s, loss=0.064]save trained model to C:\SD\stable-diffusion-webui\outputs\train_tools\projects\otameshi\versions\v2\trains\nai-bs-1-ep-5-op-Lion-lr-0_0001-net-128-ap-64\otameshi-v2.safetensors
model saved.
steps: 100%|███████████████████████████████████████████████████████████████| 80/80 [00:42<00:00, 1.89it/s, loss=0.064]
不具合なのか、学習開始後はWebUIで操作ができなくなります。
そのため、学習終了後は一度ターミナルを閉じて、再度WebUIを起動します。
完成したLoRAを使用する
LoRAファイルの出力、保存先は?
完成したLoRAファイルは、「stable-diffusion-webui\outputs\train_tools\projects」フォルダ内にプロジェクト名ごとに分かれて保存されています。
今回だと以下のようなパスでした。
stable-diffusion-webui\outputs\train_tools\projects\otameshi\versions\v2\trains\nai-bs-1-ep-5-op-Lion-lr-0_0001-net-128-ap-64\otameshi-v2.safetensors
使用したいファイルをコピペして、LoRAフォルダに移せば使用できます。
「stable-diffusion-webui\models\Lora」
LoRAを使用してみる
Loraファイルを配置し終えたら、いつもどおりWebUIを起動します。
「Generate」ボタン下の「花札マーク🎴ボタン」をクリックします。
花札マーク🎴がない場合、WebUIのバージョンが古すぎるので下記ページ通りにアプデしてください。
念のため「リフレッシュ」を押してから、Loraタブ内から使用したいloraを選択しクリックします。
すると自動でプロンプトに<lora:ファイル名:1>などと挿入されるので、それで生成すると学習結果が反映されています。
まあ今回はデータセットの例を示すために既に出せちゃう初音ミクだったので、キャラ学習もなにもないんですが。。。
ちなみに繰り返し1,エポック5では事実上何も効果ありませんでした。
しかし適用は正常にされていますね(うなじあたりに注目)
大体デフォルトの数値で学習したらこうなったという事例のひとつとして礎にしてください。
LoRA適用前
Negative prompt: bad quality, low quality,
Steps: 28, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 2658281625, Size: 512×512, Model hash: f6957e654e, Model: 7th_anime_v3_C, Clip skip: 2, ENSD: 31337
LoRA適用後
Negative prompt: bad quality, low quality,
Steps: 28, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 2658281625, Size: 512×512, Model hash: f6957e654e, Model: 7th_anime_v3_C, Clip skip: 2, ENSD: 31337
3, まとめ インストールが手軽なLoRA学習「Train Tools」を使う
- URLからWebUI(1111)に拡張機能をインストール
- プロジェクトとバージョンを設定
- データセットを上げる
- データセットを加工、キャプション付けなどを行う
- 各種パラメータを選んで学習開始
- Xformersの代わりにSPDAを使用してる人は注意
- 学習を終えたら一度WebUIを閉じる
- 解説書いてる時点では、学習開始以降WebUIへの操作が効かなくなるので
- 完成したLoRAファイルを所定のフォルダへ移動
- WebUIを起動
- 🎴(花札ボタン)からLoRAを適用
だいぶLoRAのハードルが下がりましたね。
もうコマンドをベタ打ちしたり、ポップアップを無限クリックしたり、別の拡張機能を使ってタグ付けしたり、複雑なディレクトリやフォルダ名の付け方などに悩まされることはありません。
インストールもこの上なく簡単にできますね!!
VRAMが潤沢ならコチラのDreamBoothもおすすめです。
タグ付けや手動で色々インストールする手間がありません。