見出し画像

好きなキャラに別世界のコスプレを!【StableDiffusion】【複数LoRA】

株式会社Rossoのteam AIデータ分析チームです
最近、私は「Stable Diffusion」ばかりやっています。

「Stable Diffusion」は「LoRA」という追加学習モデルを使用することで、特定のキャラクターに特化した画像生成を可能にします。絵を描くことが得意ではない私にとって、この技術は二次創作のための理想的なツールとなっています。

このブログでは、お気に入りのキャラクターに別作品(別IP)の衣装を着せるという遊びを紹介します。さらに、この過程で使えるいくつかの簡単なテクニックも共有したいと思います。

ただ、このブログの主旨はあくまで複数のLoRAを組み合わせてキャラにコスプレさせることなので、StableDiffusionの使い方やLoRAの導入方法については以下の記事などを参照ください。

お題:「アイドルマスターシャイニーカラーズ」の田中摩美々が「崩壊:スターレイル」の銀狼のコスプレに挑戦!

今回は「アイドルマスターシャイニーカラーズ」の人気アイドル
田中摩美々に

公式絵 引用元:https://shinycolors.idolmaster.jp/idol/lantica/mamimi.html
Lora:https://civitai.com/models/17041/tanaka-mamimi-the-idolmster-shiny-colors

「崩壊:スターレイル」の銀狼の衣装を着せます。

公式絵 引用元: https://hsr.hoyoverse.com/ja-jp/character?worldIndex=2&charIndex=2
Lora:  https://civitai.com/models/59932/silver-wolf-honkai-star-rail?modelVersionId=129022
(もっと公式絵っぽいポーズにしたかったけど、今回の趣旨と違うからまあいいか)

キャラごとのプロンプトを分解する

まず、キャラクター二人それぞれのLoRA用のプロンプトを準備します。
これらのプロンプトは、LoRAのページに投稿されている生成画像、またはLoRAの紹介ページにかかれている説明文などから取得することができます。

https://civitai.com/images/1784370

例えば上の銀狼の生成画像の場合は、プロンプトは次のようになっています。

masterpiece, best quality, SilverwolfV5, 1girl, solo, looking at viewer, 
shirt, gloves, closed mouth, standing, jacket, full body, boots, shorts, 
choker, grey eyes, black gloves, fingerless gloves, black footwear, 
black jacket, black shorts, bandaid, eyewear on head, <lora:Sv5-10:1>

初めてプロンプトに触れる方にとって、この英単語の羅列は複雑に見えるかもしれません。そのため、ChatGPTの力を借りて、これらのプロンプトを分解し、解析する方法をご紹介します。

以下はChatGPTにお願いするプロンプトの分解のためのプロンプトです。

Stable diffusionのプロンプトを要素ごとに分解していただきたいです。

出力形式は以下のように
「顔・頭周辺」「衣装の要素」「表情やポーズの要素」「その他」
で分けつつ、それぞれ英語と日本語訳
の形式でお願いします。

また、各要素内の単語ごとは、あとでプロンプトにそのまま流用しやすいように
, でつなげてください。
英単語ごとはダブルクオーテーションやクォーテーションマークで括らないでください。

また、もしセンシティブでふさわしくない要素があれば、別途報告お願いします
================
(例)
顔の要素(英文):purple hair, twintails, diagonal bangs, bangs, purple eyes, 
              blush, nail polish, purple nails, looking at viewer, closed mouth,
顔の要素(日本語訳):紫色の髪, ツインテール, 斜めの前髪, 前髪, 紫色の目, 
              頬を赤らめる, ネイルポリッシュ, 紫の爪,
衣装の要素(英文):sunglasses,black jacket, thighhighs, garter straps, dress, 
             fishnets, black dress, framed breasts, long sleeves, head rest,

なお、ChatGPTはセンシティブな内容を含む単語を検出すると、OpenAIのポリシーに基づいて処理を拒否することがあります。
しかし、あらかじめ「もしセンシティブでふさわしくない要素があれば、別途報告してください」と依頼することで、適切な対応をしてもらうことができます。


chatGPTがプロンプトを分解した様子。
本当は「頭にかけられた眼鏡」を衣装。「閉じた口」を表情に
「ツインテール」を顔・頭周辺に分類してほしかったけど
生身の人間でも意見が分かれるところだと思うのでまあいいや

田中摩美々のプロンプトを要素で分解した結果

顔・頭周辺 (Face & Head Area)
  英文: purple hair, purple eyes, diagonal bangs, bangs, blush, nail polish, 
        purple nails, closed mouth
  日本語訳: 紫色の髪, 紫色の目, 斜めの前髪, 前髪, 頬を赤らめる, ネイルポリッシュ, 
        紫の爪, 閉じた口

衣装の要素 (Outfit Elements)
  英文: skirt, green jacket, jacket, twintails, pleated skirt, shirt, 
       bow, short twintails, school uniform, bowtie, white shirt, blue skirt, 
       long sleeves, blue bowtie, collared shirt
  日本語訳: スカート, 緑のジャケット, ジャケット, ツインテール, プリーツスカート, シャツ, 
      リボン, 短いツインテール, 学校の制服, 蝶ネクタイ, 白いシャツ, 青いスカート, 
      長袖, 青い蝶ネクタイ, 襟付きシャツ

表情やポーズの要素 (Expression & Pose Elements)
  英文: looking at viewer
  日本語訳: 視聴者を見ている

その他 (Other Elements)
  英文: tanaka mamimi, <lora:tanaka mamimi:1>, 1girl, solo, white background, 
        simple background, blue bow
  日本語訳: 田中まみみ, <lora:tanaka mamimi:1>, 1人の女の子, 単独, 白い背景, 
        シンプルな背景, 青いリボン

銀狼のプロンプトを要素で分解した結果

顔・頭周辺 (Face & Head Area)
 英文: grey eyes, closed mouth, eyewear on head
 日本語訳: グレーの目, 閉じた口, 頭にかけられた眼鏡

衣装の要素 (Outfit Elements)
  英文: shirt, gloves, jacket, boots, shorts, choker, black gloves, 
        fingerless gloves, black footwear, black jacket, black shorts
  日本語訳: シャツ, 手袋, ジャケット, ブーツ, ショートパンツ, チョーカー, 
           黒い手袋, 指なし手袋, 黒い靴, 黒いジャケット, 黒いショートパンツ

表情やポーズの要素 (Expression & Pose Elements)
  英文: looking at viewer, standing, full body
  日本語訳: 視聴者を見ている, 立っている, 全身

その他 (Other Elements)
  英文: masterpiece, best quality, SilverwolfV5, 1girl, solo, bandaid, lora:Sv5-10:1
  日本語訳: 傑作, 最高品質, SilverwolfV5, 1人の女の子, 単独, 絆創膏, lora:Sv5-10:1


なので、銀狼コスプレをする田中摩美々のプロンプトは

「田中摩美々の顔要素」+「銀狼の衣装要素」
のプロンプトを作れば出来そうですね!

"田中摩美々"の"銀狼"コスプレ

田中摩美々・銀狼それぞれ個別の生成結果。

それでは、田中摩美々の銀狼コスプレ結果を見ていきたいと思います。

顔・髪色・斜めぱっつん前髪の田中摩美々が
銀狼のコスチュームを着ている姿が生成されました!

やったー!わーい!出来てるー!!
顔・髪色・斜めぱっつん前髪でまつ毛の長いの田中摩美々が
銀狼のコスチュームを着ている姿が生成されました!
とても似合っていますね!!!

使用したプロンプトは以下の通りです

masterpiece, best quality, HDR, 8K, wallpaper,
1girl, solo, simple background, white background,
full body, looking at viewer
tanaka mamimi, <lora:tanaka mamimi:0.8>, smile, happy, enjoy,
purple hair, purple eyes, diagonal bangs, bangs, nail polish, 
purple nails, closed mouth,
SilverwolfV5, <lora:Sv5:0.7>,
shirt, gloves, jacket,boots, shorts, choker, grey eyes, black gloves,
fingerless gloves, black footwear, black jacket, black shorts, bandaid, 
eyewear on head,

Negative prompt: (worst quality, low quality:1.4), (bad-hands-5),
 (by bad-artist:1.0), (bad_prompt_version2:0.8), watermark, 
EasyNegativeV2, effect, fractal, Debris

じゃあ!じゃあ!"銀狼"の"田中摩美々"コスは???

逆に銀狼に田中摩美々のコスプレは出来るのでしょうか?
やってみました!

田中摩美々の銀狼コスの場合と異なり「いかにも田中摩美々」というほどでなく、これは普通の学生の制服に近いかもしれないですね。しかし、ジャケットの着こなし方から田中摩美々要素を感じます。

ちゃんと生成されていますね!!

先程のプロンプトの田中摩美々部分を銀狼。銀狼部分を田中摩美々に置き換えることが重要です。これはシンプルですが効果的です。

田中摩美々と銀狼の両者に「ジャケット」が要素として存在するため、二人のジャケットのデザインが混ざり合うことが多かったです。
そのため、Negative promptに「fur」を加えて調整しました。

masterpiece, best quality, HDR, 8K, wallpaper,
1girl, solo, simple background, white background,
looking at viewer, 
SilverwolfV5, <lora:Sv5:0.7>,
grey eyes, closed mouth, eyewear on head, bandaid, SilverwolfV5`s face,
tanaka mamimi, <lora:tanaka mamimi:0.7>,
skirt, (green jacket, light green jacket:1.3), pleated skirt, shirt, bow, 
school uniform, bowtie, white shirt, blue skirt, long sleeves, blue bowtie, 
collared shirt

Negative prompt: (worst quality, low quality:1.4), (bad-hands-5), (by bad-artist:1.0), 
(bad_prompt_version2:0.8), watermark, EasyNegativeV2, effect, fractal, Debris, 
(jacket fur,fur,nsfw:1.4)

うまく出力できない場合の対処法

今回の「田中摩美々」と「銀狼」の組み合わせは比較的容易に進めることができました。しかし、他のキャラクターの組み合わせによっては、生成された画像が期待通りにならないこともあります。例えば、キャラクターの体が不自然に歪んだり、画像の背景に不要な物体が浮かんだりすることがあります。

このような問題が発生した場合、以下の点を調整することをお勧めします。

  • CFG Scaleを下げる(5~6など)

  • LoRAのweightを下げる(0.5~0.7など)

  • 画像のサイズを変更する(大きすぎると人が増えたり四肢が増加。小さすぎると顔面崩壊)

  • プロンプトからポーズ・表情・背景を一旦除外してみる

  • 別のLoRAに変えてみる

他の点として、今回は田中摩美々と銀狼の基本の髪型が異なっていたため、プロンプトの調整が比較的容易でした。しかし、例えば銀狼に田中摩美々のコスプレをさせ、ツインテールを加えようとした場合、銀色の髪は保たれるものの、前髪が斜めにカットされたスタイルが加わり、赤いアイメイクが施されてしまうことがあります。これにより、結果として田中摩美々の顔に近づいてしまうことがあります。

前髪斜めパッツンが加えられた上に、赤いアイメイクが追加され、田中摩美々の顔に近づいてしまっている

このような問題を防ぐためには、プロンプトに「SilverwolfV5's face」のように、「銀狼の顔を保持してください」と明示的に指定することが有効です。これにより、生成される画像が、銀狼の顔の特徴を維持しやすくなります。

銀狼が田中摩美々の顔になってしまうのを防ぐために
プロンプトに"SilverwolfV5`s face"と明示しています。
え?わかんない?すみません。

その他の情報

特にcetusMix_Whalefall2は自分の好みです。
別のモデルにしようとしても大体これに戻ってきています。
ポーズのバリエーションも豊かで出力も綺麗になることがとても多いです。

ありがとうございました


おまけ:銀狼コス田中摩美々と田中摩美々コス銀狼を同時生成

この画像は出来がとても良い方です。プロンプトでの要求が多すぎるので贅沢は言えません。

・銀狼コス田中摩美々
・田中摩美々コス銀狼
を一度に生成してみました。

これには拡張機能のRegional Prompterが必要です。

Regional Prompterの設定では「Latent」「Columns」にチェック

上図のようにRegional Prompterを設定し、以下のようなプロンプトで生成しました。

2girls

ADDCOMM
(masterpiece, best qulaity:1.3), HDR, 8K, wallpaper

ADDBASE
tanaka mamimi, <lora:tanaka mamimi:0.5>,
purple hair, purple eyes, (diagonal bangs, bangs),
 <lora:Sv5:0.5>,
shirt, gloves, jacket,shorts, choker, grey eyes, black gloves,
fingerless gloves, black jacket, black shorts, 
eyewear on head

ADDCOL
( grey hair, short twin tail, green jacket:1.4),
SilverwolfV5, <lora:Sv5:0.5>, 
grey eyes, SilverwolfV5`s face, 
<lora:tanaka mamimi:0.5>, 
skirt, pleated skirt, shirt, bow, 
school uniform, bowtie, white shirt, blue skirt, long sleeves, blue bowtie, 
collared shirt

ただ、かなりギリギリです。背景やポーズ・表情への指定は最低限で画像サイズは512×288くらいまで小さく絞ると、人体の錬成は安定しましたが、田中摩美々成分と銀狼成分が混ざりやすく、成功率はものすごく低い。
髪の毛や服の色が混ざってしまったり、顔が入れ替わってしまいました。

まだマシな例

Regional Prompter × 複数LoRAはかなり不安定なので、
おそらくマージモデルなどを作成したほうが良い気がしますが、
一応生成されました。

失敗例
(左上・右上)人体錬成失敗
(左下)顔が左右入れ替わり。髪の毛がどちらも紫に 
(右下)髪の毛にジャケットの色が色移り