ブルームテクノロジー

テクノロジー

【StableDiffusion】LoRAとは、使い方まで解説【AIコスプレイヤー作ってみた】

AI開発室

AI開発室

【StableDiffusion】LoRAとは、使い方まで解説【AIコスプレイヤー作ってみた】

生成AI、流行ってますね
1週間も経つと新しいニュースが入ってきて、前まで持っていた知識が古くなるのは当たり前な時代になってきました

弊社も以前、初学者向けにStableDiffusionの記事を公開しました
https://bloom-t.co.jp/blog/article_8870/

今回はStableDiffusionの記事第2弾ということで、LoRAの説明から始まり、使い方までご紹介させていただきます

「説明なんかいいから使い方を教えろ」と言う人は以下まで飛んでください
LoRAの使い方

LoRAとは

LoRAはLow-Rank Adaptationの略で、一言で言うと「低コストでできるAIの学習手法」です
(StableDiffusion専用というわけでもないですし、モデルの種類というわけでもありません)

StableDiffusionにおけるLoRAの位置づけ

いくつかあるStableDiffusionの学習の中で、低スペックのマシンでも学習できるということで人気が出てきている手法です

ちなみに前述の通りLoRAはStableDiffusion専用のものというわけではありませんが、
「StableDiffusionのLoRA」と言えば画像を”微調整”するモデルという位置づけになります

”微調整”について詳しく説明しますが、もちろんプロンプトでも微調整はできます
ただし言葉では表現できない(しづらい)ポーズであったり、いくつものプロンプトを組み合わせて完成するものがあったりします
そのようなときに、より確実にイメージ通りの画像が生成されるようにLoRAを使います

ちなみにモデルに対してLoRAの学習をすると、新たなモデルが作られますが、その2つのモデル両方を使って画像生成を行います
ややこしいので、以降では元にしたモデルを「SDモデル(SD=StableDiffusionの略)」、LoRAによって作られたモデルを「LoRAモデル」と表現します

使用環境

LoRAの使い方

お待たせしました
それでは使い方をご説明します

の前に注意事項だけ記載させてください

画像生成の際の注意事項

こちらの記事にも記載しておりますが、モデルの利用規約とColabのコストの2点についてもう少し深掘りして説明します

  • SDモデルやLoRAモデルのライセンスを確認する

「モデル自体を販売することができない」「生成した画像を販売することができない」等、モデルごとに設定されている規約が変わります
規約に違反していないかチェックするようにしてください

ちなみにCIVITAIであれば、以下画像のように右側サイドメニューの下のアイコンをクリックすると何を許可していて何を許可していないかが書かれています

  • GoogleColabで実行する際は、起動時間でコストが掛かるため使用後の停止忘れに注意

GoogleColabはマシンを起動している時間に比例してコンピューティングユニットを消費します
画像を生成するしないに関わらず起動している状態だと常に消費していることになりますので、気をつけてください

生成を終えたときは以下画像のようにマシンを終了することをおすすめします

使い方

さて、ようやく使い方のご説明です
今回もAUTOMATIC1111様のWebUIを使用します

SDモデルの様にLoRAモデルも配置すべき場所が決まっており、それはstable-diffusion-webui/models/Lora の中です
(1度WebUIを実行しないとフォルダが作られないため、1度実行するか手動でフォルダを作ってください)

使い方は簡単です

1.普通にプロンプトを入力して

2.Loraのタブに移って

3.使用したいLoRAをクリックするだけ(クリックしたLoRAに応じたプロンプトが追加されます)

4.必要に応じてトリガーワードも書いてください(CIVITAIであればモデルのページに書いてます、書いていなければ不要です)

これで実行するとLoRAモデルが適用された画像が生成されます

※ちなみにLoRAを使いたくなくなったときはプロンプトからそのLoRAの記述を消すだけです

使ってみた

実際にLoRAを使ってコスプレをしてみました

目指すは女の子にドラゴンのコスプレをさせるです
試行錯誤したものも合わせて記載するので、このように作っているのだなと参考になれば幸いです

上記(使い方の説明)の箇所で作成したプロンプトで実行してみた結果

ドラゴンが強すぎるので <lora:Dragons:0.75> に変更(強さを1→0.75に)

<lora:Dragons:0.75> の強さをこれ以上下げてもドラゴンが出てしまうため<lora:Dragons:0.75> の左に 1girl 追加

顔だけでなく全身が写ってほしいので 1girl<lora:Dragons:0.75> の間に full body shot を追加

顔が崩れてしまったり、フィギュアの写真っぽくなってしまったので、WidthHeight を1.5倍の 768 に変更

ドラゴンの顔に人間の身体を組み合わせたような画像ができてしまったので 1girlfull body shot の間に human face を追加

プロンプトの強さやサンプラー等調整して完成

以下が上記画像を出力したときの設定です

(best quality:1.3), (masterpiece:1.3), (detailed face:1.3), 1girl, (human face:1.4), full body shot, <lora:Dragons:0.75>,dragon
Negative prompt: (worst quality:1.4), (low quality:1.4)
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 3744163775, Size: 768x768, Model hash: 1a17bcd93d, Model: beautifulRealistic_v7, Lora hashes: "Dragons: f7643ee6865f", Version: v1.6.0-2-g4afaaf8a

おわりに

ドラゴンのコスプレのような、ドラゴンの擬人化のような
そんな結果になりました

時間をかけずに30分で作ったにしては、まあまあいい出来になったのではないでしょうか
LoRAの使い方に加えて、どのようにプロンプトを調整しているのか等も参考になれば幸いです