Stable Diffusionで画像生成を行う際に、一度に複数の人物の画像が思い通りに出力されないことはないでしょうか。
Stable Diffusionで思い通りの画像を生成するためには、プロンプトの工夫や、拡張機能の活用が求められます。
今回PROMPTYでは、複数人の画像生成に便利な拡張機能とその利用方法をまとめました。
Stable Diffusion WebUIの利用方法を知りたい場合は、こちらの記事をご覧ください。
「Stable Diffusionを使用したいが、どのように始めれば良いのだろう...」「低スペックPCでもStable Diffusionを使用できるの?...」 そう思う方もいるのではないでしょうか。 実は、高性能なPCを持っ[…]
複数人の画像を生成するプロンプト
プロンプト:
masterpiece,best quality,{人数に関するプロンプト},detailed face and eyes,{人物の特徴など}
ネガティブプロンプト:
worst quality,low quality,nsfw,flat color,flat shade,sketch,interlocked fingers,skin blemishes
モデル:Anything V5
Sampling method:Euler a
Sampling steps:20
Width:512
Height:512
Batch count:1
Batch size:1
CFG Scale:7
Seed:-1
Script:None
プロンプト | 生成される画像 |
〇 girls | 〇人の女の子 |
〇 boys | 〇人の男の子 |
many boys | 複数人の男の子 |
many girls | 複数人の女の子 |
〇 children | 〇人の子ども |
1 boy and 1girl | 1人の男の子と1人の女の子 |
〇 students | 〇人の学生 |
wife and husband | 夫婦 |
1 mother and 1 child | 母親と子ども |
1 father and 1 child | 父親と子ども |
生成した画像:
Stable Diffusionで複数の画像を生成できる拡張機能
Stable Diffusionで複数人の画像を生成する際、次のようにうまく画像が生成できない場合があります。
複数人の画像の失敗例:
そこで、今回の記事では、複数人の画像をハイクオリティで生成できる拡張機能を2つご紹介します.
①「Latent Couple」で生成される人物を描きわける
「Latent Couple」という拡張機能を用いることにより、2~3人のキャラクターを簡単に並べて表現できます。「Latent Couple」は画面を区分して、それぞれに異なるプロンプトを適用することが可能です。
例えば、左側のキャラクターと右側のキャラクターに別々のプロンプトを指定し、髪の色や服装などを個々に表現することができます。
「Latent Couple」の導入方法
Stable Diffusion WebUIでは、簡単に「Latent Couple」を導入することができます。
「Latent Couple」のインストールはwebUIのExtensionsメニューから行います。
Availableタブの「Load From」をクリックします。
「Latent Couple」を検索して、「Install」をクリックします。
インストール後、Web UIを再起動すると「Latent Couple」を使用できます。
WebUIのtxt2imgのタブに「Latent Couple」が追加されていれば、正常にインストールできています。
「Latent Couple」の使用方法
本記事では、キャンバスを分け、それぞれのエリアで異なるプロンプトを使ってキャラクターを描く方法について詳しく説明します。
まず「Latent Couple」を開き、「Enabled」にチェックを入れます。
次に、「Rectangular」のタブを開き、パラメータを設定します。
「Divisions」は画像を分割するときの行の数:列の数です。たとえば、”4:3″と設定すれば、キャンバス全体を4行3列に分け、各領域のサイズは元の画像サイズの縦1/4、横1/3となります。
「Positions」は縦の位置:横の位置です。もし最も左上の領域を選びたいなら、”0:0″を設定します。例えば、「Division」を”1:2″と設定して1行2列に分割した場合、”0:0″は左半分、”0:1″は右半分を意味します。
DivisionsとPositionsはそれぞれをコンマで区切り、複数指定できます。それにより、異なる領域に対してプロンプトの効果を指定できます。
プロンプトの強度はWeightsで指定します。Weightsの数はDivisions、Positionsの数と一致している必要があります。
「end at this step」はLatent coupleが作用するステップ数を示します。画像生成のSampling stepsと一致していると、最初から最後までLatent coupleが作用します。
これらの設定を完了した後、「Visualize」をクリックします。「Regions」内に黒色のアイコンが表示され、これが分割された領域を示しています。この設定では、背景と左半分、右半分で分割してプロンプトを入力することができます。
「Latent Couple」の基本設定はこれで完了です。
活用例1:画面を二分割して二人の画像を生成する
実際に、「Latent Couple」を使って画面を二分割して二人の画像を生成します。
Latent Coupleの設定は次の通りです。
- Division:1:1, 1:2,1:2
- Positions:0:0, 0:0, 0:1
- Weight:0.5, 1, 1
- end at this steps:20
Latent Coupleでは、プロンプトを”AND”で区切ってそれぞれの領域のプロンプトを指定します。今回の分割では次のようなプロンプトになります。
プロンプト:
{全体に適用するプロンプト}
AND {左半分に適用するプロンプト}
AND {右半分に適用するプロンプト}
今回は、教室にいる女の子二人の画像を生成します。
プロンプト:
masterpiece, best quality, extremely detailed beautiful face and eyes, 2 girls,full body, classroom
AND masterpiece, best quality, 2 girls, full body,black short hair, red eyes, school uniform, classroom
AND masterpiece, best quality, 2 girls, full body,blonde long hair, green eyes,sweater, classroom
ネガティブプロンプト:
flat color, flat shading, nsfw,(worst quality, low quality:1.4), interlocked fingers, (zombie, sketch, comic)
Sampling method:DPM++SDE Karras
Sampling steps:40
Width:512
Height:512
Batch count:1
Batch size:1
CFG Scale:7
Seed:-1
Script:None
生成した画像:
教室を背景に、二人の女の子の画像を生成できました。
プロンプト通りに左半分には黒のショートヘア、赤い瞳、制服の女の子が、右半分には金髪ロング、緑色の瞳、セーターを着た女の子が生成されました。
②「MultiDiffusion(Tiled Diffusion)」で集合絵を生成する
「MultiDiffusion」という別の拡張機能を使うと、画像を大きくして多数のキャラクターを描写することもできます。この機能もまた、画面内の特定の範囲にキャラクターを配置し、それぞれの髪形や服装を指定して描くことが可能です。
「MultiDiffusion」の導入方法
「MultiDiffusion」は「Latent Couple」と同様に、webUIのExtensionsメニューからインストールできます。
インストール後、Web UIを再起動すると「MultiDiffusion」を使用できます。
WebUIのtxt2imgのタブに「Tiled Diffusion」と「Tiled VAE」のタブが追加されいてれば、正常にインストールできています。
「Multi Diffusion」の使用方法
Stable Diffusion WebUIの「txt2img」タブを開いた後、「Tiled Diffusion」及び「VAE(Tiled VAE)」の設定画面に進みます。
「Tiled Diffusion」タブでは、「Enable」と「Overwrite image size」のオプションにチェックをつけます。「Method」が「MultiDiffusion」と表示されていることを確認してください。
次に、画像の幅と画像の高さの設定を行います。最初は横長の画像(パノラマ画像)を作成することを推奨します。画像の幅は1920, 2560, 3840」など、お好みの数値に設定します。画像の高さは512, 768, 1024などをおすすめします。
次に「Tiled VAE」タブで「Enable」をチェックします。今回はデフォルトの設定で使用します。
活用例1:「Multi Diffusion」を使ってハイクオリティな集合絵を生成する
今回はこちらの設定で、「Multi Diffusion」の効果を検証します。
Tiled Diffusionタブの設定:
プロンプト:
masterpiece, best quality,five girls,full body, classroom, extremely detailed beautiful face and eyes
ネガティブプロンプト:
flat color, flat shading, nsfw,(worst quality, low quality:1.4), interlocked fingers, (zombie, sketch, comic)
モデル:AnythingV5
Sampling method:DPM++SDE Karras
Sampling steps:20
Width:512
Height:512
Batch count:1
Batch size:1
CFG Scale:7
Seed:-1
Script:None
生成した画像:
人数は無視されてしまいましたが、ハイクオリティな集合絵を生成することができました。
活用例2:「Region Prompt Control」の機能で登場人物を制御する
「MultiDiffsuion」では「Region Prompt Control」という機能を使う機能によって、登場人物を制御することができます。
「Region Prompt Control」を選択し、詳細設定画面を開きます。「Enable Control」と「Draw full canvas background」にチェックを入れます。
その後、「Create txt2img canvas」を選択し、キャンバスを作成します。それぞれの「Enable Region」をチェックすると、次のような四角形で表示されます。
“x”と”y”で領域の位置を、”w”と”h”で幅と高さを設定できます。
また、”Type”ではForeground(前景)とBackground(背景)を指定できます。
今回の記事では、「Region 1」「Region 2」にそれぞれ特徴の異なる人物を、「Region 3」に背景を指定します。
Region1(画面の右側、赤色)のType:Foreground
Region1のプロンプト:
masterpiece, best quality, 1 girls, full body,black short hair, red eyes, school uniform
Region2(画面の左側、オレンジ)のType:Foreground
Region2のプロンプト:
masterpiece, best quality, 1 girls, full body,blonde long hair, green eyes,sweater
Region3(画面全体、黄色)のType:Background
Region3のプロンプト:
masterpiece, best quality,extremely detailed, classroom
ネガティブプロンプト(今回はすべて共通):
flat color, flat shading, nsfw,(worst quality, low quality:1.4), interlocked fingers, (zombie, sketch, comic)
生成された画像
プロンプト通りに右側(Region 1)には黒のショートヘア、赤い瞳、制服の女の子が、左半分(Region2)には金髪ロング、緑色の瞳、セーターを着た女の子が生成されました。背景(Region3)机や黒板など学校の教室として適切な絵が生成されました。
まとめ
今回PROMPTYでは、Stable Diffusionで複数人の画像を生成するための拡張機能とその利用方法を紹介しました。
複数人の画像を正しく生成する機能として「Latant Couple」「Multiple Diffusion」をご紹介しました。
また、複数人の画像を生成するプロンプトを紹介しました。
今回の例を参考に、皆さまもStable Diffusionでハイクオリティな複数の人物の画像を生成してみていかがでしょうか。
~Stable Diffusionで素早く画像生成するには~
Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。
このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。
推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。
2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。
コスパを重視する方は、RTX 3060を選ぶと良いでしょう。
このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。