「Latent Couple」を使って二人のキャラを描き分ける方法

「Latent Couple」を使って二人のキャラを描き分ける方法 AI/Stable Diffusion

Stable Diffusionで1人のAI絵を描く方法は様々ありますが、実は二人以上の人数を別々に指定して描くのは難しいことをご存じですか?

普通にプロンプトだけで二人分の命令を行おうとすると、その指令がごちゃ混ぜになって人物が書かれてしまいます。

その場合、顔が全く同じになったり、服装や髪型がミスマッチになってしまったり、何より立ち位置を含めての構成が上手くいかない場合がほとんどです。

今回はLoraなどの学習結果を使用せずに、個別のキャラクターを描き、想定通りの構成にする方法について紹介したいと思います。

結果

・3次元で棒人間を生成するため、通常のOpenposeよりも躍動感のある素体が作れる

・生成する絵のサイズが小さいとうまく反映されないことがある

・同時に保存出来るdepthなどを並用すると手足の崩れが少ない絵を出力出来る

この記事を読むと

二人以上を一つのプロンプトでまとめて描く方法が理解できます。

※記事内に広告が含まれています。

「Latent Couple」とは?

Stable Diffusionで絵を描く場合、基本的にプロンプト、ネガティブプロンプトを入力できる欄は1つです。

またプログラミングのように、人物を指定してそこに装飾を付け加えるようなことはできません。

また場合によっては、二人分のプロンプトを一人分のプロンプトと解釈されて、1人しか出力されないこともあります。

そんな時に「Latent Couple」を使うことで、キャンパスを任意の数に分割することができるようになります。

そのため、分割した画面1つ1つに対して個別で命令できるようになるため、プロンプト画面が複数あるような使い方をすることが出来ます。



「Latent Couple」のインストール

1.「Extensions」タブからAvailableを開きます。

2.「Load from」ボタンを押して、拡張機能リストを表示します。

3.拡張機能リストの中から「Latent Couple」を選択し、「Install」ボタンを押します。

4.「Apply and restart UI」 ボタンをクリックして適用して再起動します。

再起動「txt2img」タブを確認してください。拡張機能の一覧に「Latent Couple」という項目が追加されていれば、正常にインストールされた証拠です。

これで準備は整いました。

再起動「txt2img」タブを確認してください。

拡張機能の一覧に「Latent Couple」という項目が追加されていれば、正常にインストールされた証拠です。

もし項目が出てきていないときは再起動ができておらず反映がされていないか、インストール途中でエラーになっている可能性がありますので、再起動とコマンドプロンプトの確認をしてください。

【検証】実際にLatent Coupleを使用して、二人の画像を生成してみた

準備

まずはLatent Coupleを使用するための準備を行います。

①人物を描き分ける「Rectangualr」の設定方法

「Rectangualr(レクタンギュラー)」を設定して、画面をどのように分割するかを決定します。

「Latent Couple」をクリックし「Rectangualr」タブを開きます。

初期値として、Divisions(分割):「1:1,1:2,1:2」、Positions(位置):「0:0,0:0,0:1」、Weights(重み):「0.2,0.8,0.8」が入力されています。

「Visualize」をクリックすると、赤枠のような黒や白で色分けされた画面が映ります。

このように描く場所を分けて、そこにそれぞれのプロンプトを適用させていきます。

数値の意味は下記の表になります。

数値は初期値になります。

名称数値意味
Divisions1:1縦1×横 1/1 背景の画面領域(画面サイズ)、分割していないので全画面
1:2縦1×横 1/2 人Aの画面領域(画面サイズ)、画面を左右に分割した片方
1:2縦1×横 1/2 人Bの画面領域(画面サイズ)、画面を左右に分割した片方
Positions0:0背景の位置、縦:0、横:0の位置(座標は0.0が始点)
0:0人Aに対する縦:0、横:0の位置(画面左側半分)
0:1人Bに対する縦:0、横:1の位置(画面右側半分)
Weights0.2背景の重みづけ 
0.8人Aの重みづけ
0.8人Bの重みづけ

拡張機能「Latent Couple」で2人を生成する方法

まずは画面を2分割して、それぞれに1人ずつの計2人の人物絵を出力します。

Latent Coupleを使用する前に、通常のプロンプトだけでどのように出力されるかを確認していきます。

今回は下記の表のイメージで作成してみます。

対象設定
全体高品質、白背景、無地背景
左側のキャラオオカミ少女、ケモミミ、茶色の髪、緑の瞳、
右側のキャラ雪豹少女、ケモミミ、ピンク髪、ピンクの瞳

それぞれのキャラを一人で出力すると下記のようになります。

これを1つのプロンプトにまとめて、二人同時に出力しようとすると下記のようになります。

出力された結果を見ると、3/12は二人で出力されていますが、髪の色や立っている場所がごちゃ混ぜになっています。

通常のプロンプトでは、それぞれを独立した条件付けするのはとても難しいことが分かります。

①呪文(プロンプト)で分割・改行する

Latent Coupleを使って書き始める前に、通常のプロンプトとは書き方が異なるのでそこは注意が必要です。

「背景等」「人A」「人B」のそれぞれに、「品質などの基本情報、人数、各々に関するプロンプト」を書く必要があります。

そのため、「品質などの基本情報+人数+全体に関するプロンプト」AND「品質などの基本情報+人数+人Aに関するプロンプト」AND「品質などの基本情報+人数+人Bに関するプロンプト」という書き方をする必要があります。

best quality, masterpiece, 16k, ultra detailedなどの品質に関するプロンプトを、複数回(今回は3回)記載する必要があるので、忘れないようにしてください。

また今までになかった「AND」が追加されているので、間に入れるのを忘れないようにしてください

今回はSDキャラ二人を描いていきたいので、下記のようなプロンプトにします。

プロンプト

masterpiece, best quality, 4K,( 2 girls, chibi:1.5),(no background, white background, simple background:1.2)
AND
(best quality, masterpiece, 16k, ultra detailed, Photorealistic, beautiful skin, professional lighting),( 2 girls, chibi:1.5) ,Wolf girl,(no background, white background, simple background:1.2),
a very cute and beautiful ,anime dog girl, detached green sleeves, green eyes, brown hair
AND
(best quality, masterpiece:1.2),( 2 girls,chibi:1.5), full body,(wariza:1.3),(no background, white background, simple background:1.2),
a very cute and beautiful , (anime girl:1.2),rounded eyebrows, white rounded eyebrows,
snow leopard, animal ears, white tiger ears, looking at viewer, pink eyes

ネガティブプロンプト

worst quality, low quality, blurry, nsfw,
flat color, flat shading, retro style, poor quality, bad face,
bad anatomy, bad hands, missing arms, text error, missing fingers, jpeg artifacts, long neck, signature, watermark, blurry, fisheye lens, animal, deformed mutated disfigured, mutated hands, missing hands, extra hands, liquid hands, poorly drawn hands, mutated fingers, bad fingers, extra fingers, liquid fingers, poorly drawn fingers, bad legs, missing legs, extra legs, bad arms, extra arms, long torso, thick thighs, partial head, bad face, partial face, bad eyebrows,
ugly, disfigured

プロンプトを書いたら、「Latent Couple」の下の「Enabled」にチェックを入れてください。これでLatent Coupleが有効になります。

出力結果

女の子絵の半分ずつで出力されました。

Rectangualrの設定の通り、中央で半分に分かれて、左右に一人ずつ女の子がいる絵が描けました。

またANDで区切った順番通りに、左側の女の子が茶色の髪、右の女の子がピンク色の髪になりました。

ただし出力した結果を見ると、8/12は左右半々で出力されていますが、残りは一人だったり、二人の比率が半々でなかったりしています。

②出力サイズによる違い

先ほどは出力サイズを768×512→921×614(Hires.flxで1.2倍)の若干横長の画像で出力しました。

これは基本的にキャラを複数描く場合、横長の画像であることが多いためそれに準じたサイズとしました。

他サイズでどうなるかも確認していきます。

512×512→1024×1024(Hires.flxで2倍)

出力サイズを正方形にすると大きさを長方形の時より大きくしても、二人が出力される確率が減りました。

ぎりぎり4/12で二人で出力されていますが、Rectangualrの設定どおり、画面の半々通りになっているのは、2枚程度です。

正方形では二人の学習モデルのサンプルが少ないため、このような出力結果になったと思われます。

512×768→614×921(Hires.flxで1.2倍)

出力サイズを512×768→614×921(Hires.flxで1.2倍)の若干縦長の画像で出力しました。

縦長にすると二人が1/12と、正方形よりも二人が出力される確率がぐっと減りました。

③「Rectangualr」の設定を変更して出力

Rectangualrの設定によって、どのように絵が変化するか確認していきます。

「Position」を左右入れ替えて出力

Rectangualrの設定は基本的に左から順番になっており、プロンプトは上から順番になっています。

あえてその順番を入れ替えて確認してみます。

入れ替えると本当は左にあるはずの内容と混ざり合って、うまく出力されませんでした。

これに関しては上手く解消できなかったため、プロンプトの順番とPositionなどの順番はあわせる必要がありそうです。

「Divisions」の値を変更した場合

画像の範囲を左側を1/3、右側を1/2とした場合どうなるかを確認していきます。

間に1/6程度の隙間が空くはずなので、そこがどう埋まるかの検証になります。

キャラの大きさが均一でなく、大小に分かれる結果となりました。

しかし、基本ピンク髪のキャラが主体となっているため、画像サイズが大きい(右側)の画像が主体になっているものと思われます。

拡張機能「Latent Couple」で3人を生成する方法

次は3人での生成を試してみます

①人物を描き分ける「Rectangualr」の設定を3人にする

Rectangualrの設定を三人用に設定します。

Divisionsに「1:1,1:3,1:3,1:3」を設定します。

背景は1画面全体、キャラ分はそれぞれ3分割した画面となりました。

Positionsは「0:0,0:0,0:1,0:2」と設定します。

これによって、画像生成が左、中央、右に描かれることになります。

最後にWeightsは0.8を追加して「0.4,0.8,0.8,0.8」にします。

※下のApplyボタンを押すと元に戻ってしまうので注意が必要です。

②呪文(プロンプト)を分割・改行する

プロンプトは追加する一人分をANDと一緒に記述します。

また2girlsとしていたところを、3girlsに変更します。

masterpiece, best quality, 4K,( 3 girls, chibi:1.5),(no background, white background, simple background:1.2)
AND
(best quality, masterpiece, 16k, ultra detailed, Photorealistic, beautiful skin, professional lighting),( 3 girls, chibi:1.5) ,Wolf girl,(no background, white background, simple background:1.2),
a very cute and beautiful ,anime dog girl, detached green sleeves, green eyes, brown hair
AND
(best quality, masterpiece:1.2),( 3 girls,chibi:1.5), full body,(wariza:1.3),(no background, white background, simple background:1.2),
a very cute and beautiful , (anime girl:1.2),rounded eyebrows, white rounded eyebrows,
snow leopard, animal ears, white tiger ears, looking at viewer, pink eyes
AND
(best quality, masterpiece:1.2),( 3 girls,chibi:1.5), full body,(wariza:1.3),(no background, white background, simple background:1.2),
a very cute and beautiful , (anime girl:1.2),
black cat, animal ears, black cat ears, looking at viewer, black eyes

③出力結果

は三人のキャラが出力されました。

ただし人数が多くすると、その分だけ一人当たりの画像サイズが減ってしまい、うまくプロンプト通りに生成されない可能性があります。

今回は1人当たりのサイズが512×512以下になったため、髪の色や目の色が上手く再現出来ていません。

そのため2人以上を描く場合は解像度をもっとあげるとより良い忠実な画像の生成が出来ます。

ただしサイズを2048×1024まで大きくすると、背景の重みづけにかかわらずキャラ以外の部分に重みが置かれてしまうようです。

まとめ

今回は『Latent Couple』を使用して、二人の絵を描き分ける方法について紹介しました。

改めて3行でまとめると…

・2人以上のキャラを描き分けて出力することが可能

・生成する絵のサイズによって、二人が出力されにくいことがある。

・3人以上も出力可能だが、1人当たりの画像サイズが減ってしまうため、人数を増やしたときは画像サイズを上げる必要がある

絵を描く際に立ち絵だけならば一人でいいですが、本の挿し絵のような画像を描きたい場合は二人以上描くことは珍しくありません。

このような時にそれぞれのキャラについて、設定を反映させることは難しいですよね。

そんな時に「Latent Couple」を使用することで、手軽に二人以上を各々設定して書き上げることが出来ます。

是非この機能を使って、プロンプト単体では難しかった二人以上の絵をたくさん描いてみて下さい。

StableDiffusionにお勧めのグラボ

ここまでの記事を読んでStableDiffusionを始めてみたいと思ったけど、どれを買ったか良いか分からない人向けに私の使っているグラボを紹介します。

私が使用しているグラボはNVIDIA GeForce RTX3060 搭載 グラフィックボード GDDR6 12GBになります。

StableDiffusionで絵を生成するときは、PCのCPUやメモリよりもグラボの性能が重要です。

StableDiffusionではVRAMが12GB以上であることが推奨されていますが、普通のゲーム用のグラボでは8GBのものが多いです。

経験上、一回のプロンプトで一発で望みの絵が出ることは少なく、10枚ぐらい出力してそこから近づけていく作業をします。

しかしVRAMが低いと1枚を生成する時間が長くなってしまいます(完全にVRAM依存ではないですが)

1枚の生成する時間が長いと、最終的なゴールまでの時間も多くかかってしまうので、推奨要領である12GBのグラボを買うことをお勧めします。

VRAMが低い=一度に計算できる数が少ない=生成速度が遅い

そのため解像度の高い絵を生成するのに時間がかかるだけでなく、生成できない可能性もあります(2GBや4GBなど)

Controlnet等、拡張機能を複数使用する場合やLora等の学習を行う場合は、より顕著にVRAMの差が出ます。

そのため単純にAIで出力してみたい。というだけでなく、その一歩先で色々やってみたい方は是非12GB以上を購入してみてください。

ちょっと試すだけなら、下記のような無料AI画像生成サービスを使うのも良いです。

コメント

タイトルとURLをコピーしました