Stable Diffusionで画像を生成していると色々な学習データを使うことになります。
みなさんCIVITAIなどからたくさんダウンロードして使っていますよね。
そんな学習データをご自身で作成してみたくはありませんか?
『Kohya’s GUI』を使えば可能です。
「Kohya’s GUI」とは?
Stable Diffusionで使うさまざまな学習データの制作をサポートしてくれるツールです。
「Kohya S」氏の開発した「sd-scripts」をベースに「bmaltais」氏がGUIとして公開しています。
「sd-scripts」は全てをコマンドライン上で操作する為、扱う難易度が高いのですが、「Kohya’s GUI」は視覚的に理解できる部分も多く、lora制作では世界で一番使用されているツールだと思います。
この機能をうまく使いこなせると、V1.5、V2、SDLXで使う
- DreamBooth、U-NetおよびText Encoderの学習をサポート
- fine-tuning、同上
- LoRAの学習をサポート
- 画像生成
- モデル変換(Stable Diffision ckpt/safetensorsとDiffusersの相互変換)
これらの学習データの生成を行う事ができます。
基本的にはWindows専用となっており、有志の方々のサポートを通じて、LinaxやMacユーザーでも使うことが可能です。
ただ最近SDXL用の機能と統一されてしまって以降、色々と不具合が出ていてV1.5用のデータの作成がかなり難しくなっているようです。
人気の高いツールですので、いずれ修正されると思われます。
基本的な使用方法を知っておいて損はないでしょう。
「Kohya’s GUI」の導入方法
Windows にset up する為には、必要なものは以下の3つです。
・Python 3.10
・Git
・Visual Studio 2015、2017、2019、および 2022
Python とGITはStable Diffusion導入時に使っているはずなので、大丈夫だと思います。
Visual がもし必要でしたら以下から以下からどうぞ
では「Kohya’s GUI」を使えるように環境を構築していきます。
1、任意の場所にフォルダを作成し、そのフォルダのターミナルを開いて下さい。
2、次のコマンドを実行してリポジトリをクローンします。
git clone https://github.com/bmaltais/kohya_ss.git
任意のファイルの中に必要なモノがクローンされています。
3、その中のKohya_ssディレクトリに変更します。
cd kohya_ss
4、次のコマンドを実行してセットアップスクリプトを実行します。
.\setup.bat
基本的にはこれでOKですが、NVIDIA製の30xx以上のグラフィックボードをお使いの方はオプションとして CUDNN 8.6使用することで学習速度が最大50%もアップします。
CUDNN 8.6こちらからダウンロードできます。
そして、ダウンロードしたファイルを解凍し、cudnn_windowsフォルダをkohya_ssリポジトリのルートディレクトリに配置して下さい。
.\Setup.batを実行し、cudannをインストールするオプションを選択して下さい。
以上でWindows へのset up は終了です。
LinaxやMacをお使いの方も「Kohya’s GUI」のset up方法についてはこちらに記載がありますので、この手順に沿ってやっていただければ大丈夫です。
起動するにはgui.batをダブルクリックして下さい。
http://127.0.0.1:7860にジャンプすると「Kohya’s GUI」が使えます。
でもLora作成の準備が結構あるので、それが済んでから起動すればよいでしょう。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
「Kohya’s GUI」の使い方
今回はLoraを作っていきますが、まずは画像の準備からやっていきます。
①素材画像を集める
お好きなキャラクターの画像を15枚くらい用意しましょう。
拡張子は.png もしくはJPEG形式で、ナンバリングして下さい。
できれば、白抜きで画像サイズ、ファイルのサイズにばらつきがない方がいいです。
私はいつもの所から調達したこのキャラクターを使ってみます。
ぼちぼち人気キャラの「四国めたん」さん。
全部で16枚あり、きちんとナンバリングされているのでとても使いやすいです。
(12)がサイズが合わないので、別途ツールでリサイズかけて使いました。
他の画像はそのままで使ってしまいます。でも本当は全部を512×512や768×768にリサイズした方が安定したものが作れるという意見もあります。
次にキャプションファイルを作ります。
②キャプションファイル作成
Lora作成は画像データのみでも作成可能ですが、トリガーワードのような呼び出し呪文を任意に設定したければキャプションファイルも一緒に学習してもらわなくてはいけません。
画像1つ1つに.txtのファイルを作っていくのは結構大変なので、Stable Diffusionの拡張機能の中に、キャプションファイル作りを手伝ってくれるものがあります。
手作業で一つ一つやっていくのもいいですが、こういった拡張機能を使って効率よく作業をするのもようでしょう。
これらの拡張機能の解説は今回は省きます。
なぜならば「四国めたん」さんは最初からキャプションファイルがセットになっているからです。
画像の番号とテキストファイルの番号が一緒でなくてはなりませんので、自分で制作される際は注意して下さい。
中身については編集が必要ですが「めたん」さんは、いらないものを削除するでけなのでお試し作成にはとても便利なのです。
③キャプションファイルを編集する
たとえばこの「めたん」さんにのキャプションをこんな感じにします。
「Screw-shaped cane」と「white background」以外は「metan」と学習してもらいます。
キャラクターの個性は「metan」に込めてしまうので、髪型や髪色、ヘアバンドは消してしまいます。
特徴的なポージングなどがある画像にはそれをキャプションとして残して下さい。
そういった感じで、16枚分キャプションファイルを作成します。
④ファイルを収納する
用意した画像とキャプションファイルを収納するファイルを作成します。
その収納するファイルの名前は学習を繰り返す回数の数字から始まります。
一つ覚えて欲しい方程式があります。Lora学習において
※ 1Epoch = 画像枚数 ✖️ 学習の繰り返し回数 のことです。
Epoch数の分だけそれを繰り返して、steps数となります。
Lora作成のsteps数は大体2000~5000が目安とされていますので、今回は画像枚数16、学習の繰り返し回数を10、Epochm数を16にしようと思います。
ですので、ファイル名を「10_metan」として16枚の画像と16枚のキャプションを全部入れます。
そして「10_metan」ファイルをinput用のファイルを作成して入れ、
そのファイルを「kohya_ss」フォルダの中に入れておきます。
さらに合わせて作成されたLoraが収まるoutput用のファイルも作成して「kohya_ss」フォルダに入れておきます。
階層的には上記のようになります。
⑤学習に使うモデルを入手する
最近イラスト系のLora作成で人気のモデルがあるのでこれを使います。
Any LoRAです。ダウウンロードしたい方はこちらからどうぞ
もちろん違うモデルでも作成できますのでお気に入りのモデルを使って下さい。
ただ後でパスで繋げるので、「kohya_ss」フォルダの中など、わかりやすいところにおいておきましょう。
⑥「Kohya’s GUI」を起動して設定をする
gui.batをダブルクリックして起動します。
最初の画面は「Dream booth」ですので、隣の「Lora」メニューを開きます。
Model Quick Pickは「custom」を選択し、Pretrained model name or pathにあなたが使いたいモデルファイルのパスを入力します。
次にfoldersを選択し、Image folderには画像とキャプションが入っているファイルの親ファイルのパスを、Output folderには先ほど作成したoutput用のファイルのパスを入力します。
Model output nameは完成品の名前になりますので、今回は「10_metan」とします。
次はPrametersのタグに移動して、Basic内のEpochに今回は「16」、Caption Extensionに「.txt」を入力、Save every N epochs途中で保存するepochsを決められます。今回は「4」にします。
その他の部分に関してはパソコンの性能次第なのでご自身で調整して下さい。
下側に行きます。
下にあるLearning rateは「0.00005」にしました。
Network Rank(Dimension)は「128」、Network Alphhaは「64」にします。
Advancedのタグを開いてClip skipを「2」にします(イラスト系は2でやります)。
以上でパラメーターのセットは終了です。
他にもさまざまな設定項目がありますので、ご自身で色々とお試しください。
⑦学習を実行する
Start trainingを押すと学習が開始されます。
エラーで止まったりするので、ターミナル画面で進捗を確認するとよいでしょう。
止まった場合はターミナルを確認して、Issueやネットで解決方法を探してみて下さい。
うまく解決できれば、Loraが完成します。
学習にはしばらく時間がかかりますので、止まらないことを祈りながらしばしお待ちください。
うまくいくと、④で作ったout put用のフォルダの中にLoraが出来上がっています。
今回はepochs(=学習強度)別に4つ完成しました。
作成したLoraを使ってみる
完成したLoraを使ってみます。
Loraファイルを「stable-diffusion-webui」→「models」→「lora」に移動します。
あとはLoraをプロンプト欄に入れて画像を生成します。
(以下今回作成したLoraで生成しましたが、最終epochs以外のLoraはイマイチでしたので載せません。)
このベタっとした仕上がりは完全に過学習です。人前に出すのは恥ずかしい出来です。
ちょっとLoraのウエイトを下げて使ってみます。0.6だと・・・
まだ強いです。もう少し下げて0.35くらいだと・・・
まずまず作画はできます。
でも次回作成機会があればLearning rateを調整してみようと思います。
まとめ
いかがでしたでしょうか?
Stable Diffusionで簡単にLoRAを作れる『Kohya’s GUI』の使い方!について解説してきました。
今回のポイントをまとめると、以下のようになります。
- 学習データが作れる『Kohya’s GUI』でLoraも作成できる
- GUIを使用できる環境構築をする
- 画像の用意からパラメータ設定までしたら学習開始
『Kohya’s GUI』は環境構築に若干の手間がかかりますが、Stable Diffusionの環境を構築できたあなたであれば大丈夫です。
自分で学習データを作成できると楽しみが広がります。
よろしければぜひ挑戦してみて下さい。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい