【初心者向け】Loraの使い方について!!
こんにちは、画像生成AIでひたすら猫のイラストを生成している猫大好きおじさんこと、じょじお(@jojio‗illust)です。
今回もStable Diffusionの記事です。
前回の記事でTxtual Inversionという追加学習の仕組みを使ったEasyNegativeという便利なファイルを使って、高品質な絵を生成する方法について紹介しました。
この記事では、最近流行の追加学習の方法であるLoRaファイルを使う方法について紹介したいと思います。
▲AI画像の大量ファイルをプロンプトと一緒に簡単に整理する方法はこちら。
▲素材に関連する英単語100個以上まとめました。
▲すべてのプロンプト関連記事はこちらにまとめています。
▲Midjourneyユーザー向け。専用Discordサーバーを作って画像生成作業を効率化する方法。
LoRaとは?
LoRaは、「追加学習の方法」、あるいは「LoRaによって追加学習したファイル」のことをいいます。
追加学習の方法には、下記の3つがあります。
- Textual Inversion
- Hypernetworks
- LoRa
一般的に追加学習は、通常の画像生成よりもPCのスペックを求められるらしいのですが、その中でもLoRaは、スペックがそこまでリッチではないマシンでも学習させることができます。
このため、モデルのダウンロードサイトでは、LoRaファイルは比較的簡単に見つけることができ、人気であることがわかります。
この記事ではLoRaでの学習方法については取り扱いません。LoRaで学習したファイルを使いたい人向けの記事です。
LoRaファイルを使うメリット
LoRaファイルを使うことで、いつものモデルに、いつもとは違ったスパイスを加えて画像生成を行うことができます。
AIコスプレイヤー
最近Twitterで話題になったAIコスプレイヤーも、LoRaとモデルファイルを組み合わせて実現しているようです。
LoRaの種類
モデルのダウンロードサイトでもあるCIVITAIを見ると、LoRaにもいろいろな種類があることがわかります。
勝手に下記の3つに分類してみました。下記の名称は私が勝手に呼んでいる名称なので一般的かどうかはわかりません。
キャラLoRa
特定のキャラクターや芸能人の顔になるように追加学習させたLoRaファイルです。
ポーズLoRa
ある特定のポーズをするように追加学習させたLoRaファイルです。
キャラクターのポーズに影響を与えるLoRaです。
背景LoRa
ある特定の背景になる追加学習させたLoRaファイルです。
LoRaファイルの探し方
WebUIなら下記の手順でLoRaファイルをかんたんに使うことができます。
- Hugging FaceやCIVITAIなどでLoRaファイルをダウンロード。
- 特定のフォルダにLoRaファイルを保存します。
- プロンプトにLoRaファイルに紐づいた「トリガーワード」を含めて画像を生成します。
CIVITAIでLoRaファイルのだけを抽出して閲覧する方法
ここからはCIVITAIで公開されているLoRaをダウンロードしてみます。
CIVITAIとは何かについては下記の記事をご覧ください。
▲CIVITAIにアクセスして、画面右上のフィルタアイコンをクリックして、「LoRa」タグに絞ります。
▲LoRaファイルに絞って探すことができます。
LoRaファイルのダウンロード
私も一つダウンロードしてみました。
試してみたファイルは下記です。
Android 18 LoRa(人造人間18号の画像を学習したLoRa)
▲ドラゴンボールの人造人間18号の画像を広く学習させたLoRaファイルです。
これを他のモデルと組み合わせれば、あたかも18号のコスプレをしているかのようなAIコスプレイヤー画像が生成できます。
LoRaファイルの情報を確認しよう。
ライセンスやベースモデルファイル、使い方などの情報を確認します。
確認方法は下記の記事をご覧ください。
トリガーワードを確認しよう。
LoRaファイルは、インストールしただけでは適用できません。
LoRaファイルを有効化するためのトリガーワードというものが存在します。
これはファイルによって異なりますので、「Trigger Words」の部分(上図)を確認してみてください。
今回私がダウンロードするファイルのトリガーワードは「android 18」のようです。
▲サンプル画像がある場合はそちらも確認しましょう。「i」マークをクリックするとPNGInfoを見ることができます。プロンプト・モデル・サンプラーなどのパラメータを確認できます。
ダウンロードしよう。
ひととおり情報が確認できたところでダウンロードしましょう。
▲ダウンロードボタンでダウンロードします。
おそらく「.safetensors」という拡張子のファイルがダウンロードできた方と思います。
ダウンロードファイルを設置しよう。
ダウンロードしたファイルは下記の決められたフォルダに格納します。
(インストールフォルダ)\stable-diffusion-webui\models\Lora
(インストールフォルダ)の部分は、WebUIのインストールフォルダです。皆さんがWebUIをインストールした場所によって異なりますので読み替えてください。
▲このように設置しましょう。私はLoRaを使っているのでいくつかファイルがあります。
LoRaファイルを適用して画像生成してみよう。
▲WebUIを起動して、Genarateボタンの花札アイコンをクリックします。
▲花札アイコンのボタンを押すと、各種追加学習ファイルを表示する領域が開きます。「LoRa」タブをクリックします。
▲LoRaファイルの一覧が開くので使用するLoRaファイルをクリックします。するとプロンプト入力ボックスにLoRaファイルを有効化するワードが挿入されます。
<lora:android18DragonBall_one:1>
▲挿入された有効化ワード。うまく挿入できない場合は、テキストボックスを一回クリックしてアクティブにしてからもう一度やってみてください。
best quality, ultra high res, (photorealistic:1.4), 16k, <lora:android18DragonBall_one:1>, android 18, blonde hair, blue eyes, short hair, denim jacket, earrings, black shirt, look down on viewer, looking away
▲有効化ワードに、さらにトリガーワードの「android 18」を使って、プロンプトを組んでみました。これで画像生成してみたいと思います。
生成した画像の比較
←左がLoRaなし 右LoRa適用→
LoRaファイルを有効化する場合と、使わない場合の画像で比較してみました。上が生成結果です。
LoRaのない方は、「shorthair」というオーダーのとおり、確かにショートヘアーではあるのですが18号という感じが全然しません。コスプレ感もなく「普通の綺麗なお姉さん」といった感じです。
一方、LoRa適用画像の方は、18号のヘアスタイルを完全に再現していました。この特徴的な分け目のヘアスタイルは、18号をしらないと再現できないかと思います。
使ってみた感想
プロンプトの調整は結構むずかしいです。最初は上のような微妙な画像が何枚も出力されて、15分くらいプロンプトの調整に苦労しました。
LoRaに関するエラーやトラブルシュート
- LoRaフォルダがない。
-
WebUIのバージョンが古い可能性があります。アップデートしてみてください。
WebUIはアップデート時にエラーが起こることがあるので自己責任でお願いします。
- LoRaの効果を感じることができない。
-
トリガーワードはひとつではない場合もあります。LoRaが公開されているページのディスクリプションを確認してみてください!
- LoRaの影響度が強すぎる・弱すぎる
-
LoRaタグの数字を調整してみてください。タグの数字の推奨レンジはディスクリプションから確認できることが多いです。 例:<lora:shuimobysimV3:0.7> → <lora:shuimobysimV3:0.5> とか <lora:shuimobysimV3:1.2>
- LoRaファイルを使わない時はどうすればいい?
-
トリガーワードをプロンプトに含めなければいいだけです。
永続的に使わない場合は、ファイルを削除します。
- Google Colab版のWebUIでLoRaは使えますか?
-
同じようにLoRaフォルダに置いて使います。Colabのセットアップ方法は下記の記事を参考にしてください。
- LoRaファイルはどのモデルで使える?
-
LoRaファイルによって異なりますのでディスクリプションを確認してください。
特に明記がない場合は、サンプル画像やユーザーの生成画像をヒントにしながら試すしかないです。
基本的にLoRaファイルのベースモデルでは動くはずです。ベースモデルはCIVITAIであればダウンロードボタンの下の「Base Model」から確認できます。
▲無料クラウド(Google Colab)を使えば、貧弱PCでもStable Diffusionできるという話。
まとめ
以上、LoRaファイルの使い方について紹介しました。
この記事が参考になりましたらシェアボタンからシェアお願いします!!!
コメント
コメント一覧 (22件)
何度も質問すみません。
ダウンロードしたLoRAで効果があるものとないものがあり、ない場合、以下のようなエラーメッセージが表示されます。
activating extra network lora with arguments []: AssertionError
Traceback (most recent call last):
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/extra_networks.py”, line 75, in activate
extra_network.activate(p, extra_network_args)
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/extensions-builtin/Lora/extra_networks_lora.py”, line 23, in activate
lora.load_loras(names, multipliers)
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/extensions-builtin/Lora/lora.py”, line 214, in load_loras
lora = load_lora(name, lora_on_disk.filename)
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/extensions-builtin/Lora/lora.py”, line 185, in load_lora
assert False, f’Bad Lora layer name: {key_diffusers} – must end in lora_up.weight, lora_down.weight or alpha’
AssertionError: Bad Lora layer name: lora_te_text_model_encoder_layers_0_mlp_fc1.hada_w1_a – must end in lora_up.weight, lora_down.weight or alpha
何が原因でLoRAが効かないのでしょうか。
どのLoRaですか?
ウマ娘というゲームのマチカネタンホイザというキャラクターのLoRAです。
https://civitai.com/models/24585/matikanetannhauser-umamusume
プロンプトをそのままコピーしたのですが、全く別物のキャラクターが生成されてしまいます。
書き忘れていたのですが、起動する前にもエラーが表示されており、
API error: GET: https://38fbc2435dd72e9592.gradio.live/file=/content/gdrive/MyDrive/sd/stable-diffusion-webui/script.js?1680012256.0 {‘error’: ‘HTTPException’, ‘detail’: ‘Not authenticated’, ‘body’: ”, ‘errors’: ”}
のような表示が19行ほど出ています。何か関係はあるでしょうか。
そっちのエラーは、サーバー的な処理をする部分のGradioってプログラムのエラーっぽいので、AIの処理とは関係なさそうです。
下記のissueでも報告があります。
https://github.com/TheLastBen/fast-stable-diffusion/issues/1847
ちょっと私の方でも試してみます。
<lora:matikanetannhauser_loha:0.7> っていうタグを使っていると思うんですけど、これをプロンプトの一番最後に書いてみてもダメですか?あとこのコロンの横の数字を変えてみたりとか。0.6くらいから1.8くらいの間で。
ごめんなさい間違えました。
ウェイトは、 0.7 ~ 0.8 が適切みたいです。
エラー原因わかりました。こちらの追加学習ファイルはLoRaじゃなくて、LyCORISで追加学習したファイルですね。CIVITAIをよく見てみるとわかります。
LyCORISファイルを使うには、下記のWebui拡張機能のインストールが必要です。
https://github.com/KohakuBlueleaf/a1111-sd-webui-locon
これをインストールして使ってみてください。
わかんなかったらまた聞いてください。LyCORISの操作方法は近々記事を出す予定です。
お返事ありがとうございます。
よく見たらLoRAとはどこにも書いてありませんでした。すみません。
貼っていただいたリンクを使って明日試してみようと思います。
LyCORISファイルの使い方について記事を書いたのでこちらを参考にしてください↓
https://blogcake.net/lycoris/
記事にあるファイルをダウンロードしたのですが、
RuntimeError: shape ‘[4, 320, 3, 3]’ is invalid for input of size 921600
という表示が生成画面下に表示されるようになり、
画像を生成されなくなりました。
WebUIの拡張機能タブから、LoCon拡張機能をインストールしました?
調べたところ、3日前くらいに行われたWebUIのアップデートによって、多くの拡張機能が使えなくなっているみたいです。
拡張機能側の対応を待つしかないかも。私は古いWebUIを使っているので問題なく動作しています。
画像生成が完全にできなくっているようでしたら拡張機能のチェックをオフにしてみてください。
▼LoCon拡張機能のエラー
https://www.reddit.com/r/StableDiffusion/comments/124v2fo/help_getting_loha_to_work_in_a1111/
▼WebUIのアップデートによる拡張機能の不具合の情報
https://www.reddit.com/r/StableDiffusion/comments/121kqkd/psa_hold_up_with_updating_automatic1111_for_now/
LyCORISファイルを使用しなければ画像生成はできますので、しばらくは更新されるのを待とうと思います。
今回も色々と調べていただきとても助かりました。
いえいえ、記事の内容について意見言っていただけるのは、こちらとしてもすごく助かっているんです。今後も何かあればお気軽にどうぞ。
Google Colab用のAutomatic1111 WebUIを利用してるのですが、
Extensions / Installed 内のLora はしっかりbuilt-in されているのですが、いわゆる”花札アイコン”を押しても、”Lora”の項目だけ表示されません。
この項目を表示させるにはどうしたらよいのでしょうか?
ドライブのLoraフォルダにはloraのファイルが入っています。
Tex~, Hyper~, Check~は表示され、またCheck~内には使用してるモデルも表示されています
こんにちは。
私もその現象なったかも。私の時はプラグインインストールしたら、LoRa以外も見れなくなりましたのでプラグインを削除しました。
あと一時的な不具合もたまにあります。この場合再起動で治ります。
もし、エラーがでてるならコピペしてもらえれば何かわかるかもです。
返信ありがとうございます。
Extensionsの項目を何度か試しているときに、このようなエラーメッセージが発生していました。
——————————————————
(略)
API error: GET: https://c517469a7623f6881a.gradio.live/file=javascript/progressbar.js?1681109652.0 {‘error’: ‘HTTPException’, ‘detail’: ‘Not authenticated’, ‘body’: ”, ‘errors’: ”}
Closing server running on port: 7860
Restarting UI…
Error loading script: lora_script.py
Traceback (most recent call last):
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/scripts.py”, line 256, in load_scripts
script_module = script_loading.load_module(scriptfile.path)
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/script_loading.py”, line 11, in load_module
module_spec.loader.exec_module(module)
File “”, line 850, in exec_module
File “”, line 228, in _call_with_frames_removed
File “/content/gdrive/MyDrive/sd/stable-diffusion-webui/extensions-builtin/Lora/scripts/lora_script.py”, line 42, in
torch.nn.Linear.forward = lora.lora_Linear_forward
AttributeError: module ‘lora’ has no attribute ‘lora_Linear_forward’
Running on public URL:**********
エラーメッセージにloraとあるので、この辺りだと思われるのですが・・・。
https://github.com/TheLastBen/fast-stable-diffusion/issues/1857
↑これですかね。同じNotebookを使っている人から2週間前から同様の事象が発生しているという報告ありますね。
ノートブックの問題のようで、ノートブックを更新すれば解決するようです。
▼下記の記事でノートブックの更新方法を紹介しているので、参考にしてみてください。
https://blogcake.net/stable-diffusion-colab/
今ノートブックを更新し試してみた所、無事loraの項目が復活(自分的には初登場ですが)しました。
ちゃんと適用もされているみたいです。
ありがとうございました。
ご報告ありがとうございます。
無事に使えるようになって私もうれしいです。