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