そもそも、カーディガンは指定していない
プロンプトに「カーディガン」の指定はありませんでした。にもかかわらず、何度生成してもきっちりとカーディガンを着た状態で出てきます。
指定していないものが描写される、というのはそれ自体がエラーです。不要なものを描かせるわけにはいかないので、なんとか取り除く方法を探すことにしました。
ネガティブプロンプトで禁止する作戦
まず素直に 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 構成です。モデルや環境によって挙動は変わると思いますので、参考程度にとどめていただければと思います。