そもそも、カーディガンは指定していない

プロンプトに「カーディガン」の指定はありませんでした。にもかかわらず、何度生成してもきっちりとカーディガンを着た状態で出てきます。

指定していないものが描写される、というのはそれ自体がエラーです。不要なものを描かせるわけにはいかないので、なんとか取り除く方法を探すことにしました。

ネガティブプロンプトで禁止する作戦

まず素直に cardigan をネガティブプロンプトに追加しました。

結果:色違いのカーディガンが登場しました。

カーディガンという単語を禁止したら、AIは別の色で解釈し直したようです。ならば色も指定して禁止しようとすると、今度は禁止していない色のカーディガンが律儀に出てきました。

ここで完全に意地の張り合いになりました。

禁止語を全力で並べる

「布もの全部禁止」の方針で、以下のネガティブプロンプトを投入しました。

(cardigan:2.5), (jacket:2.0), (stole:2.0), (shawl:2.0), (outerwear:2.0),
(shrug:2.0), (bolero:2.0), (coat:2.0), (sweater:2.0),
(long sleeves:1.8), (clothes on arms:1.8), (wrapped around shoulders:1.8),
(fabric covering arms:1.8), (knitted:1.5), (thick clothes:1.5),
(loose clothes:1.5), (standing:1.3), (distorted anatomy:1.2),
(clothes over skin:1.5), (layering:1.5), (undressing:1.5)

これだけ書けばさすがに……と思ったのですが、AIは「腕にふわっとまとわりつく布」というかたちで生き残ってきました。ウェイトを2.5まで上げても、布の面積を小さくして回避するような挙動です。「で?それがどうした?」という態度が透けて見えます。

発想を転換:「ない状態」をポジティブで指定する

禁止アプローチの限界を認め、方針を変えました。

「何を排除するか」ではなく、「どういう状態であるべきか」を直接描写するという方向です。

(highly detailed skin:1.2), (bare arms:1.5), (bare shoulders:1.5),
(skinny arms:1.2), armpits, clear arm contour,
(no clothes on arms:1.4), (arm skin focus:1.3)

腕の素肌・輪郭・腋といった要素を積極的に指定することで、布が入り込む余地を埋めるイメージです。

これで、ようやくカーディガンのない状態が安定して生成されるようになりました。

AIの最後の抵抗:タトゥー

しかし話はここで終わりませんでした。

腕から布は消えたものの、今度は腕にタトゥーのような模様が描かれ始めました。

布を禁止されたAIが、腕に別の何かを描き込もうとしているように見えます。こだわりとクセが強い、かなり手ごわいクリエイターを相手にしている感覚です。

これはネガティブプロンプトに tattoo を追加することで解決できました。

まとめ:禁止より「状態の指定」が効く場面がある

今回の検証を通じて感じたのは、ネガティブプロンプトは「概念」を禁止するには不向きな場合があるという点です。

モデルが強く関連付けているものは、単語を禁止しても別の表現で生き残ろうとします。そういったケースでは、ポジティブプロンプト側で「こうあるべき状態」を具体的に描写する方が結果として安定しやすい、というのが今回の経験からの暫定的な結論です。

使用環境は Stable Diffusion + Forge 構成です。モデルや環境によって挙動は変わると思いますので、参考程度にとどめていただければと思います。