意匠・原則

ネガティブプロンプトとは?「描かせない」技術で画像生成AIの精度が劇的に変わる話

2026年9月28日

画像生成AIをさわり始めた頃、僕はずっと「何を書くか」ばかり考えていました。プロンプトに言葉を足せば足すほど理想に近づくはず、と信じて疑わなかったんですよね。

でも実際にやってみると、指が6本ある手や、謎の透かし文字、頼んでもいないのに写り込む余計な人物……そういう「ノイズ」がなかなか消えてくれない。あれ、プロンプトの書き方が悪いのかな?と試行錯誤しているうちに知ったのが「ネガティブプロンプト」でした。

これを知ってからというもの、生成画像のクオリティが目に見えて安定するようになったので、今日はこの「描かせない技術」について、非デザイナーの視点からじっくり解説してみます。

ネガティブプロンプトとは何か

ネガティブプロンプトとは、ひとことで言うと「画像に含めてほしくない要素をAIに指示するための入力欄(またはパラメータ)」のことです。通常のプロンプトが「何を描いてほしいか」を伝えるのに対し、ネガティブプロンプトは「何を描いてほしくないか」を伝える役割を持ちます。

たとえば「森の中の小川」という風景を生成したいとき、ポジティブプロンプトだけだと、AIが気を利かせて(?)ハイカーや木の橋、動物などを勝手に配置してくることがあります。ここでネガティブプロンプトに「people, bridge, animals」のように指定しておくと、それらを避けた、意図に忠実な画像になります。

僕が最初にこの概念を知ったときは「そんなの本文に『人はいません』って書けばいいんじゃないの?」と思っていました。ところが、これが大きな勘違いだったんです。

なぜ「本文に書くだけ」ではダメなのか

実はここが画像生成AIの一番わかりにくいポイントだと思うのですが、多くの画像生成モデルは「否定形」をうまく処理できません。”a street without cars”(車のいない通り)と入れると、多くの場合AIは「street」と「cars」という単語だけを拾ってしまい、結果的に車が写り込んだ画像を生成してしまいます。人間なら「without」があるから除外すればいいとすぐわかりますが、AIにとっては「car」という単語が存在すること自体が、そのまま「車を描く根拠」になってしまうんですね。

この性質は、Stable Diffusion系だけでなく、MidjourneyやDALL-E(ChatGPTの画像生成機能)でも共通して見られる傾向です。この弱点があるからこそ「除外専用の入力欄」としてネガティブプロンプトが用意された、と考えるとしっくりきます。海外のコミュニティでも「Negation Handling(否定処理)」の課題としてたびたび話題になっていて、あるユーザーはOpenAIのコミュニティフォーラムで「DALL-EやGPT自体も否定をうまく処理できず、no・not・withoutといった単語はほぼ機能しない。プロンプトに含めた単語はほとんどの場合、そのまま画像に反映されてしまう」と報告しています(引用元:OpenAI Community「DALL-E Bug on Male Faces and Beards ChatGPT Plus」)。どの画像生成AIにも共通するクセと考えてよさそうです。

ツールごとに全然違う!ネガティブプロンプトの実装方法

さて、ここからが今回いちばん伝えたい部分です。「ネガティブプロンプト」とひとことで言っても、ツールによって実装のされ方がまったく違います。これを知らずに使うと「あれ、思った通りに動かない」と混乱することになるので、最初に押さえておいてほしいポイントです。

Stable Diffusion系(WebUI・ComfyUIなど):専用の入力欄がある王道パターン

Stable Diffusion系のツール(AUTOMATIC1111のWeb UIやComfyUIなど)は、ポジティブプロンプトとは別枠の「Negative prompt」という入力フィールドが最初から用意されています。Automatic1111・ComfyUI・InvokeAIといった主要なインターフェースはもちろん、その他多くの生成プラットフォームにも標準的に備わっています(引用元:Morphic「Negative Prompt」用語集)。

技術的な仕組みとしては、拡散モデルの「Classifier-Free Guidance」という処理の中で、生成過程をポジティブプロンプトの方向へ引き寄せつつ、ネガティブプロンプトで指定した性質からは遠ざける制御が行われています。単なる「除外ワード」ではなく、生成のベクトルそのものを操作する仕組みというわけです。

実務的には、次のような「お決まりワード」を並べておくのが定番です。

低品質、粗悪な画像、手が変形、指の数がおかしい、余分な手足、解剖学的に不自然、ぼやけ、透かし、テキスト、署名

lowres, bad quality, bad anatomy, extra fingers, missing fingers, deformed hands, extra limbs, blurry, watermark, text, signature

Stable Diffusion系ならではの機能として、特定の単語を強く効かせたいときに使う「重み付け」の構文もあります。(bad anatomy:1.4)のようにコロンの後ろに数値をつけることで、その単語の影響力を強めたり弱めたりできます。数値を大きくするほど、その要素を強く避けさせる指示になります。

さらに、”EasyNegative”のように、あらかじめ大量の失敗パターンを学習させた「ネガティブ専用の埋め込みファイル」も存在していて、ひとこと書くだけで長いネガティブプロンプトを書いたのと同じ効果が得られます。ある個人制作モデルの配布ページでは「ネガティブプロンプトは (worst quality, bad quality:2.0) だけで大丈夫です(EasyNegativeとかを使ってもいいけどね)」とシンプルな運用が紹介されていました(引用元:Hugging Face「blue_pencil」モデルカード)。

Midjourney:文章ではなく「–no」パラメータで指定する

Midjourneyの場合は、Stable Diffusionのような独立した入力欄はなく、プロンプトの末尾に--noというパラメータを付け足す方式になっています。公式ドキュメントでは「–noパラメータは、画像に含めたくないものをMidjourneyに伝えるためのツールで、特定の要素に対する“立入禁止”リストを作るようなもの」と説明されています(引用元:Midjourney公式ドキュメント「No」)。

公式が挙げている例がわかりやすいので紹介します。「still life gouache painting without any fruit」や「please don’t add fruit!」は悪い例、「–no fruit, apple, pear」が良い例とされています(引用元:Midjourney公式ドキュメント「No」)。Midjourneyでも、Stable Diffusionと同じく文章内の否定形はうまく機能しないわけです。

ちょっとした注意点もあります。Midjourneyの検閲システムは--noの後ろの単語を個別に読み取るため、「–no modern clothing」と書くと「no modern」と「no clothing」に分解され、意図せず誤認されて警告が出ることがある、とも説明されています(引用元:Midjourney公式ドキュメント「No」)。この場合は着せたい服装そのものをポジティブプロンプト側で具体的に書いたほうが安全です。

日本語プロンプトの例と、海外サイトでそのまま使える英語表記を並べておきます。

山の中の高速道路、車なし、静かな風景 --no cars

a highway in the mountains, empty road, quiet scenery --no cars

また、Midjourneyには”–no”以外にも、二重コロン::とマイナス数値を組み合わせて要素の重みを下げる「ネガティブウェイト」というテクニックもあります。digital artwork::1 photo-realistic::-1のように書くと、フォトリアル寄りの要素を弱められます。

DALL-E/ChatGPTの画像生成:そもそも「専用欄」が存在しない

三つ目、そして非デザイナーの方がいちばんつまずきやすいのがDALL-E(ChatGPTの画像生成機能)です。このツールには専用の入力欄もパラメータも存在せず、すべて自然言語の会話の中で指示するしかありません。これがStable DiffusionやMidjourneyとの決定的な違いです。

しかも厄介なことに、DALL-Eは前述の「否定形が効きにくい」という性質がかなり強く出ます。あるユーザーはOpenAIのコミュニティフォーラムで、no・not・without・neverといった単語は期待通りに機能せず、プロンプトに書いた言葉はたいてい画像にそのまま反映されてしまうと報告しています。同じ投稿では、これを回避するテクニックとして「何かを排除しようとするのではなく、実際に画像に入れたい要素を強調したほうがよい」というアドバイスも紹介されていました(引用元:OpenAI Community「DALL-E Bug on Male Faces and Beards ChatGPT Plus」)。

さらに興味深いのは、ChatGPTの画像生成が「会話モデル(GPT-4oなど)」と「画像生成モデル(DALL-E 3)」という2つの異なるモデルの連携で成り立っている、という指摘です。ある解説記事では、拡散モデルは否定的な指示にうまく反応せず、プロンプト中のトークンは基本的にすべて“描画すべき対象”として扱われるため、否定的な指示を含めることがかえって出現確率を高めてしまう、と説明されています(引用元:embracingenigmas.substack.com「The Tic-Tac-Toe Dilemma」)。

つまりDALL-E/ChatGPT系では「〜を除外して」とお願いするより、最初から避けたい要素を含まない情景としてポジティブに描写しておくのが鉄則です。

誰もいない静かな砂浜の夕焼け、波の音だけが聞こえるような穏やかな雰囲気

a quiet empty beach at sunset, calm atmosphere with only the sound of waves

「人を消してください」と後から交渉するよりも、最初から人がいない世界観として描写を組み立てる方が近道、というわけです。

実際に試してみた:ネガティブプロンプトあり・なしの違い

百聞は一見にしかずということで、Stable Diffusion系のツールで簡単な検証をしてみました。「木製のテーブルに置かれたコーヒーカップ」という、一見シンプルなプロンプトです。ネガティブプロンプトなしで生成すると、カップの持ち手が二重に見えたり、背景に謎のテキストのようなノイズが入り込んだりすることがありました。特に持ち手のような「細くて繊細なパーツ」は、AIが苦手とする典型的な部分だと実感しました。

そこで、次のようなネガティブプロンプトを追加してみます。

低品質、ぼやけ、変形した取っ手、余分なオブジェクト、透かし、テキスト、署名、不自然な影

low quality, blurry, deformed handle, extra objects, watermark, text, signature, unnatural shadow

これを加えただけで、取っ手の形状がぐっと自然になり、背景のノイズもかなり減りました。プロンプト本文を書き足すよりも、ネガティブプロンプト側を整えるほうがコスパがいいと感じた瞬間です。実は筆者は最初、本文側の描写をあれこれ足して粘っていたのですが、30分くらい格闘してもあまり改善せず……「あれ、アプローチが違うのでは?」と気づいてからは一気に解決しました。筆者が悪かった、筆者が悪かったでござる。

非デザイナーがつまずきやすいポイント

ひとつ目は「詰め込みすぎ」問題です。海外の解説記事でも「入れすぎるとAIの結果がありきたりで硬い印象になりやすい。8〜12個程度にとどめ、20個以上を列挙するようならメインのプロンプト側を見直すべきサイン」と指摘されています(引用元:Picsart「How to Master Negative Prompts for AI Image Generation」)。あれもこれも除外しようとすると、逆に画像全体が没個性的になる感覚は僕も実感していました。

ふたつ目は「二重否定」の罠です。Recraftの公式ドキュメントでは「ネガティブプロンプト内で二重否定を避けること。たとえばリンゴを除外したいなら“no apples”ではなく“apples”とだけ書くべきで、“no”を使うとモデルが混乱し逆効果になることがある」と説明されています(引用元:Recraft公式ドキュメント「Negative prompts」)。ネガティブプロンプト欄はすでに「除外」を意味する場所なので、そこにさらに否定語を重ねる必要はない、というのは盲点でした。

三つ目は、同じ問題が繰り返し出る場合の対処法です。海外の解説では「指が多いなどの持続的な問題には、その単語を複数回書くことで重みを増やせる」というテクニックが紹介されています(引用元:Picsart「How to Master Negative Prompts for AI Image Generation」)。「extra fingers, too many fingers, deformed fingers」のように似た表現を並べることで、重み付け構文なしでも除外の強度を上げられます。もうダメな指に何度も悩まされた身としては、かなり実用的な小技だと感じました。

まとめ

ネガティブプロンプトとは、AIに「何を描いてほしくないか」を伝える仕組みで、単に本文に否定形を書くのとはまったく別物だと、今回いろいろ試してわかりました。Stable Diffusion系には専用の入力欄があり重み付け構文も使える一方、Midjourneyは--noパラメータ、DALL-E/ChatGPTは専用欄すらなく最初からポジティブな描写で回避するしかない、とアプローチがまったく異なります。8〜12語程度に絞る、二重否定を避ける、しつこい問題は単語を繰り返す――このあたりを押さえておけば、非デザイナーでもかなり狙い通りの画像に近づけるはずです。

Related Posts