こんにちは、スタジオ真榊です。こちらの記事は、画像生成の基本であるプロンプトの記述方法について、必要な知識を網羅的に解説する特集記事です。プロンプトから画像が生成される仕組みやネガティブプロンプトの使い方といった基礎から、LLMに依頼してプロンプトを作ってもらったり、ランダムにプロンプトを組み合わせたりする応用編まで、分かりやすく詳細に解説しています。
入門記事「AIイラストが理解る!」を読んだら、まずこちらの記事から読んでいただくとスムーズに知識が頭に入ると思います。具体的なタグの一覧については、こちらの「プロンプト超辞典」をご参照ください。
はじめに プロンプトはなぜ「効く」のか
画像生成を始めたばかりのときは「このタグはよく効くけど、このタグはなんで効かないんだろう」と感じる場面が多いのではないでしょうか。例えば、「looking at viewer」はだいたい効くのに「looking away」としてもときどきこっちを見てしまうとか、「hatsune miku」は出るのにこのキャラは出ないとか。ユーザーがプロンプト指示を工夫すれば改善できることもありますが、これは基本的に使用しているモデルが学習したデータセット(画像とテキストのペア)の中身が強く影響しています。
例えば学習データの構成上、カメラ目線の女性キャラクターイラストの方が目線を外しているイラストよりも圧倒的に多かった場合、そのモデルは何も指示されなくても女の子をカメラ目線で生成しがちです。

▲視線に関するタグなし
「1girl」とタグ付けされた教師画像の多くに「looking at viewer」というタグがついてくるため、「ははあ、女の子というやつは超こっちを見てくるものなんだな」とAIが思い込んでいるようなイメージです。AIは被写体がどういう存在か、生き物なのかすら理解しておらず、潜在空間という謎空間上のベクトルによって「概念」だけを学習している宇宙人のような存在なのです。
画像生成モデルは画像だけを学習しているのではなく、どんなときでも「画像とその説明文(テキスト)の組み合わせ」によって学習しています。何億枚ものデータセットの中には、例えば腕組みをしている人間の写真やイラストもたくさんあったでしょう。それらに「crossed arms」というタグ付けがしてあれば、そのデータセットで学んだモデルは「crossed arms」という概念を生成できるようになりますし、このタグを使えば1girlや1boyだけでなく、データセットにないクマやアリの腕組み姿も生成できるようになります。

もし、そのタグが「crossed arms」じゃなくて、勝手に「udegumi」とかで学習されていたら困りませんか?「crossing arms」で学習されていた場合も、「あれ?なかなかcrossed armsが効かないな?」となってしまいますよね。つまり、ある概念に何のタグをつけるかは、ユーザー間で広く統一したルールがないと、正しく概念を呼び出すことができず混乱してしまうわけです。
そこで、画像生成プロンプトの「共通語」として非常によく使われているのが「danbooru語」です。
danbooru語とは?
danbooru語(danbooruタグ)は、英語圏のイラスト転載サイト「danbooru」で使われている詳細なイラスト用タグです。Pixivでも各イラストにキャラクター名やシチュエーションなどのタグが10個までつけられますが、danbooruではそれよりも遥かに細かなタグ付けが有志のコミュニティによってなされています。

danbooruにはPixivやXに日々投稿されている大量のイラストが転載され、作者情報を含めた詳細なタグと転載元へのリンクが付けられてデータベースとして管理されています。どんな概念に何のタグを使うかもコミュニティのルールで厳格に決められているため、画像とテキストの正確なペアを必要とする画像生成データセットの供給源としてうってつけだったわけです。
その結果、NovelAIや、現在流通しているローカル生成用のモデルの大半が、このdanbooruタグの羅列によってコントロールできるようになっています。普通の書き下し英語や日本語でコントロールできる「自然言語プロンプト」が使えるモデルも流通してきてはいますが、画像生成の基本はdanbooru語と言っても過言ではないでしょう。danbooru語には「特殊記法」が使えるという自然言語にない利点もあるのですが、それについては後述します。
<danbooru語の他に"e621語"も>
ちなみに、さまざまなHシチュエーションの再現が得意なpony diffusion系モデルは、ケモノ作品に特化した海外の画像投稿サイト「e621」のタグ形式(いわばe621語)で行われています。基本的にはdanbooru語で通じるのですが、たまに思ったような効果が出ないタグがあります。詳しくは個別の入門記事を参照ください。
<【ちょっと脱線】danbooruは違法サイトか?>
danbooruは海外ユーザーが日本のイラストを見つけ、イラストレーターとつながる導線になっているそうですが、日本のユーザーから見れば普通に無断転載の著作権侵害サイトです。無断転載を禁じているPixivの規約違反でもあり、多くの当事者から批判が寄せられています。
一方で、掲載されているのはウェブ上に無償公開されたイラストのみで、引用元のURLも具備しているため、こうしたデータベース化は現地の法律における「フェアユース」に当たるーというのがdanbooru側の主張のようです。
フェアユースというのは、一定の条件を満たした公正な使い方であれば、著作権者から許可を得なくても著作物を利用できるルールのこと。例えば、Xには投稿にgifスタンプを張り付けられる機能がありますが、中には著作物であるアニメや映画のワンシーンも大量に含まれています。あれも米国ではフェアユースとされています。(▼Xよりスクリーンショット引用)

日本の著作権法や法感覚は外国に通用しないことが多く、実務的にも追及のしようがないことが多くある点は覚えておきましょう。また、海外ユーザーがフェアユースを根拠にバンバン著作権侵害しているからといって、自分も同じようにしていると、日本では普通に提訴・刑事告訴されるということもありますので、重々注意しておくことが必要です。日本人が日本で日本の著作物の権利を侵害するのと、外国人が自国で現地法に従って日本の著作物を無断転載するのでは、法的扱いもリスクも違うというところは押さえておきたいところです。
プロンプト記法の基本
プロンプトの基本が「danbooru」というサイトで使われているタグであるということが分かったところで、その具体的記述法について見ていきましょう。
<①ポジティブプロンプトとネガティブプロンプト>
プロンプトには「ポジティブプロンプト(PP)」と「ネガティブプロンプト(NP)」があり、基本的にはPPに入力したものが生成されます。逆に、NPに入れたテキストはできるだけ生成結果に反映されないような力が働きます。この二つの組み合わせによって生成画像をコントロールするのがプロンプトの基本です。

▲プロンプト(PP)と除外したい要素(NP)欄の例
上図のように、「1girl」や「looking at viewer」といったdanbooruタグをカンマ「,」で区切って、どんどん箇条書きで並べていけばOK。その際の語順が重要で、基本的には前に書いたものほど強くモデルに干渉します。そのモデルを学習させた方法によっても適切な語順は変わってくるので、モデル配布者の説明をよく読んでおきましょう。
ちなみに、Niji journeyのように自然言語で学習しているモデルであれば、danbooru語だけでなく、下図のように長い一連の文章でもちゃんと認識してくれます。mid journeyやniji journeyなどはこのタイプで、日本語で入力しても内部的に自動翻訳されて通じる場合が多いです。

<②ポジティブプロンプトの記述法>
ポジティブプロンプトの基本は「大事なものは前に、抜け落ちてもよいものは後ろに」書くことです。そのモデルを学習させた方法によっても適切な語順は変わってくるので、モデル配布者の説明をよく読んでおきましょう。
例えば、人気モデル「AnimagineXL3.1」のCivitai配布サイトでは、最初に1girl/1boyを入れ、「キャラ名、作品名、その他」の順でタグを並べるよう推奨されています。

このように、モデルによって適切な語順は多少変わりますが、以下のような順で書いていれば大きな間違いはありません。それぞれの具体的タグはプロンプト超辞典を参考に。
・1girl/1boy:まずはこれから。複数人の描写をするなら2boysや4girlsと書くが、いまだに安定しない。
・キャラ名/作品名:既存キャラを呼び出す場合はここに入れる。スペルの基本はdanbooru語。キャラ名だけだと髪型や服装などの容姿が、作品名も入れると画風やシチュエーションまで公式に似ることが多いので、出したい画像によって調整しよう。
・メイン要素:どんな構図・フォーカス・カメラワークか、被写体はどんな容姿・服装・表情で、どこで何をしているか、背景は何か等。抜け落ちてはまずいものほど前に入れる。
・画風要素:上記のメイン要素を、どんな画風で描いてほしいかを指定する。anime colored、flat color、monochromeなど。
・サブ要素:メイン要素を補強したり、装飾したりするもの。例えば、キスシーンなら「eye contact」「hug」「arms around neck」などを入れて細かな描写を盛り付けていく。抜け落ちても成立するものがこの位置。
・クォリティタグ:イラストの品質に関するもの(例:masterpiece)。モデル配布者が推奨している文字列を使うのが基本だが、ユーザー全員似た画風(マスピ顔)になってしまうことがあるため、自分で探求するのも大切。 最初に配置するよう求めるモデルもある。
<③非常によく使うポジティブプロンプト>
こちらは非常によく使う基本タグ群です。これらはすぐに思い出せるようにしておきましょう。
構図:upper body/cowboy shot/full body/portrait/close-up
カメラ:straight-on/from side/from above/from below/foreshortening
視線:looking at viewer/looking away/looking up/looking down/looking to the side/looking at another/looking forward
背景:outdoor/indoor/white background+simple background
画風:monochrome/greyscale/anime colored/flat color/realistic
ポーズ:standing/sitting/lying/holding〇〇/hand on ○○
表情:open eyes/closed eyes/open mouth/closed mouth/smile/sad/angry/embarrassed...
<④ネガティブプロンプトの記述法>
プロンプト欄のすぐ下にあるネガティブプロンプト欄には、生成されてほしくない要素を入力します。クォリティタグと同じように、品質アップのために「low quality,worst quality」などと入れるのがまずは定番。モデル配布者がオススメのクォリティタグ・ネガティブプロンプトを書いていることが多いので、必ず確認しましょう。

▲AnimagineXL3.1の推奨ネガティブタグとクォリティタグ
また、各タグに余計な要素がくっついて学習されている場合に、それをそぎ落とすのにも使います。例えば、スーツ(suit)というタグにはシャツやネクタイが強く印象付けられているので、それらがセットで出てくることが多いですが、ネクタイなしのスーツにする必要がある場合、necktieをNPに入れると出しやすくなります。
また、髪の毛をもう少し短くしてほしいときにlong hairをNPに入れるような調整用の使い方もできます。カラフルなイラストにしたいときに「monochrome」をNPに入れたり、目を綺麗に描写してほしいときに、ぐるぐる目「@_@」をNPに入れるようなイメージです。低劣なものが出るときは、AIがそうしてほしいと誤認していると考え、必然的に高品質なものが出るようなプロンプトに調整してあげましょう。
<⑤スペルミスするとどうなる?>
ちなみに、プロンプトは常に完璧なdanbooru語でないと全く通じないわけではなく、DeepL翻訳でざっくり英文化して放り込んでも結構理解してくれます。ミスで二重カンマ(,,)にしてしまうこともよくありますが、そこまで重大な結果にはなりません。
よくないのは、タグ間に「,」や半角スペースを入れ忘れてしまった場合。生成結果を見て、「何かおかしいな」と思ったら、UI右側の生成結果から該当部分のタグを確認するようにしましょう。

▲「こちらに手を振る」が効いていないケース。間の半角スペースが抜けていた
スペルが間違っていても意外と通じますが、「やんわり効く」ような現象が起こります。下の図は「初音ミケ(1girl,hatsune mike)」さん。

ピンク髪や金の目になったのは、「mike」に近い名前のピンク髪のキャラクターを学習している影響と思われます。(アイドルマスターの城ヶ崎美嘉など?)
この現象を利用して、作品名をわざとスペルミスすることで、キャラ容姿は再現しつつ、画風が公式に酷似しすぎないよう調整するテクニックもあります。
注意したいのは、モデルが学習していない要素は生成できないということ。たとえば「初音ミク」は教師データに豊富に含まれているので生成できますが、モデルが学習していない最新アニメのキャラクターは再現することができません。どうしても生成したい場合は最新のデータセットで学習したモデルを探すか、LoRAなどの「追加学習」をする必要があります(こちらの記事参照)
<⑥タグ内は半角スペース?アンダーバー?>
タグ内の半角スペースは、半角アンダーバーで記述しても効果はさほど変わりません(例 black hairをblack_hairとしても問題ない)。ただ、モデルによっては反応が悪くなったり、効かなくなったりすることもあるようなので、なぜか特定のプロンプトの効きが悪いときは半角スペースを使用したほうが無難かもしれません。
ちなみに、danbooruタグの中には「close-up」など、半角ハイフンで間をつなぐものもあります。こちらも、アンダーバーやスペースにしてもたいてい同じような効果が出ますが、うまく働かないモデルがあった場合はハイフンで運用することをオススメします。
よくあるつまづきポイント
PPとNPの組み合わせでプロンプトができていることがわかりましたが、実際にやってみると思ったようにいかないことも多いでしょう。この項目では、初心者がつまづきがちなポイントを5つ紹介します。
<つまづき①「AIが指示を誤解する」>
プロンプトの書き方によっては、AIが「誤解」してしまうことがあります。
こちらの画像では「white hair ribbon」というタグが「white hair + ribbon」と誤解されたために、髪が一部白髪化したり、胸のタイが蝶結びの白リボンに化けたりしています。学習データセットにタグ付けをした際、胸の白リボンも髪の白リボンも同じく「white ribbon」としていたために、このような現象が起こります。

特にプロンプト忠実度を示す「CFGスケール」の値が高めだと、プロンプトの抜けが減る代わりに、このような誤解が起こりやすくなります。
そういうときは、誤解されがちな「〇〇 hair ribbon」というタグを避け、「red neckerchief」「blue sailor collar」「white bow」というタグで生成すれば、このようにそれぞれを正しい色・形状にすることができます。CFGスケールを少し下げてみるのも有効です。

<つまづき②「複数人のプロンプトが混ざる」>
複数キャラクターを出したときに、服装や表情のプロンプト指示が両方に効いてしまって困ることがあります。たとえばこちらの2人を並べて生成しようとしても…

髪型や服装のタグをただ並べると、このようにまぜこぜの状態になってしまいます。

これは画像生成の大きな課題の一つで、これまでさまざまな手法で解決が試みられてきました。記事執筆時点で優れているのは、NovelAIv4の「マルチキャラクタープロンプト」や「アクションタグ」機能。キャラクターごとに特徴を描き分けられる(適用するタグを分割する)だけでなく、位置関係や行動の主体と客体まで指定できるようになっています。

StableDiffusionでこれに近いことが行える方法としては、「Latent Couple」や「Forge couple」、「regional prompter」といった拡張機能があります。キャンバスを区切って、「このプロンプトはここだけに効かせる」と指示できる機能です。
または、さきほどの2人の容姿をそれぞれLoRAとして学習してしまうという手法もあります。キャラクター名をタグ化して「zaraki_mina」や「shinomiya_ayaka」だけでこの容姿が出せるようになれば、「grey sweater」や「serafuku」といった容姿タグが混じらずに済みます。

▲こういうデータセットを用意して、キャラクターとして学習する手法もアリ
ただ、正直最も簡単なのは、このように画像編集ソフト上で別々に生成した画像を合成してしまうことです。白背景で1人ずつ生成すれば容姿は混ざりませんから、抱き合ったり手をつないだりと身体的な絡みがなければこちらの方が簡単だったりします。

背景をあとから合成することもできますし、Controlnetやインペイントといった機能で背景部分だけをAIで生成することもできます。その代わり、自然に整えるのにはそこそこの画像編集技術や加筆力が必要にはなります。
<つまづき③「男女が出ない」>
そんなわけで複数人の生成は難しいのですが、男女は特にうまく出ませんよね。「1girl,1boy」と指示して生成しても、このように男の子だけ見切れてしまうことがよくあります。

これはデータセットの偏りが原因。これまで公開されてきた日本のアニメ調イラストは、女の子が主体に描かれたものが多く、男性が映り込む場合も見切れていることが多かった(特にHイラストの"竿役"などが典型的)ために、そうした傾向が学習されてしまっているのです。ともかく「1girl」がプロンプト内に入っていたら、1girlを主体に描こう!という強い力が働きます。
ある意味市場の需要と噛み合った動作をしているわけですが、改善する方法としては、「focus」系や関係性のタグを使うこと。「couple focus」をPPに、「solo」「solo focus」をNPに入れたり、「hetero(男女)」「husband and wife」などと指示することで、男女均等に描かれていることを強調できます。男性を主体に描きたい場合は「male focus」を入れるとよいです。
顔が詳細に描かれない男性を示すタグは「faceless male」、顔が見切れている状況を示すタグは「head out of frame」です。これをNPに入れることでも、顔を描いてくれやすくなります。

PP:1girl,1boy,cowboy shot,couple
NP:faceless male,head out of frame, solo,solo focus








