Skip to content

Character Matching#

Character matching recognises anime, game and manga character names inside your prompt and rewrites them into the exact tag format the model you picked expects. It is off by default and is turned on in /settings.


The two things people get wrong#

Matching REPLACES the name in your prompt

A match is not an addition. The name you typed is swapped out in place for the proper tags. Typing miku with blue hair on an Illustrious model does not send miku with blue hair plus something extra -- it sends hatsune_miku \(vocaloid\) with blue hair. Your original wording is kept for display, but the model never sees it.

No LoRA is loaded automatically

Matching a character does not load a character LoRA. It only rewrites tags and tells the AI enhancer which characters it found. LoRAs are always chosen by you, either with /imagine lora: or in your saved settings slots. If a character comes out looking wrong, matching did its job and you still need the LoRA.


Turning it on#

Matching is controlled by one setting: AI features, in /settingsFeaturesAI. Click it to cycle through four states.

Icon State Character matching AI enhancement
🚫 Disabled off off
🎭 Match Only on off
Enhance Only off on
🌟 Both Enabled on on

Disabled is the default. Out of the box, nothing is matched.

Note

The enhance: option on /imagine and /turbo does not turn matching on. It only controls the LLM rewrite. Matching is controlled solely by the AI features setting, so Match Only or Both Enabled is required either way.

A second setting, Match Sensitivity, sets how close a name has to be before it counts. Default 0.85, range 0.0 to 1.0. Higher is stricter and produces fewer matches; lower it if names you type are not being picked up.


What the bot is matching against#

Data Size What it is
Character database 5,077 entries Chinese character name paired with the English Danbooru tag, e.g. 2b (nier automata), 25-ji miku
Popularity map 40,931 entries Lowercase English character name to its Danbooru post count, used to break ties
Franchise aliases 106 spellings Abbreviations that resolve to a canonical series name

The whole set is loaded before the bot accepts its first job, so matching never waits on a download.

The most popular entries in the popularity map give a sense of the scale: hatsune miku 106,634 posts, hakurei reimu 79,395, kirisame marisa 71,304, remilia scarlet 52,785, flandre scarlet 52,598, izayoi sakuya 46,326, artoria pendragon (fate) 38,099, admiral (kancolle) 37,876.


The detection cascade#

Detection runs in strict priority order and returns at most 5 characters per prompt. Once a stretch of your prompt has been claimed by a match, later stages cannot claim it again, so matches never overlap.

# Stage What it catches Confidence
1 Full English name the complete tag, franchise included -- ganyu (genshin impact) highest, accepted with no further checks
2 Base name the name without the franchise suffix -- ganyu needs disambiguation
3 Chinese name the Chinese-language name anywhere in your text high, accepted with no further checks
4 First or last name either end of a multi-word name -- pendragon needs disambiguation
5 Popular single word a bare one-word name -- miku strictest bar, see below

Anything that is not a full-name or Chinese-name hit is then scored by a local similarity model against your prompt. The score is adjusted by popularity, so an obscure character takes up to a 30% penalty and a character with 10,000 or more posts takes none. Survivors must clear your Match Sensitivity and land within 0.1 of the best candidate's score.

If none of the five stages find anything at all, a pure similarity search runs over the whole database as a last resort, returning at most 3 characters.


A bare one-word name is the riskiest kind of match, so it has its own bar. Before a single word is treated as a character, the leading candidate must:

  • have at least 5,000 Danbooru posts, and
  • be at least twice as popular as the runner-up.

This is why miku resolves to Hatsune Miku while a genuinely ambiguous one-word name is skipped entirely rather than guessed at.

Two more guards keep ordinary prompts from tripping over themselves:

  • Skip words. Common English words are never indexed as standalone names: the, and, for, with, from, von, van, der, del, los, las, test, game, girl, boy, man, woman, lady, lord, king, queen, prince, princess, dark, light, black, white, red, blue, green, gold, silver, iron, steel, fire, ice, water, wind, earth, star, moon, sun, night, day, shadow, angel, demon, devil, dragon, wolf, cat, dog, fox, rabbit, bear, lion, tiger, hero, knight, witch, mage, warrior, hunter, rider, master, little, big, great, old, young, new, first, last, original.
  • Minimum length. A name is only indexed if it is 3 characters or longer, or it contains a digit. That exception is what keeps 2b, 9s and a2 working.

Romanisation tolerance#

Long Japanese vowels are normalised before comparison: ou becomes o, oo becomes o, and uu becomes u.

You type Also matches
gojo gojou
tanjiro tanjirou

Punctuation in franchise names is normalised too, so rem (re:zero) also resolves when written rem (re zero).


Franchise hints and disambiguation#

When two characters share a name, the bot first looks for a franchise hint elsewhere in your prompt. If it finds one, that wins. If it does not, the more popular character wins.

/imagine prompt: mikasa from aot
picks Mikasa Ackerman. A bare mikasa falls back to whichever Mikasa has more posts.

Abbreviations you can type as a hint, all of which resolve to a canonical series name:

sao, sword art online, alfheim, alo, ba, blue archive, bluearchive, genshin, genshin impact, gi, fgo, fate, fate grand order, fate stay night, fsn, hsr, honkai star rail, honkai, hi3, ak, arknights, al, azur lane, azurlane, kancolle, kantai collection, kantai, pokemon, pkmn, uma, uma musume, umamusume, nier, nier automata, automata, gfl, girls frontline, fe, fire emblem, lol, league, league of legends, touhou, 2hu, naruto, shippuden, one piece, op, dragon ball, dbz, db, overwatch, ow, ow2, priconne, princess connect, gbf, granblue, nikke, goddess of victory, hololive, holo, xenoblade, xc, marvel, mcu, bleach, mha, bnha, my hero academia, demon slayer, kimetsu, kny, aot, attack on titan, snk, jjk, jujutsu kaisen, rezero, re zero, re:zero, spy x family, sxf, csm, chainsaw man, bocchi, btr, frieren, sousou no frieren, toh, owl house, the owl house, danganronpa, dr, persona, p5, p4, p3, ff, final fantasy, ffxiv, ff14, ff7, vocaloid, vtuber, nijisanji.

The longest matching alias wins, so attack on titan beats aot when you type the full name.


What the replacement looks like#

The format depends on the model you picked. The matched text is replaced where it stands, longest match first, case-insensitively, once each.

Style Result for Hatsune Miku Used by
Escaped Danbooru hatsune_miku \(vocaloid\) Illustrious, NoobAI, Pony -- and the default for anything unspecified
Natural Hatsune Miku Flux 2, Flux Dev, Qwen Image, Lumina2, Z-Image, Neta-Lumina, ERNIE Image, Ideogram 4
Plain Danbooru hatsune_miku_(vocaloid) models that opt in
Booru tags hatsune miku, vocaloid models that opt in

If the match came from the similarity search and there is no literal text to swap, the tags are added to the front of your prompt instead.


Matching plus enhancement#

When AI enhancement is also on (Both Enabled), the detected characters are handed to the enhancer as context. It is told to keep the Danbooru character \(franchise\) formatting and to describe the character's canonical appearance.

If two or more characters are detected, the enhancer additionally receives model-specific multi-character advice -- BREAK separators, count tags like 2girls, and the score_ chain on Pony models.


What you see afterwards#

Where What appears
Details panel, matching only matched characters: listing what was recognised
Details panel, matching plus enhancement the rewritten text under enhanced:

If nothing matched, neither line appears and your prompt was sent exactly as typed.


  • AI Enhance -- the LLM rewrite that runs after matching
  • Prompting -- writing prompts each model family understands
  • LoRAs -- what you actually need for a character the base model does not know
Categories: AI Enhance | Prompting | LoRAs | Settings