備忘録!StableDiffusion WebUI 「Latent Couple extension」の使い方
概要
「Latent Couple extension」の使い方を覚えたので、忘れないうちに備忘録を作成しておきます。これは複数のキャラクターを描き分けられる拡張機能です。
複数のキャラクターをイラストに登場させたくなり、一応いろいろ考えてプロンプトを作って生成しても、「あ~~ぁ ;つД`)」となる事が多発します。例えばこんな風に…
双子コーデを作れる「twin fashion」と言う強力なワードもありますが、双子コーデなのでどうしても二人の衣装が似てしまい、構図が限られます。
そこで登場するのが、拡張機能「Latent Couple extension」です。この機能を使うと、複数のキャラクターそれぞれに特徴や服装等の指定ができるようになります。
公式ページとインストール
インストール方法は簡単で、web UI の「拡張機能」タブをクリックし、「拡張機能リスト」で「読込」ボタンをクリックして、検索欄に「Latent Couple」と入力して検索したら一覧に出てくるので、「Install」ボタンをクリックします。そして、web UI を再読み込みしたらインストール完了です。txt2img・img2imgの下の方に「Latent Couple」という項目が出現しているはずです。
使い方
「Latent Couple」の横にある「◀」をクリックしてLatent Couple のウィンドウを開き、Rectangular タグをクリックします。
「可視化(Visualize)」ボタンをクリックするとこうなります。
分割(Divisions)
画面の分割数(つまり領域の広さ)を設定する項目です。「縦の分割数:横の分割数」を数値で指定しカンマで区切ります。分割は領域毎に行えるのでカンマ区切りで複数表記できます。
デフォの「1:1,1:2,1:2」は、「領域1は縦横共に1分割(分割無し)、領域2は縦1分割で横2分割、領域3も縦1分割で横2分割」と言う意味です。
例えば「2:1,2:2,2:2」とすると、「領域1は縦2分割で横1分割(分割無し)、領域2は縦2分割で横2分割、領域3も縦2分割で横2分割」と言う意味になります。そうして、後述する「位置(Positions)」と「重み(Weights)」を変更し、再度「可視化(Visualize)」ボタンをクリックするとこのように位置指定状態を確認する事ができます。
ちなみに分割数は整数でなくて良いそうで、「1.5:1」とかも可能です。
位置(Positions)
領域の位置を指定します。こちらも分割と同じように「縦の位置:横の位置」を領域ごとに数値で指定し、カンマ区切りで指定します。数値は「0」が1番目、「1」が2番目と考えると分かりやすいと思います。
デフォの「0:0,0:0,0:1」は、「領域1は縦横共に1分割の1番目(つまり全面)、領域2は縦1分割の1番目で横2分割の1番目、領域3は縦1分割の1番目で横2分割の2番目」と言う意味です。
分割の時に例えで使用した場合ですと、分割は「2:1,2:2,2:2」にして位置を「0:0,1:0,1:1」にすると、「領域1は上下2分割の1番目(つまり上半分)、領域2は縦2分割の2番目で横2分割の1番目(つまり下半分の左1/2)、領域3は縦2分割の2番目で横2分割の2番目(つまり下半分の右1/2)」となります。
こちらも分割と同様に位置は整数でなくても良く、整数ではない場合は、内側にその領域が移動します。
あと指定する数値を「0:0,1:0-1.5,1:1.5-2」にようにすると、「領域1は上下2分割の1番目(つまり上半分)、領域2は縦2分割の2番目で横2分割の1番目だけど2分割の内0から1.5(つまり下半分の左から3/4)、領域3は縦2分割の2番目で横2分割の2番目だけど2分割の内1.5から2.0(つまり下半分の右から1/4)」とかなり細かく位置指定をする事もできます。
重み(Weights)
領域ごとの重要度を数値で示してカンマ区切り指定します。細かく調整したい場合を除いて、全て同じ数値で良いと思います。私は一文字変えれば済むので全部0.8にする事が多いですが、全部「1」でも構いません。
このステップで終了(end at this step)
こちらの数値は、読んで字の如く指定されたステップに到達するまでLatent Couple の処理が実行されます。基本的にサンプリングステップ数と同じ数値で良いと思いますが、あえて数値を減らしてLatent Couple の処理を途中で止めるのもありだと思います。
ちなみに数値を約半分にして試してみたところ、右の子に眼鏡指定はしていませんが、眼鏡を掛けてしまいました。
適用(Apply)
このボタンをクリックすると、分割や位置、重みなどの設定がデフォに戻ります。デフォに戻したい時以外は絶対にクリックしてはいけません!
結果
では、実際に画像生成してみます。Latent Couple の「有効化(Enabled)」にチェックを入れ、プロンプトを書いて画像生成します。
ただし、プロンプトは領域ごとに呪文を書いてそれを「AND構文」を使って結合する必要があります。
absurdres, highres, ultra detailed, 2girls, background night sky
(ここまでが領域1のプロンプト)
AND super fine illustration, extremely cute and beautiful 2girls, black long hair, xpressionless, ((forehead, nodoka glasses):1.2), (looking at viewer:1.1), upright immovable
(ここまでが領域2のプロンプト)
AND super fine illustration, extremely cute and beautiful 2girls, silver short hair, (shot bangs), xpressionless, (looking at viewer:1.1), upright immovable
(ここまでが領域3のプロンプト)
ネガは
EasyNegativeV2, [:(bad-hands-5:1.2):22], nsfw
Latent Couple の設定はデフォに重みのみ全て0.8、ステップはサンプリングステップと同じ数値の設定です
では、この条件で実際に作成してみました。
概ね良さそうですが、良く見ると右側の子の髪の左側が一部長くなっています。領域2と3の位置を調整して、領域2の幅を狭め領域3の幅を広げる「0:0,0:0-0.9,0:0.9-2」で再度生成してみます。
あ!広げすぎて、今度は左の子の髪に右の子の影響が出てしまいました。
あと背景は「night sky」以外指定していないので、変わっても仕方ないのですが変わってしまいました。
今度は領域2と3の位置を「0:0,0:0-0.94,0:0.95-2」に調整して再度作成します。
ちなみに二人の間に少し隙間を入れるように領域2と3の位置を「0:0,0:0-0.9,0:0.95-2」とした場合の画像はこうなりました。
二人は近接していますが、指定した要素がほぼ互いに影響してないと思います。(眼鏡の歪みは無視して下さい (*ノωノ) )
余談
余談ですが、AND構文中に「BREAK」は入れない事をお勧めします。あえて領域毎に「BREAK」を入れてたプロンプト、
absurdres, highres, ultra detailed, BREAK
2girls, background night sky
AND super fine illustration, extremely cute and beautiful 2girls, BREAK
black long hair, xpressionless, ((forehead, nodoka glasses):1.2), (looking at viewer:1.1), upright immovable
AND super fine illustration, extremely cute and beautiful 2girls, BREAK
silver short hair, (shot bangs), xpressionless, (looking at viewer:1.1), upright immovable
で画像生成した結果がこちらです。
AND構文は効いているようですが、やはり「BREAK」でプロンプトの影響範囲が切れてしまい、指示内容の再限度は低下しています。
以上が、「Latent Couple」の備忘録となります。では、良きAIイラスト生活を!
この記事が気に入ったらサポートをしてみませんか?