複数キャラクターの画像を生成する - Inpaint + ControlNetを利用する方法 - Stable Diffusion
InpaintingとControlNetを利用して、複数キャラクターの画像を生成する手順を紹介します。
手順
生成画像の元となる、レイアウト画像を用意します。今回は3人のキャラクターが横に並んだ状態で画面側を向いているレイアウトにします。
下図の画像を作成しました。
完成形では髪の色を以下の通りにしたいです。
ControlNetを有効にします。入力画像に先に作成したレイアウト画像を設定します。
ControlNetのモデルは、"CN-anytest_v4-marged [4bb64990]" を利用します。(入手先の詳細は
こちらの記事を参照)
ControlNetのWeightは0.75としています。
プロンプトは以下を利用します。
Prompt
Prompt: 3girls, table, cup, cafe, masterpiece
Negative prompt: worst quality, low quality
画像生成結果は下図です。
今回はこちらの画像を採用します。
なおControlNetを有効にしない場合は下図の画像が生成されるため、ContorlNetは機能しています。
生成した画像をimg2img inpaintの入力画像に設定します。出力サイズは[Resized by]のタブを選択し、Scale 1.0で出力します。
ControlNetを有効にします。Preprocessorに"Softedge_anyline"を指定し、Modelに"control-lora-canny-rank256"を設定しす。
モデルの入手等については、
こちらの記事を参照してください。
右のキャラクターから修正します。右のキャラクターの髪の毛の部分をドラッグして描画エリアに設定します。
以下のプロンプトで赤髪を描画します。右側のキャラクターの髪の毛の色が赤になりました。
Prompt
Prompt: 1girl, red hair, masterpiece
Negative prompt: worst quality, low quality
生成された画像を再度、inpaintの入力に設定します。
続いて中央のキャラクターの髪の毛をドラッグして描画エリアに設定します。以下のプロンプトを実行します。
Prompt
Prompt: 1girl, gold hair, masterpiece
Negative prompt: worst quality, low quality
生成結果は下図ですが、中央のキャラクターの髪色が変化していません。
これは、img2imgの元画像の影響が強いためです。Denoising strength の値を0.9まで上げて、再度実行します。
生成結果は下図です。髪の毛が黄色になりました。
生成された画像を再度、inpaintの入力に設定します。続いて左側のキャラクターの髪の毛部分をドラッグして選択します。
以下のプロンプトで画像生成します。緑色の髪の毛で画像が生成できました。
Prompt
Prompt: 1girl, dark blue green hair, masterpiece
Negative prompt: worst quality, low quality
生成結果の画像が下図です。
左下の白いオブジェクト(おそらくカップ)を削除します。別の色で塗りつぶし、背景と同じような色にします。
以下のプロンプトで画像生成します。画像を生成できました。
Prompt
Prompt: table, masterpiece
Negative prompt: worst quality, low quality
下図の画像が生成できました。こちらで完成とします。
Inpaintingを利用して複数キャラの描き分けができました。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。