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の作業もする。
掲載日: 2024-02-23
iPentec all rights reserverd.