Character Cards Explained: Move Your AI Characters Between Apps
The AI character world has a portability standard almost nobody explains: the character card. It looks like an ordinary PNG — a portrait — but the character's entire definition rides inside the image file as embedded data. Share the picture, share the character. It's why a card culture exists at all: characters outlive the apps they were built in.
What's actually in the file
A card carries the fields a model needs to play the character: name, description, personality, first message, example dialogue, standing instructions that get re-read every turn, creator notes, and optionally a character book — keyword-triggered lore entries. The de-facto standard is TavernCard V2, from the SillyTavern lineage; V3 ("ccv3") extends it, and well-behaved apps read both. Underfiction imports V2 as PNG or bare JSON, reads V3 chunks, and exports V2 PNGs.
The fields that matter more than people think
- Example dialogue — the hardest-working field on the card. Voice is imitated from samples, not obeyed from descriptions.
- Post-history instructions — the card's standing rules, injected close to the scene where they actually win against context. Non-negotiables go here.
- The character book — lore with keyword triggers, so backstory loads only when a scene touches it. Underfiction honors the useful V2 subset (constants, selective keys, insertion order, token budgets) and shows entries with per-entry toggles.
- First message — decides the opening register. A greeting written as a scene starts a story; "hey there" starts a chat.
Moving a character in practice
From SillyTavern, Chub, or JanitorAI-adjacent tools: download the card PNG and import it where you're going. From platforms without export — Character.AI most prominently — there is no card to download; you rebuild, copying the greeting and visible description and transplanting the voice via example dialogue lifted from your actual chats. Once rebuilt, export a card so you never do it twice.
Things to know before you import
A card is untrusted input from the internet: descriptions can be bloated to thousands of tokens, and books can carry hundreds of entries. Good apps sanitize and cap on import — budgets on lore injection, limits on scanned entries — so a maximalist card can't quietly eat your context. And a card's quality ceiling is its author's: the fix for a bland imported character is the same example-dialogue surgery as for one you built yourself.
Start from a trope
New accounts start with 500 free credits after email confirmation.
Try UnderfictionFrequently asked questions
What is a TavernCard?
A PNG image with a character definition embedded in the file — name, personality, example dialogue, standing instructions, optionally keyword-triggered lore. It's the de-facto portability standard for AI characters; V2 is the common version, V3 extends it.
Which apps support character card import?
SillyTavern and most of its lineage, JanitorAI-adjacent tools, and Underfiction (V2 as PNG or JSON, V3 read on import, V2 export). Character.AI neither imports nor exports cards.
How do I get a character out of Character.AI?
There's no export — rebuild it: copy the greeting and visible description, then write example dialogue lifted from your real chats, which is what actually carries the voice. Export a card afterward so the work is portable forever.
What is the character book on a card?
Keyword-triggered lore: entries with trigger keys that get injected only when recent scene text matches them. Long backstories become affordable because unused lore costs nothing.