2名のキャラクターを生成する場合は、通常、Promptに”2 girls”を追加します。二人、生成されますが、それぞれに固有のキャラクター属性を確実にあたえるのはPromptだけでは困難です。
複数キャラクターをかき分ける方法は、いくつかありますが、直感的でシンプルな方法を紹介します。
MultiDiffusion with Tiled VAEを組み込む
今回、MultiDiffusion with Tiled VAEを使用します。Stable Diffusion web UIにExtensionのリストからインストールしてください。インストール完了後、Stable Diffusion web UIを再起動します。
元になる画像を生成しよう
通常の方法でもとになる画像を生成します。このとき、Promptには、「画質系タグ」、「キャラクター系タグ」、「背景系タグ」と明確に分類して設定します。
((masterpiece,best quality)), Depth of field, ((bokeh)), 1 girl, elf, long hair, highschool uniform, zettai ryouiki, bag, japan street, sunlight, god ray
Negative prompt: EasyNegative, fewer fingers, extra fingers, extra legs, signature, watermark, username, torii
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 12000, Size: 768x480, Model hash: bd83b90a2e
((bokeh))までが、画質系タグ。japan street以降が、背景タグです。
いい感じの画像ができたら、seedに生成画像の数値、作例では12000を入力して固定します。ここで生成する画像は、Promptが生成するイメージの方向性を確認するためのものです。
Tiledの設定
Tiled Diffusionのリーフを開きます。Enableにチェックをいれます。Methodは、任意に選択してください。
Overwrite image sizeは、チェックしてください。作例では元画像より1.5倍の大きさにしています。残りの項目はそのままです。画像を拡大することがTiledでは重要です。
次にTiled VAEを開きます。こちらもEnableをチェックします。Encoder Tile Sizeは、適時数値を変更してください。通常はデフォルトで使用して、VRAMが不足するようなら数値を小さくしてください。(実使用では、効果がある場面は限られていました。)
この状態で画像を生成すると、同じ設定をもったキャラクターが増えます。タイル状に画像を区切って、設定を繰り返してうめてしまうため、同じキャラクターが増えた領域に生成されます。(大きなポスターにするためにA4コピー用紙を敷き詰めるイメージです。この手法は、CG用語でタイリングと呼びます。)
画像の大きさが変わったため、乱数の並び方がかわり、先程とは異なる画像が生成されます。
リージョンを設定する
リージョンを設定するとキャラクターを任意の位置に配置できます。
Tiled Diffusionにある、Region Prompt Controlを開きます。
Enableにチェックします。Draw Full canvasにもチェックします。これは、全体に背景を描くという指定です。
次にCreate txt2img canvasをクリックします。白紙のキャンバスが生成されます。
次にリージョンを設定します。
Region 1を開いて、Enableにチェックをいれます。Typeは、Foregroundです。Promptには、メインのPromptからキャラクター系タグの部分をもってきます。メインのPromptのキャラクター系タグは削除してください。設定後、canvasの赤い枠をマウスで調整して、Region 1の生成範囲を指定します。
これで画面全体は、メインのPromptで、Region 1には、Region 1のPromptで描画されます。
赤枠を移動すれば、別の場所にキャラクターが生成されます。
キャラクターを書き分けよう
Region 2以降を設定すれば、2名以上のキャラクターをそれぞれ個別のPromptで設定できるようになります。これ以上なく直感的です。
Region 1、Region 2をそれぞれ開いて、Promptを設定します。EnableとForegroundを忘れずに。
それぞれのリージョンの場所は、canvasで指定します。
ちょっと耳の生成がおかしいですが、エルフときつねさんのかき分けができています。
Draw Full Canvasのチェックを解除して、Regionにバックグラウンドを生成させることもできます。これはお好みでといきたいところですが、Regionでバックグラウンドを生成すると高確率でモブキャラクターが大きく生成されます。
Draw Fullのチェックを解除して、Regionで背景も指定しないとTiled DiffusionがRegionをどのように生成するのかがわかります。