本文へスキップ

プロンプトの基本

Danbooruタグが英語でカンマ区切りである理由と、アンダースコア・括弧・タグ粒度の扱い方を実測値つきで解説する。

アニメ系Stable Diffusionモデルのプロンプトが 1girl, solo, long hair, blue eyes という形をしているのは、それが学習時に使われたキャプションの形そのものだからだ。

Danbooruタグとは何か

Danbooru は英語圏のイラスト投稿サイトで、画像1枚ごとに人間が英語タグを手で付与している。「金髪」なら blonde hair、「ツインテール」なら twintails だ。重要なのはこの語彙がサイト内ルールで統制されている点で、同義語は正規名に統合され(big breastslarge breasts)、曖昧なタグは非推奨として新規付与が禁止される。

タグには5つのカテゴリがある。

category種類
0General(一般)1girl, long hair, smile
1Artist(絵師)wlop, quasarcake
3Copyright(作品)genshin impact, blue archive
4Character(キャラ)hatsune miku, ganyu \(genshin impact\)
5Meta(メタ)highres, absurdres

Illustrious は Danbooru2023 を、NoobAI は Danbooru 全量(2024年10月頃まで)+ e621 を学習している。モデルにとって Danbooru タグは母語だ。

なぜ英語タグなのか

学習時、画像には「Danbooruタグを並べた文字列」がキャプションとして与えられる。Illustrious の技術レポート(arXiv:2409.19946)はそのスキーマを公開している。

person count ||| character names ||| rating ||| general tags ||| artist ||| score range ||| year modifier

NoobAI のモデルカードも同様だ。

<1girl/1boy/1other/...>, <character>, <series>, <artists>, <special tags>, <general tags>, <other tags>

どちらも先頭は人数タグだ。1girl, solo, ... が定型句なのは、学習キャプションの何百万件がその並びで始まっていたからだ。一方、キャプションの語彙は Danbooru / e621 の英語タグであり、日本語の「女の子1人」に対応する学習信号は事実上存在しない。日本語プロンプトが弱いのはそのためだ。

CLIP は入力を全文小文字化するので、1GIRL1girl は区別されない。

カンマ区切りの基本形

区切りは半角カンマ ,。Illustrious の論文は「, 規約で分割し、後に一定確率でスペースへ置換した」と述べており、区切りには頑健性がある。ただし全角カンマ は別文字なので使ってはいけない。

トークン(CLIPが文字列を分割する単位)の実測値:

入力トークン数備考
1girl, long hair, blue eyes8カンマは1個につき1トークン(id 267)を消費
1girl,long hair,blue eyes8上と完全に同一。カンマ直後の空白は無料
1girl2数字は1文字=1トークン

連続する空白や改行は単一スペースに畳まれる。改行やインデントはトークン予算を消費しないので、長いプロンプトは遠慮なく整形してよい。

CLIP が一度に扱えるのは 77 トークン(開始記号1 + 本文75 + 終了記号1)で、実効枠は75トークン。1つでも超えると2チャンク目が確保され、生成結果が跳ねる。「タグを1個足しただけで絵が変わった」の正体はこの境界の移動であることが多い。

アンダースコアとスペース

Danbooru 上でタグは long_hair hatsune_miku とアンダースコアで表示されるが、プロンプトに書くときはスペースに直す。NoobAI を開発した Laxhar Lab の公式ガイドブックはこう書く。

You need to remove the underscores from the tags obtained from Danbooru and e621, and add a backslash "" before and after the parentheses.

表記の好みではなく、CLIP から見て別物だからだ。実測値:

表記トークン数内訳
long_hair3long + _(id 318) + hair
long hair2long + hair
hatsune_miku4hat + sune + _ + miku
hatsune miku3hat + sune + miku

アンダースコアは独立した1トークンとして挿入され、埋め込みベクトル列が変わる。学習側がスペース区切りなら、アンダースコア付きは学習していない文字列を投げていることになる。NoobAI 公式マニュアルも「最良でも品質が落ち、最悪の場合トリガーワードが完全に無効化される」と警告する。

A1111 も ComfyUI もアンダースコアを自動変換しない点に注意。変換するのは a1111-sd-webui-tagcomplete のようなタグ補完拡張で、既定でスペースに置換して挿入する。Danbooru から直接コピペする場合や ComfyUI の素のテキスト欄に貼る場合は、自分で直す必要がある。

括弧のエスケープ

ganyu_(genshin impact) のように括弧を含むタグは \( \) にエスケープする。A1111 でも ComfyUI でも括弧は「強調」の制御文字だからだ。エスケープしないと括弧そのものは消え、ganyu genshin impact のうち括弧内だった genshin impact にだけ強調がかかった状態として解釈される(NoobAI 公式マニュアルの例示)。

誤: ganyu_(genshin impact)
正: ganyu \(genshin impact\), genshin impact

バックスラッシュは処理段階で除去されるのでトークンは消費しない。ただし ComfyUI では角括弧が特殊文字ではないため、\[ と書くとバックスラッシュ(id 59)が残って1トークン無駄になる。

キャラタグは作品名タグも併記するのが基本形とされる(ganyu \(genshin impact\), genshin impact)。接頭辞については Laxhar Lab の公式資料が食い違っている。NoobAI 公式マニュアルは character:artist: も「表面的に付けただけ」の誤りとする一方、同ラボの公式ガイドブックは「絵師タグには artist: 接頭辞を付ける必要がある」と書き、V-Pred 1.0 モデルカードのサンプルも artist:john_kafka である。一次資料の中で決着していない。なお Illustrious 系は素の絵師タグ(wlop など)を接頭辞なしで学習しているので、artist: を付ける作法を持ち込むべきではない。

タグの粒度 — 色と名詞を割らない

ありがちな失敗が、blue, dress(青、ドレス)のように形容詞と名詞を別タグに割ることだ。Danbooru では色+衣服は単一の複合タグとして存在し、その形で学習されている

複合タグpost_count(2026-08-21実測)
white shirt1,393,129
blue dress185,426

割るのは学習分布外であり、色が他の要素へ漏れる「色移り」の原因になる。CLIP は各トークンが自分より前のトークンを参照する構造なので、前に置いた blue の文脈が後続の名詞すべてに染み込むからだ。複合タグが実在するなら必ずそれを使う — コストゼロで最も確実な色移り対策である。

「1girl, solo」の意味

人数タグは post_count が最大級だ。

タグpost_count
1girl8,311,993
solo6,982,452
2girls1,420,122

1girl は「女性キャラが1人」、solo は「画面内の人物が1人だけ」。重なるが同義ではなく、1girl, 1boy と併記される画像も多い。両方書くのは「女性1人だけが写っている」という最も学習例の多い分布に寄せる指定になる。

逆に solo2girls の同時指定は不可。この2つが同時に付いた画像は Danbooru 全体で 504件、2girls の 0.035% しかない。事実上排他であり、両方書くと学習データに存在しない条件を要求して構図が崩れる。

書いても何も起きないタグ

それらしい英語を書いても、学習信号がなければ何も起きない。代表的な3パターン:

パターン実態
エイリアス専用blond hairpost_count 0。正規名は blonde hair(2,146,505件)。キャプションに書かれるのは正規名だけ
非推奨タグlooking away(34,942件)、open eyes(0件)新規付与が禁止されており post_count は減る一方
誰も使っていないdetailed face, beautiful eyes, perfect anatomypost_count 0、あるいはタグレコード自体が存在しない

blond(e が付かない)と blonde のように、ネイティブでないと気づきにくい罠が多い。

ただし逆方向の注意もある。masterpiece best quality worst quality は Danbooru 上ではゼロ信号だが有効に機能する(実測では masterpiece は post_count 0 かつ非推奨、best quality は post_count 0、worst quality はタグレコード自体が存在しない)。これらは Illustrious や NoobAI がスコア・人気度の分位から合成して学習キャプションに注入した人工タグだからだ。「Danbooru になく、かつモデル側も注入していない → 効かない」が正しい判定条件になる。

最小の基本形

まとめると、標準的なプロンプトはこうなる。

1girl, solo, hatsune miku, vocaloid,
long hair, twintails, aqua hair, aqua eyes,
white shirt, blue necktie, detached sleeves,
looking at viewer, smile, upper body,
simple background,
masterpiece, best quality

人数 → キャラと作品 → 外見 → 服装 → 表情と構図 → 背景 → 品質。すべて半角カンマ区切り・アンダースコアなし・複合タグ優先。

末尾の masterpiece, best quality は Illustrious / NoobAI の語彙であり、Pony Diffusion V6 XL には通用しない(Pony は score_9, score_8_up, ... 系で、公式が「masterpiece のような品質修飾は不要」と明言している)。品質タグの互換性はモデル系統ごとに切れている。

ただし「推論時にタグ順が結果に影響するか」について、Onoma・Laxhar いずれも公式な定量的言明を出していない。NoobAI のマニュアルは論理的な順序を推奨しつつ「順序を守らなくても影響が明らかでないことが多く、改善することさえある」とも書く。学習時の順序に合わせるのは無難な出発点だが、絶対的なルールとして扱う根拠は一次情報にはない。