banner_image ×
SeaArt AI Enterprise Version
article cover

【初心者向け】SD1.5用のLoRAを作る

avatar
E
ef80b9588d5ed4045a391a09fb0ffcbb
Updated on Oct 16, 2024
0
#Articles

SD1.5用のLoRAを作る

本記事ではSD1.5用のLoRAを作るためのチュートリアルを解説します。

なお、本記事は2024年10月時点での内容です。


#1. そもそもLoRAとは

LoRA は、"Low-Rank Adaptation" の略で、大規模なAIモデルを効率的に微調整する技術 のことを指します。画像生成以外の分野のLoRAもあるようですが、以下ではStable Diffusion でのLoRAに限定します。
端的に言えば、Stable Diffusionの"モデル"と呼称されるものには"
Checkpoint" と "LoRA"があり、両者とも既存の画像を読み込んで学習する、という点において共通していますが、前者は膨大なデータを取り込んで学習するのに対し、後者は少ないデータで高品質な画像を得られる、という違いがあります。LoRAはCheckpointに対して追加学習を行うことで得られます。


#2. LoRAのイメージ

#1はちょっと難しかったと思うので、LoRAがどんなものなのか、イメージをお伝えします。
LoRA のイメージは簡単に言えば、
ベースモデルと教師画像との差分です。ではベースモデルとは何かと言いますと、その名の通りトレーニング時にベースにするモデル(Checkpoint)であり、LoRA を作る際の土台となる部分です。また、教師画像とは求める画像の例です。
そしてこの両者の差分をAIが学習し、出力される差分がLoRA です。厳密には"ベクトルの変換・調整行列"に近い概念ですが、LoRA を作成したり使用する上では
ベースモデルと教師画像との差分という理解で全く問題ありません。

では何故LoRAなんてものが欲しくなるのかと言うと、端的に言えばCheckpointは"見たことがないような画像"を生成できないからです。
どういうことかと云うと、そもそもCheckpointはそれが作られるときに膨大な量の既存の画像を見て学習しています。画像を生成するときは、その学習時に見た画像から要素を取り出し、組み合わせて生成します。しかし、その学習時に見た画像の数が有限である以上、どうしても"見たことのない要素"が発生してしまいます。それを補完するためにLoRAが必要となるのです。


#3. LoRA の作成準備

前置きが長くなってしまいましたが、本題に入りましょう。

Step 1. 作成するLoRA に求めるもの

LoRA を作成する前に、どのようなLoRA が欲しいのかを明確にする必要があります。例えば、「ふわふわした雰囲気の画像を作りたい」とか、「XXというアニメのキャラを再現したい」とか、「ジブリ作品のような風景を生成したい」とかです。
意外とこのステップは大切で、これが明確でないと「なんかこれじゃないんだよなぁ〜」なんて事になります。
今回は例示として、幻想的な風景の壁紙を作れるようなLoRAを目指します。

Step 2. 教師画像を用意する

LoRAに何を求めるかが決まったら、教師画像を用意しましょう。今回は似た系統の画像をPinterestで拾ってきました。
教師画像の枚数は、多ければ多い方が良いのですが、それほど深刻になる必要はありません。少なくてもなんとかなります。少な過ぎるのは良くないですが、15枚以上あれば良いでしょう。今回は15枚でやってみることにします。
一部の他の外部サイトでは、背景を透過させないとダメなどと書いてありますが、そんなことはありません。
めんどくさいし。また、事前に切り抜く必要もありません。SeaArt上で出来ます。


#4. LoRA作成

ようやく作成に入ります。と言っても、そんなに難しくないので大丈夫です。

Step 1. 教師画像のアップロード

まずは、用意した教師画像をSeaArtにアップロードしましょう。
画面上部の「トレーニング」をクリックし、「データセットを作成」を選択します。一応
リンク を貼っておきます。

水色の「画像アップロード」を選択し、教師画像をアップロードしてください。ここまでは全然難しくないと思います。

Step 2. 切り抜きとタグ付け

教師画像をアップロードできたら、切り抜きとタグ付けをしましょう。タグ付けとは何かと言いますと、簡単に言えばその教師画像の要素を言語化したものです。例えば、「landscape」「wallpaper」「anime girl」「sunset」などのようなものです。要するに、その教師画像を生成するときに出すであろうプロンプトです。
ただ、これを1枚1枚やっていくと途方もない作業なのでAIにやらせましょう。アップロードした画像の下の方に「タグ付け閾値」とか「トリガーワード」とか見慣れない文字が並んでいると思います。ここを設定します。設定する項目は以下の5つです。

  • 切り抜き方式
  • 切り抜きサイズ
  • タグ付けアルゴリズム
  • タグ付け閾値
  • トリガーワード

初心者の方はそろそろアレルギー反応が出る頃でしょうが、大丈夫、一つずつ解説していきます。
切り抜き方式には、フォーカス切り抜き、センター切り抜き、切り抜き不要の3つがあります。どれも名前の通りの切り抜き方式の種類ですが、おすすめはフォーカス切り抜きです。画像を自動でいい感じに切り抜いてくれます。事前に背景処理とサイズ処理をした場合は、切り抜き不要で良いです。
切り抜きサイズは、512x512か512x768か768x512の3通りがあるのですが、教師画像のアスペクト比に合わせてください。ただ、これも深刻に考える必要は無くて、正方形の教師画像なら512x512,縦長または横長なら512x768または768x512にすれば良いです。注意としては、切り抜きサイズは一括指定なので自分の教師画像の全体を見て決める必要があります。
タグ付けアルゴリズムはデフォルトのDeepbooruにしましょう。これは下手に変えるとLoRAが機能しにくくなるので弄らなくて良いです。というのも、他のアルゴリズムを使うとタグの区切り方が変わってしまい、生成時のプロンプトに反応しにくくなるのです。
タグ付け閾値は、デフォルトでは0.3ですが0.6を推奨します。本来はもう少し低めに設定し、あとでタグを編集するのですが、今回はタグの編集を省くためにこの値にします。LoRAに慣れてきたらタグの編集をやってみましょう。


最後に
トリガーワード。これはLoRAが効果を発揮するための、文字通り「引き金」となる単語です。設定しなくても良いですが、一応設定することを推奨します。どんな単語でも設定できますが、"wallpaper"などの一般的な単語では他のプロンプトに埋れてしまい、トリガーワードの意味をなさないのでなるべく一般的でない単語にしましょう。ちなみに筆者は「arcadia」にしました。

以上の5つを設定したら、右下の水色のボタンを押して切り抜き・タグ付けを開始します。少しだけ時間がかかるはずです。

こんな画面になっていれば大丈夫

Step 3. パラメーター設定

もうそろそろ辛くなってきたでしょうが、あと少し。画面左側のパラメーターを設定します。難しそうに聞こえますが、そんなに身構えなくて大丈夫です。
まず、左上のテンプレートを選択します。選ぶテンプレートは、目的のLoRAがどんなものであるかに関わらず、「カスタマイズ」を選択してください。
次に、真ん中辺りにある
基本モデルを設定します。これは、求めるLoRAによって変える必要があり、目的のLoRAがアニメ系なら"AnyLoRA"一択です。実写系なら"DreamShaper"または"ChilloutMix"を推奨します。ただ、実写系は普段自分が気に入って使っているモデルでも構いません。

次に
繰り返し数とエポック数を設定しましょう。難しそうに見えますが、ここも意外と単純で複雑に考える必要はありません。
まず
エポック数は20で固定です。
次に
繰り返し数ですが、ここは少しだけ計算が必要です。大体でいいですが、(教師画像数) x (エポック数) x (繰り返し数)が1500〜3000くらいを目安に、繰り返し数を調整しましょう。今回筆者は教師画像数15,エポック数20,繰り返し数10の1500ステップで挑戦しました。

Step.4 トレーニング開始

さて、以上を設定出来たらトレーニング開始です。右上にある水色の「今すぐトレーニング」のボタンを押してみましょう。

こんな画面になればOK

ここには多少時間がかかるのでコーヒーでも飲んで待っておきましょう。
しばらく経つと、20個のプレビューが出てきます。基本的には20個目を選択し、水色の投稿ボタンを押せばOKです。ただ、20個目のプレビューが気に入らなかった場合は最後の方から気に入ったものを選んでも構いません。その辺は柔軟に対応してください。
細かいことを言うと本来はログビューからLossを見て選ぶ方が良いので、トレーニングに慣れてきたらそちらも見てみてください。
今回筆者は
脳死で20個目を選びました。

今回は16エポック目以降完全に収束しているので、どれを選んでも良いです。

投稿できたら、実際に使ってみて効果を確かめましょう。使用するCheckpointはトレーニングに使ったベースモデルと一致させる必要はありません。好きなCheckpointで構いません。稀に相性が悪いモデルがあるので、複数のCheckpointで試すことを推奨します。

こんな感じになった。成功。


#5. まとめ

以上、SD1.5でのLoRAトレーニングについて解説しました。今回の例示で作成したLoRAは公開しておきます。同スタイルでのトレーニングを許可しておいたので、データセットを参考にしたい場合は見てみてください。

Arcadia

また、ご質問・ご不明点がありましたらコメントを残していただくか、上記のSeaArt上のLoRAにコメントして頂けると助かります。



0
0
0 comment
0
0
0
Related Articles
logo
English
Application
Create Image AI Characters Swift AI Model Training Canvas AI Apps Workflow
About
Studio Rankings AI Chat AI Blog AI News
Help
Guides Customer Service
Get App
icon
Download on the
APP Store
icon
GET IT ON
Google Play
Follow Us
iconiconiconiconiconiconiconicon
© 2025 SeaArt, Inc.
Copyright Policy
Terms
Privacy 特定商取引法 資金決済法に基づく表示
More