PR

ローカル環境でLoRA学習を始めよう!Stability Matrixとkohya_ssの使い方を徹底解説

ComfyUI
ユキ
ユキ

管理人さーん、私のオリジナルキャラ作ってみたよ!

管理人
管理人

どれどれ?お、いい出来じゃないか!

ユキ
ユキ

でもでも、作っていくうちになんか違うキャラになっちゃって・・・

管理人
管理人

それなら、そのオリジナルキャラのLoRAを作ればいいんじゃないかな?

ユキ
ユキ

えっ?LoRAって作れるの?

管理人
管理人

うん、LoRAは自分で作ることができるんだ。

じゃあ今回はLoRAのトレーニング方法を紹介するね

画像生成AIを使っていると、

  • 「自分のオリジナルキャラクターをもっと安定して生成したい」
  • 「お気に入りの画風を学習させたい」
  • 「毎回同じプロンプトを書くのが大変」

と思ったことはありませんか?

そんなときに役立つのがLoRA(Low-Rank Adaptation)学習です。

LoRAを作成すれば、少ない学習画像でも特定のキャラクターや服装、ポーズ、画風などを効率よく学習させることができます。

以前はPython環境の構築やライブラリのインストールなど、初心者にはハードルが高い作業が必要でした。しかし現在はStability Matrixを利用することで、kohya_ssのインストールや管理を簡単に行えるようになり、ローカル環境でもLoRA学習を始めやすくなっています。

この記事では、

  • LoRA学習とは?
  • Stability Matrixでkohya_ssを導入する方法
  • 学習を始めるための準備
  • 学習設定の基本
  • LoRA作成までの流れ

を、初心者向けに分かりやすく解説していきます。

Stability Matrixを導入している方向けの記事ですので、まだの方は参考記事もご覧ください。

LoRA学習とは?

LoRA(Low-Rank Adaptation)とは、画像生成AIに新しいキャラクターや画風、服装などを追加学習させる技術です。

ベースモデルの性能を活かしたまま学習できるため、比較的少ない画像枚数でもオリジナルのLoRAを作成できます。

例えば、次のような用途に活用できます。

  • オリジナルキャラクターの学習
  • 画風の再現
  • 服装や髪型の学習
  • 表情やポーズの再現

画像生成AIを自分好みにカスタマイズしたい方におすすめの技術です。


Stability Matrixとは?

Stability Matrixは、ComfyUIやAUTOMATIC1111、Forgeなどの画像生成AI環境を一元管理できるランチャーソフトです。

Packages機能を利用すれば、kohya_ssなどのLoRA学習ツールも簡単に導入できます。環境構築の手間が少なく、初心者でも始めやすいのが特徴です。


kohya_ssとは?

kohya_ssは、LoRAを作成するための定番学習ツールです。

WebUIから操作できるため、学習画像や設定を指定するだけでLoRAを作成できます。

主な特徴は以下のとおりです。

  • LoRA学習に対応
  • GUIで簡単に操作できる
  • 学習設定を細かく調整できる
  • キャラクターや画風など幅広い学習に対応

現在では、LoRA学習を行う多くのユーザーに利用されている代表的なツールです。

LoRA学習の手順

この記事で行う作業

本記事では、以下の手順でローカル環境にLoRA学習環境を構築していきます。

  • Stability Matrixを起動しPackagesからkohya_ssをインストールする
  • 学習用画像を準備する
  • キャプション・タグを作成する
  • 学習設定を行う
  • LoRAの学習を開始する
  • ComfyUIでLoRAを読み込み、生成結果を確認する

初めてLoRA学習に挑戦する方でも、この順番で進めればスムーズに環境を構築できます。

Stability Matrixを起動しPackagesからkohya_ssをインストールする

StabilityMatrixを起動しパッケージを追加→Trainingタブからkohya_ssをインストールしてください。

学習用画像を準備する

LoRAの完成度を左右する最も重要なポイントが学習用画像です。画像の品質が高いほど、再現性の高いLoRAを作成できます。

今回は、オリジナルキャラクターを学習させることを想定して進めます。

学習画像を用意する際は、次のポイントを意識しましょう。

  • ピンボケやノイズの多い画像は避ける
  • キャラクターがはっきり写っている画像を選ぶ
  • 同じキャラクターの画像を複数枚用意する
  • 表情やポーズ、構図にバリエーションを持たせる

学習枚数の目安

画像枚数は多ければ良いというわけではありません。まずは次の枚数を目安にすると学習しやすくなります

学習内容おすすめ枚数
キャラクター20〜50枚
画風30〜100枚
服装・小物15〜40枚

フォルダに保存

学習用の画像は一つのフォルダに保存しておいて下さい。kohya_ssをインストールしていれば以下のフォルダが使いやすいかと思います。

StabilityMatrix-win-x64\Data\Packages\kohya_ss\dataset\images\フォルダ名

フォルダ名は「数字_○○」という名前にしてください。この数字が後で出てきますが「繰り返し数」というものになります。

また、後でキャプションを用意したりするときにファイル名がそろっていた方が良いので、リネームしておくことをお勧めします。

例:Ctrl+Aでファイルを全選択、F2または右クリックから名前の変更、ファイル名を入力しEnter、するとファイル名(1)、ファイル名(2)と連番でリネームできます。

キャプション・タグを作成する

学習用画像の準備ができたら、次はキャプション(タグ)を作成します。

キャプションとは、画像に写っている内容をAIへ伝えるためのテキストです。AIは画像だけでなく、このキャプションも参考にしながら学習を行います。画像生成の際プロンプトを入力してますよね。ようはアレです。

例えば、キャラクターLoRAを学習する場合は、次のようなタグを付けます。

1girl, blonde hair, blue eyes, ponytail, school uniform, smile

画像ごとにキャプションを用意することで、AIは髪型や服装、表情などの特徴をより正確に学習できるようになります。

キャプションは自動生成がおすすめ

画像が数十枚ある場合、1枚ずつ手作業でキャプションを作成するのは大変です。

そのため、多くの方はJoyCaptionWD14 Taggerなどの画像キャプションモデルを利用して、自動でキャプションを生成しています。

自動生成したキャプションは、そのまま使うのではなく、不要なタグを削除したり、学習させたい特徴を追加したりすると、より品質の高いLoRAを作成できます。

キャプションについては詳しく書いた記事があるのでそちらを参考にしてください。

キャプションの保存

キャプションは対応した画像と同じ名前で、同じフォルダに入れてください。

例えばcharacter01.pngという学習画像には、character01.txtというテキストファイルを用意してください。

kohya_ssで学習設定を行う

学習画像とキャプションの準備が完了したら、kohya_ssで学習設定を行います。

設定項目は数多くありますが、最初は基本的な項目だけ押さえておけば問題ありません。

主に設定する内容は次のとおりです。

  • 学習画像の保存フォルダ
  • 出力先フォルダ
  • ベースモデル
  • 学習回数(Epoch)
  • 保存間隔
  • 学習率(Learning Rate)
  • ネットワーク設定(LoRA Rank・Alpha)
  • バッチサイズ
  • 解像度

今回は初心者向けに、基本設定のままでも高品質なLoRAを作成できる構成で進めていきます。


ベースモデルを選択する

まずは学習のベースとなるモデルを選択します。

学習後のLoRAは、基本的に学習に使用したベースモデルで利用することになります。

そのため、普段使用しているモデルや、今後メインで使う予定のモデルを選ぶのがおすすめです。

赤枠がモデルの選択です


学習画像フォルダを指定する

続いて、先ほど準備した学習画像フォルダを指定します。

キャプションファイル(.txt)が画像と同じフォルダに保存されていれば、自動的に読み込まれます。

フォルダを指定したら、画像枚数やキャプションが正しく認識されているか確認しましょう。

青枠が画像フォルダ選択です

LoRAファイル名を入力する

緑枠が出来上がるLoRAのファイル名になりますが、今入力してもいいですし、後でリネームしてもかまいません。

出来上がるLoRAを保存するフォルダを設定する

「folders」タブを開いて、赤枠が出来上がるLoRAを保存するフォルダの設定となります。

トレーニングの設定値を入力する

設定値を入力する前に何回学習させるかを決めてください。これを総ステップ数といいます。

キャラLoRAなら1000~2500くらいともいわれますが、用意する画像や、設定などにより、正解は異なりますので試してみてください。

多めに設定しておいて指定したエポック数ごとにその時点でのLoRAが作成できる設定がありますからそれを活用ください。

学習回数の計算は以下の通りで

  • 計算式: 画像枚数 × 繰り返し数 × エポック数 = 総ステップ数

例えば2500ステップで学習させます。500ステップごとにLoRAを作りたいという場合は。

画像枚数 × 繰り返し数 × 5 = 2500

という風にして、500/画像枚数が繰り返し数となります。切りのいい数字にこだわる必要はないので、用意した画像枚数に応じてそれぞれの数字を調整してみてください。

赤枠の「train batch size」は一度に何枚学習させるかという設定で、貧弱なGPUの方は1を高性能な方はGPUに応じて増やすことができます。

「epoch」が先ほど説明したエポック数です。計算した数字を入れましょう。

「Max train steps」はステップ数の最大値です。予定学習数より大きい数字を入れましょう。

赤枠で囲えていないのですが、「Save every N epochs」は何エポックごとにLoRAを保存するかという設定です。

緑枠の「optimizer」は学習の仕方みたいなイメージで通常「AdamW」を使えばいいです。VRAMが足りない、少ないという方は「AdamW8bit」を使用してください。

青枠の「Learning rate」は学習率で「0.0001」で大丈夫です。

赤枠の「Max resolution」は画像の解像度で、SDXLなら1024×1024でいいです。お使いのモデルによって変更します。

青枠の「Text Encoder learning rate」はテキストエンコーダーの学習率でキャプションとも関係します。「0.00005」でいいです。

緑枠の「Network Rank 」「Network Alpha」は学習の強さの設定で、SDXLのキャラLoRAなら画像の設定値を参考にしてください。

「Samples」というタブを開くとこのような画面が出てきます。

赤枠は何ステップごとにサンプル画像を生成するか、という設定です。

青枠は何エポックごとにサンプル画像を生成するか、という設定です。

緑枠は生成する画像のプロンプト入力欄です。

設定は保存しておこう

以上で設定は完了です。次回以降同じ設定を使用するために設定は保存しておきましょう。

一番上まで戻って「configuration」タブから「Load/Save Config file」で保存します。

「Load/Save Config file」から保存した設定を読み込むこともできます。

トレーニングを開始しよう

一番下まで戻って「Start training」をクリックしトレーニングを開始します。

あとはひたすら待つだけです・・・

StabilityMatrixの画面(コマンドが流れている画面)で進捗状況が確認できるので確認してみてください、エラーがあれば止まりますし、設定にミスがあれば学習にものすごい時間がかかります。

出来上がったLoRAを使ってテスト生成してみよう

ComfyUIのワークフローを開いて、LoRAを設定して画像を生成してみてください。

トリガーワードは忘れずに。

LoRAが複数あるならそれぞれ生成して、その結果を見て成功かどうか判断してください。

その時いいなと思っても、使っていくうちに気になる点が出てくるかもしれません。

まとめ

ユキ
ユキ

ちょっと大変だったけど、これでLoRAが作れるんだね♪

管理人
管理人

そうだね、ローカル環境でのLoRAトレーニングはこれでOKだよ!

ユキ
ユキ

よーし!たくさんLoRA作っちゃうぞ~

LoRA学習は難しそうなイメージがありますが、Stability Matrixとkohya_ssを使えば、初心者でもローカル環境で始められます。

学習用画像やキャプションを用意し、基本的な設定を行えば、自分だけのキャラクターや画風を学習させたLoRAを作成できます。

最初から完璧な設定を目指す必要はありません。画像枚数や学習回数、各種パラメータを少しずつ調整しながら、自分の目的に合ったLoRAを育てていきましょう。

ぜひ本記事を参考に、オリジナルのLoRA作りに挑戦してみてください。

コメント

タイトルとURLをコピーしました