好きなキャラに別世界のコスプレを!【StableDiffusion】【複数LoRA】
株式会社Rossoのteam AIデータ分析チームです
最近、私は「Stable Diffusion」ばかりやっています。
「Stable Diffusion」は「LoRA」という追加学習モデルを使用することで、特定のキャラクターに特化した画像生成を可能にします。絵を描くことが得意ではない私にとって、この技術は二次創作のための理想的なツールとなっています。
このブログでは、お気に入りのキャラクターに別作品(別IP)の衣装を着せるという遊びを紹介します。さらに、この過程で使えるいくつかの簡単なテクニックも共有したいと思います。
ただ、このブログの主旨はあくまで複数のLoRAを組み合わせてキャラにコスプレさせることなので、StableDiffusionの使い方やLoRAの導入方法については以下の記事などを参照ください。
StableDiffusionが簡単に使える”Automatic1111”の導入方法の記事
【Stable Diffusion Web UI】インストール・使い方(初心者ガイド)LoRAの使い方のわかりやすい記事
【Stable Diffusion Web UI】追加学習モデルLoRAの使い方
お題:「アイドルマスターシャイニーカラーズ」の田中摩美々が「崩壊:スターレイル」の銀狼のコスプレに挑戦!
今回は「アイドルマスターシャイニーカラーズ」の人気アイドル
田中摩美々に
「崩壊:スターレイル」の銀狼の衣装を着せます。
キャラごとのプロンプトを分解する
まず、キャラクター二人それぞれのLoRA用のプロンプトを準備します。
これらのプロンプトは、LoRAのページに投稿されている生成画像、またはLoRAの紹介ページにかかれている説明文などから取得することができます。
例えば上の銀狼の生成画像の場合は、プロンプトは次のようになっています。
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のポリシーに基づいて処理を拒否することがあります。
しかし、あらかじめ「もしセンシティブでふさわしくない要素があれば、別途報告してください」と依頼することで、適切な対応をしてもらうことができます。
田中摩美々のプロンプトを要素で分解した結果
顔・頭周辺 (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」のように、「銀狼の顔を保持してください」と明示的に指定することが有効です。これにより、生成される画像が、銀狼の顔の特徴を維持しやすくなります。
その他の情報
ツール: Stable Diffusion Web UI (AUTOMATIC1111)
GPU: RTX3080 12GB
checkpoint: cetusMix_Whalefall2.safetensors
田中摩美々LoRA: https://civitai.com/models/17041/tanaka-mamimi-the-idolmster-shiny-colors
銀狼LoRA: https://civitai.com/models/59932/silver-wolf-honkai-star-rail
特にcetusMix_Whalefall2は自分の好みです。
別のモデルにしようとしても大体これに戻ってきています。
ポーズのバリエーションも豊かで出力も綺麗になることがとても多いです。
おまけ:銀狼コス田中摩美々と田中摩美々コス銀狼を同時生成
・銀狼コス田中摩美々
・田中摩美々コス銀狼
を一度に生成してみました。
これには拡張機能のRegional Prompterが必要です。
上図のように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はかなり不安定なので、
おそらくマージモデルなどを作成したほうが良い気がしますが、
一応生成されました。