LoRAの導入と使い方
なんで今更?と思うかもしれませんが、こちらは2023/06/04時のFANBOXからの復刻記事です。
LoRAの紹介から学習に至るシリーズの最初なので、復刻させて頂きました。
前置きはこのくらいにして、早速いきましょう。
そもそもLoRAって何よ???
って話ですが。
ありていに言えば、モデルの追加パッチみたいなものです。
StableDiffusion に絵を描かせるために、みなさん、様々な絵柄のモデルというものを使ってますよね。
そこには様々な学習データが入っております。
私たちからの命令(prompt)を聞いたStableDiffusionちゃんは、モデルという資料と画材を使ってノイズだらけの画像から気合いで被写体となるものを見出して描き出してくれているわけです。

これが拡散モデル、いわゆるAIによるイラストの制作過程ですね。
で、LoRAというのは、そのモデルに沿える追加資料みたいなもんなわけですね。
「こういう絵柄で描いてほしい~」とか、「このキャラ描いてほしい~」だとか、「この武器持たせてほしい~」みたいな感じで、LoRAを添えて渡すことで、StableDiffusionちゃんはそれを資料として頭に入れた状態で絵を描いてくれるわけです。
上の画像では、『超スーパーデリシャスワンダフルキュートな黄色い鳥の絵を描いて』と頼んだのに、全然可愛くない化け物のような鳥を描かれていますね。

ここに 本来の私の真の姿を学習させたLoRAモデル を追加資料として手渡すことで、次回からは正確な描写で神々しくも儚い魅力を持った美しい小鳥を描いてくれるという寸法です。 やったぜ。
では、まずはLoRAを使用する方法から始めましょう。
LoRAを使ってみる
現在の AUTOMATIC1111 / stable-diffusion-webui であれば、LoRAは標準対応しているため、すぐに使うことができます。
まずは試しに配布されているLoRAを試してみましょう。
主な配布サイトは Hugging Face や CIVITAI があります。
個人的にサンプル画像が並んでいて見やすい CIVITAI をよく閲覧しています。
とりあえず、今回は CIVITAI を例に使いましょうか。
閲覧にはユーザー登録が必要だったと思いますので、最初は登録からになるんじゃないでしょうか。
SNFWなアダルト向けのモデルも多数置いてあるため、18歳未満の方は見ないようにお願いします。
アダルト系をフィルタする機能もありますので、目障りだという場合は画像を参照して、右上のフィルタ機能を使ってみてください。


ここで LoRA に絞って検索することができます。
モデルである Checkpoint や、他の追加学習モデルなんかも置いてありますが、横道に逸れてしまいますので今回は割愛させてください。
LoRA には実は様々なタイプのものがありますが、全部ごちゃまぜで出てきます。
イラスト全体の絵柄を適用するタイプ
キャラクターの外見や小物を再現するタイプ
キャラクターのポーズを覚えさせたタイプ
その他、デフォルメ度合いや、書き込み量を操作するカスタマイズ用
大きく分けて、このような内容の物があります。
素の StableDiffusion のままでは描画しにくい暗い画面のイラストを描けるLoRA、なんかもあります。
※問題のありそうなLoRAも沢山ありますが、使用は必ず自己責任で行ってください。
有名イラストレーターの絵柄の過度な模倣や、実在の人物のモデルなんかの使用には特に注意を払い、使用しても個人で楽しむに止め、公表などしないことをお勧めします。
最悪の場合、炎上のリスクを伴い、ご本人からの訴訟や、ファンからの袋叩きに合う可能性も十分にあります。
すべての関係者に敬意を払い、迷惑をかけないよう心掛けてください。
何かしらの問題が起こったとしても、私は責任を持ちませんので、あしからず。
今回は Vivid Watercolors LoRA Extraction を例に試してみようと思います。
名前の通り、再度の高いビビッドな水彩画風にしてくれるというLoRAです。
普段のアニメ絵柄とは一風変わった効果が期待できるかもしれません。

画面右上、青いボタンに『 Download Latest (144.11MB) 』とありますので、これを押すとLoRAモデルをPC内にダウンロードできます。
現在は vividWatercolorsLora_10.safetensors というファイル名のようです。
拡張子を見てわかる通り、LoRAもモデルの一種なんですね。
ですが、普段のモデルとは違う場所に入れなくては正しく動作してくれません。

ご自身がインストールしている stable-diffusion-webui のフォルダから、こちらのフォルダを開いて、その中に先ほどのLoRAを入れてください。
親の顔より見ているいつもの画面に移動し、オレンジ色の『 Ganerete 』ボタンの下に、赤い花札のようなアイコン があります。
それを押すと、追加学習系のモデルを格納しているウィンドウが開きますので、今回はその中から LoRAタブ をクリックしましょう。
フォルダに入れたLoRAが見つからない場合、Refleshボタンを押すことで表示されるようになるかと思います。

「NO PREVIWEW」 という文字の入った灰色のアイコンの下に、vividWatercolorsLora_10.safetensors の名前が見えていればファイルは正しいフォルダに入っていたということになります。
こちらの灰色のアイコンは、後で実際に自分で作成した画像で差し替えることができます。
どんなLoRAなのかを一目で把握できるようになりますので、その方法も後程紹介しますね。
では、実際に使用してみたいと思います。
今回はまず、使用していない状態でプロンプトに「1 girl, BREAK」というプロンプトを打ち込み、LoRAの使用前画像を作っておきました。
『BREAK』 というプロンプトはピリオドくらいの気持ちで考えてください。
75トークンという単位で命令は送られていくのですが、どんなに短いpromptでもBREAKを打ち込むことで75トークンまで埋めてくれるため、余計な要素が入りにくくなります。
わかりやすく例えると、75個卵が入る段ボールに1個だけ卵を入れて、あとはBREAKというクッション材を詰めることで送っても卵が割れないね、という感じです。
同じようなコマンドにANDも存在しますが、話が逸れますのでまた今度。

ああ、顔面のドアップ構図が出ました。 作例として丁度良いです。
では、LoRAを適用したものを作成してみましょう。

先ほどの画面のLoRAの灰色のアイコンをクリックしてみます。
すると、プロンプトの欄に <lora:vividWatercolorsLora_10:1> というプロンプトが打ち込まれました。
この文言があることで、該当のLoRAを適用することができるわけですね。
ですが、今回はもう1つ必要なワードがあるのです。

それがこちら。
先ほどのDLページの右側にある枠の中に、「 Trigger Words 」という項目があり、右側の□のアイコンをクリックすることで、その内容をコピーできます。
これをプロンプトに張り付けましょう。
今回は「 wtrcolor style 」と書き込む必要があるようですね。
実はこれ、必要無いタイプのLoRAも普通に存在します。
LoRAの効果を引き出すためのトリガーなわけですが、例えばこんな場合があります。
既存のゲームキャラクターを再現するLoRAだった場合、衣装違いVerがあったりします。
顔は同じなんだけど、髪型や衣装が違うんだよね~っていうとき、この Trigger Words がそれぞれの衣装Verに対応していたりするわけですね。
今回の LoRA では1ワードなのですが、必要だからこそ設定されているので、ちゃんとコピペして使いましょう。
LoRAは作者さんのご厚意でアップロード&配布されているわけですが、突然気が変わったなり何なりで突然公開が停止される場合があります。
Trigger Words を忘れないように、きちんとメモなりして保存しておきましょう。

はい、ちゃんと打ち込みました。
BREAKはもちろん、最後に移動させています。
ピリオド代わりに最後に打ち込むものですからね。

おお~!!
……うん。 ……あれ???
今回のLoRAはビビッドな水彩風ということでしたが、私のマットな塗りが売りのオリジナルマージモデルとは相性が良くなかったようです。
なんとなく雰囲気は出てますが、作例のような感じではないですね。
まぁ、それもそのはずで、LoRAは作者さんのモデルや環境でしっかり動作確認をされたものであって、それが他の環境でも同じように作用するとは限らないわけです。
では、今度はもうちょっと効果の出そうなモデルで試してみましょう。

んあ~、プロンプトの文字数も違うので仕方ないのですが、SEED値が同じでも結構違う絵になるようですね。
まぁ、本来はLoRA適用状態でガチャる感じなので、あまり困ることはないですが。
さて、1点覚えておきたいことがありまして。

LoRAのアイコンをクリックした際に自動で打ち込まれた
<lora:vividWatercolorsLora_10:1>
という、文言ですが。 最後の 【 :1 】の数字を変えることで、LoRA適用の強さを変えることができます。
最初入っている 1 がデフォルトだと認識しておいてください。
効果を緩めるには、<lora:vividWatercolorsLora_10:0.5> のように小数点で弱める使い方をします。
なぜかというと、1以上にしてしまうと、過学習のような出力になってしまって画像が崩れがちだからです。


2まではギリギリいけそうですが、3になると明らかに崩壊が進んでいます。
5に至っては完全に崩壊してしまいましたね。
また、描き込み系のLoraの場合、

マイナスをつけることで効果を反転させることも可能です。
これに関してはこちらの記事で紹介しています。
では最後に、LoRAごとのサムネイルの話だけして終わります。

画像を作成し終わった状態で、LoRAの灰色のアイコンの上にマウスカーソルを持って行ってみてください。
すると、replace preview という白い文字が出てきます。
そこにマウスカーソルをしっかり合わせると画像のように赤くなるので、クリックしてください。

すると、LoRAアイコンが作成した画像に変わります。
複数制作していた場合は、その中の1枚をクリックして選択した状態で、同じように replace preview を押せばよいはずです。
では、以前制作したイラストをプレビューに設定したい場合はどうすれば良いのか。

実は、LoRAモデルを入れたフォルダに、同じ名前のpngファイルとして保存されているだけなのです。
\stable-diffusion-webui\models\Lora
なので、以前制作したpngファイルを持ってきて、LoRAと同じ名前にリネームしてしまえば以後適用されます。
やはりアイコンで見られると使いやすいので、気に入った画像をその都度設定していきたいものですね。
以上で、LoRAを使ってみるという内容は終了です。
今後は有料記事の方で、自分の絵を学習させて『自分の絵柄のLoRA』を作る方法だとか、自分でサンプル絵を複数用意して『うちの子 LoRA』を作る方法も追って説明していければと思います。
改行を多くしたり画像を入れることで、なるだけ目に入る情報を削ることで読みやすくなっているのではないかな~と思うのですが、どうでしょう?
逆にスクロールが多すぎて面倒だ!という方もいるかもしれませんが、私はこのスタイルでやっていきますので、ご了承くださいませ。
こういった情報は、数か月後に自分が忘れてそうなので、手取り足取りやり方を書き残しています。
今後も楽しみにお待ちいただけると幸いです。
