生成AIでエッチな画像を作る探求
前回、四十八手を作ってみた際にプロンプトで人物配置をコントロールできないかと思ったのですが、いくつか方法があるようなので試してみます。
なお、結果としてはSD1.5系モデルなら動くのですがSDXL以降(Illustriousなど)はうまく動きません。
今回やりたいこととしてはシンプルに「女性を向かって右側に配置する」です。
Condtion (Set Area)を使う方法
CLIP Text Encoderの後につなげるノードにCondtion (Set Area) というのがありまして、これを使う方法です。
このノードのパラメーターは以下です。
- width: プロンプトを効かせる範囲の幅
- height: プロンプトを効かせる範囲の高さ
- x: プロンプトを効かせる範囲の開始X座標
- y: プロンプトを効かせる範囲の開始Y座標
- strength: プロンプトを効かせる範囲の強さ
ピクセルで指定するため、細かい指定ができる反面、大雑把に右半分。などはやや面倒ではあります。なお、widthなどの数値は8の倍数である必要があります。


Condtion (Set Area with Percentage) を使う方法
ピクセルでなくパーセンテージで指定する、Condtion (Set Area with Percentage) というノードもあります。右半分や下半分などの指定はこちらの方が楽です。
このノードのパラメーターは以下です。
- width: プロンプトを効かせる範囲の幅
- height: プロンプトを効かせる範囲の高さ
- x: プロンプトを効かせる範囲の開始X座標
- y: プロンプトを効かせる範囲の開始Y座標
- strength: プロンプトを効かせる範囲の強さ
ノードの名称の通り、パーセンテージで指定するのでwidth 0.50, height 1.0, x 0.50, y 0とした場合、右半分となります。


Condition (Set Mask)を使う方法
こちらはあらかじめMask領域を用意して、プロンプトの効く範囲を制御する方法です。
左半分、右半分くらいの描き分けであればImpact-PackのMask Rect Areaが便利です。
Condition (Set Mask)のパラメーターは以下です。
- strength: マスク領域を制御する強さ
- set_cond_area: マスク領域の制御方法
- default: マスク領域外にもプロンプトの影響する
- mask_bounds: マスク領域内に限定してプロンプトが影響する
set_cond_areaですが、mask_boundsを選択します。defaultを選択した場合、マスク領域外にもプロンプトの影響が及んでしまい、一つのプロンプトを実行したような結果になってしまいます。
Condition (Combine)のせいかもしれません


まとめ
2026/3現在、カスタムノードを使わずにできる方法をご紹介しました。
サンプリングの回数ですが、領域が増えている分通常より増やしたほうが良いです。例では40にしています。
また、SDXL以降は使えない方法なのでこれに代わる方法を探したいと思います。
そもそもの話、Condition (Combine)にしろCondtion (Concat)にしろプロンプトを合成しているので要素が混ざってしまうのは仕方ないのですが、それにしてもSDXL以降がまったく使えないのはどういうことなんでしょうかね。


コメント