Latent Coupleを利用して、領域ごとに別のプロンプトで画像を生成する手順を紹介します。
画像の一部分に別のプロンプトを適用して画像を生成したい場合があります。
この記事では、Latent Coupleを利用して、領域ごとに別のプロンプトで画像を生成する手順を紹介します。
Latent Coupleを導入します。導入手順はこちらの記事を参照してください。
Stable Diffusion WebUIを表示します。
txt2img の画面を下にスクロールします。[Latent Couple]のパネルをクリックして展開します。下図の画面が表示されます。
Latent Coupleのパネル内の[Rectangular]のタブをクリックして選択します。下図の表示に切り替わります。
デフォルトの設定のまま、[Visualize]ボタンをクリックします。各設定は次の通りです。
Visualize ボタンをクリックするとRegionsに領域のイメージが作成されます。今回は、3つの領域が作成されます。
白に近い色ほどウェイトが強いことを表しています。
Weightsの値を"0.9,0.2,0.2"に変更した場合の結果です。ウェイトの小さい領域は暗い灰色で表示されます。
Latent Coupleパネル内の[Enabled]チェックボックスをクリックしてチェックをつけます。
プロンプトを入力します。以下のプロンプトとします。
最初のANDまでの文字列が、画像の全体に適用されるプロンプトになります。
ANDから2番目のANDまでの文字列が左側の領域のプロンプトになります。
2番目のAND以降が右側の領域のプロンプトになります。
下記の例では、左側に青空を描画し、右側に黄色い空と雲を描画するプロンプトになります。
画像を生成すると下図の結果になります。左側に青い空が描画され、右側に黄色い雲が描画されました。
複数回生成しても同様の結果になります。右側には空が描画されない場合もあります。
Latent Couple を利用して領域ごとに別のプロンプトで画像を生成できました。
同じ分割のマスクを利用し、以下のプロンプトで画像を生成します。
左側に少女を描画し、右側に少年を描画するプロンプトを意図していますが、
このプロンプトは意図したとおりの動作にはならないです。
生成結果は下図になります。
1キャラクターのみが描画され、左半分が藍色の服に、右半分が赤色の服や背景になります。
左右に1キャラずつ表示するには、以下のプロンプトにすると成功率が上がります。
生成結果は下図になります。
左側に藍色の服の少女を描画し、右側に赤色の服の少年を描画できました。
この動作になる理由ですが、左右に領域が分割されていますが、boy, girl, 1boy, 1girl には
画面全体として1キャラクターの意味づけが含まれている可能性があるためと考えられます。
boy, girl を含まない先のskyや、次のフルーツのプロンプトであれば、左右に描画される結果になります。