Character card design: structure, fields, and what “good” means
Character card design here means designing the card’s content and information architecture—how you split voice, scenario, and lore so a model (and a human rereading the file in six months) can follow it. It is not the same as “cover art design,” though cover images matter for discovery.
This complements How to write a more usable character card and the field-by-field series.
What you are designing
A Silly Tavern character card is mostly JSON inside a PNG (V2/V3). Good character card design answers:
- Who speaks — stable voice constraints (
personality, examples). - Where the scene starts —
first_mes,scenario, optionalalternate_greetings. - What facts can surface later —
character_book/ lorebook entries instead of dumping everything into one paragraph. - What the client must not ignore —
system/ extensions only when you understand your ST build (see part 5 of the fields series).
Design principles that survive real chats
- Short beats long in the main fields: put detail into lorebook triggers, not a 4k-word
scenarionobody reads at once. - Examples teach format:
mes_exampleis how you show “stage directions vs dialogue” if your RP style needs it. - One source of truth: if a rule appears in three places, it will eventually contradict itself.
- Revision order: lock voice first, then opening, then world facts—see the writing-better article for a practical sequence.
Common design mistakes
- Novelizing the
personalityfield so the model roleplays about the character instead of as them. - Lorebook sprawl: hundreds of untested triggers; start with a small set and add when chats prove you need them.
- Ignoring V2/V3: editors and ST versions differ; V2/V3 compatibility matters when sharing cards.
See also
- AI character card design — LLM-assisted drafting, then tightening for import
- macOS Silly Tavern card edit workflow — where files live and how to edit PNGs locally
- Template & PNG workflow
- ST card editor on macOS
Browse, preview, and edit embedded JSON in PNGs locally on Mac with Sillycard.