2人のキャラクターが背中合わせに手をつなぐ画像を生成する - Regional prompter の利用 - Stable Diffusion
2人のキャラクターが背中合わせに手をつなぐ画像を生成する手順を紹介します。
概要
こちらの記事では、2つの画像を結合して1つの画像を生成する方法を紹介しましたが、
2つの画像のキャラクター同士が手をつないだり、腕を組んだりする場合にはうまく生成できませんでした。
この記事では、Regional prompter を利用して、2人のキャラクターが手をつなぐイメージを作成します。
やりたいこと
こちらの記事で利用した構成図です。
この図の構図、設定でイラスト画像を作成したいです。
今回、わかりやすくするため、左側のキャラクターを青髪、右側のキャラクターを赤髪にします。
事前準備
Regional Prompter を導入します。インストール手順は
こちらの記事を参照してください。
手順
手をつないだキャラクターの生成
はじめに、手をつないだキャラクターの画像を生成してみます。
次のプロンプトを実行します。
Prompt
Prompt: 2girls, holding hands
Negative Prompt:worst quality
Model:AnimagineXL v3
生成結果は下図です。2キャラ生成される場合もありますが、手のアップ画像が生成されるケースが多いです。
Regional Prompter を利用して左右のキャラを描き分ける
続いて、Regional Prompterを有効にして左右のキャラクターと構図の視点を指定します。
Regional Prompterの設定は以下です。
[Active]のチェックボックスをクリックしてチェックをつけます。
[Main Splitting]の設定は"Columns"とし、[Divide Ratio]の値は "1,1" として左右分割します。
プロンプトは以下とします。最初のBREAKまでが左側"0"のエリアのプロンプト、
BREAK以降のプロンプトが右側のエリアのプロンプトになります。
Prompt
2girls, blue hair, holding hands, from side BREAK
2girls, red hair, holding hands, from side
Negative prompt
worst quality
生成結果は下図です。手をつないでいる2キャラが描画できました。左のキャラが青髪で、右のキャラが赤髪になっています。
背中合わせに手をつながせる
当初の構成図通りに背中合わせに手をつながせます。プロンプトを検討した結果以下が良さそうです。
Prompt
2girls, blue hair, back-to-back, holding hands, from side BREAK
2girls, red hair, back-to-back, holding hands, from side
生成結果は下図です。背中合わせで手をつないでいる二人が描画できました。あまり良くない結果もありますので、たくさんリトライする必要がありそうです。
採用した画像の手を修正します。img2imgのinpaintで手の部分を再生成します。
Prompt
Prompt: holding hands
Negative Prompt:worst quality, low quality, bad hands
interlocked fingers (恋人つなぎ)も試してみます。
Prompt
Prompt: interlocked fingers
Negative Prompt:worst quality, low quality, bad hands
ちょっと指が多い出力になり、悪目立ちしています。
もっとシンプルに描画すれば違和感が減りそうなので、モデルを描きこみの少ない"AingDiffusion XL"に変更して、手の部分を再生成します。
Prompt
Prompt: interlocked fingers
Negative Prompt:worst quality, low quality, bad hands
ModelL Aing Diffusion XL v5
Size:1024 x 1280
(拡大しなければ)右上がいい感じです。
100%のサイズで見ると手の怪しさが目立つため、もう少し修正します。
生成画像のエッジを抽出し、手の部分の外形を手で描画します。描画したイメージが下図です。
描画した画像をControlNetの入力画像に設定し、lineart_anime のプリプロセッサで線を抽出し、ControlNetの"bdsqlszLineart"モデルを適用して
img2imgを実行します。
img2imgのプロンプトは以下に設定します。
Prompt
Prompt: interlocked fingers, highres
Negative Prompt:worst quality, low quality
ModelL Aing Diffusion XL v5
Size:1024 x 1280
描画結果が下図です。描画した外形に合わせた手の形状になりました。
こちらの画像を採用します。
Photoshopで修正します。指の数を減らしてシンプルにして、手が目立たないように修正します。
当初予定していたデザイン作画
上記の手順を基にして、当初予定していたレイアウトでの作画をします。
構成図です。
プロンプトは以下を利用します。
Prompt
2girls, profile, black hair, black beautiful lace dress, (back-to-back:1.1), holding hands, upper knee, standing, white background, BREAK
2girls, profile, white hair, white beautiful lace dress, (back-to-back:1.1), holding hands, upper knee, standing, white background,
Negative prompt
worst quality, low quality,
Settings
Model:Animagine XL v3
Size:1024 x 1280
Sampling Method:DPM++ 2M SDE Karras
下図の生成結果となりました。
こちらの結果を採用します。
顔にLoRAを適用して絵柄を変更します。
顔へのLoRA適用手順は
こちらの記事を参照してください。
右側がControlNetを適用し手の形状を変更してレタッチ後のイメージです。
左が重そうに見える&右下に流れているように見えるのでバランス調整しました。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。