SillyTavern Character Cards (2026): Import, Export, Formats, Where They Are Stored and Why a Card Will Not Load
A SillyTavern character card is a single file that contains a whole character, and in its usual form it is a PNG image with the character’s text hidden inside the image file. You can look at it like any picture. SillyTavern, and other apps that use the same format, can read a description, a personality, a first message and more out of it.
That one idea explains most of what goes right and wrong with cards. A card can be shared like a picture. It can also be broken like a picture: any service that re-saves the image throws the character away and keeps only the portrait.
We read SillyTavern’s documentation on characters, and then the code that imports, exports and stores them, on the release branch, which was version 1.19.0 on 6 October 2026. This guide is about the card as a file and how SillyTavern handles it. For how to write a good character, see how to write a character card.
New to SillyTavern? Start with the SillyTavern guide.
The Short Answer
- A card is a PNG with text data inside. JSON is the same data with no picture.
- Import: Characters panel, then Import Character, or drag the file onto the window.
- Import from a website: External Import, then paste the page address.
- Accepted files:
.png,.json,.yaml,.yml,.charx,.byaf. Not WebP. Not JPG. - If a PNG imports as nothing, the data was removed when the image was re-saved somewhere.
- A lorebook inside a card is not active until you import it. Tags inside a card are not added until you import them.
- Export gives PNG or JSON. It does not include your chats.
- Files are in
data/default-user/characters.
What Is Inside a Card
A PNG file is built from blocks. Some hold the picture. Others can hold text, and image viewers ignore them. The card format puts the character into one of those text blocks.
SillyTavern’s card code shows exactly how. The character is written as JSON, encoded, and stored in a text block named chara. A second block named ccv3 holds the same character in the newer V3 format. On reading, the code says: “Supports both V2 (chara) and V3 (ccv3). V3 (ccv3) takes precedence.”
Three practical facts follow.
The picture is not the character. You can replace the portrait and keep the character, and you can lose the character and keep the portrait.
The data is not protected. It is encoded so that it fits in the file, and that is all. Anybody with the file can read all of it.
If a card holds both blocks and they disagree, V3 wins. This matters only if you use an outside tool that edits one block. If your edit seems to have no effect in SillyTavern, the tool changed chara and left an old ccv3 in the file.
V1, V2 and V3
These are versions of a community specification that many apps share.
| Version | What it is | In SillyTavern |
|---|---|---|
| V1 | The original flat list of fields: name, description, personality, scenario, first message, example messages | Read and converted on import |
| V2 | Adds creator notes, a system prompt, post-history instructions, alternate greetings, tags, creator, version, an embedded lorebook and an extensions area | The format SillyTavern stores, and the format of its JSON export |
| V3 | A later revision with further fields | Read when present; a V3 block is written into every saved PNG |
You do not choose a version. SillyTavern reads what it is given and writes both.
Importing a Card
From a file
Open the Characters panel from the top bar. Press Import Character and choose one or more files. Dragging a file onto the SillyTavern window does the same.
The import code accepts six file types:
| File type | What it is |
|---|---|
.png | A standard card with a picture |
.json | The card’s data alone; V2, V3, V1 and an old Pygmalion format are recognised |
.yaml, .yml | A simple text format with a name, a context and a greeting |
.charx | A zipped card format that can carry extra images |
.byaf | Backyard AI’s archive format |
A card imported from JSON or YAML has no portrait, so it gets the default one. You can set a picture afterwards by clicking the avatar.
If a character with the same name already exists, SillyTavern does not overwrite it. The new file gets a number added to its name, and you have two characters. To put a new card over an existing character and keep its chats, use Replace / Update in the More… menu on the character panel.
From a website
Press External Import in the Characters panel and paste the address of the character’s page.
This does not work with every site. The server code has a fixed list of sites it knows how to read:
- Chub (chub.ai and characterhub.org), for characters and for lorebooks
- JanitorAI
- Pygmalion (pygmalion.chat)
- AI Character Cards (aicharactercards.com)
- RisuRealm (realm.risuai.net)
- Perchance (perchance.org)
For any other address, SillyTavern will only download a PNG file directly, and only from hosts on an allow list in config.yaml. The setting is whitelistImportDomains, and the shipped list is localhost, cdn.discordapp.com, files.catbox.moe and raw.githubusercontent.com. An address on any other host is refused, and the SillyTavern console window prints why: the domain “must be added to the config key whitelistImportDomains”.
Two cautions. First, each of those site readers depends on the site keeping its pages and its interface the same. When a site changes, the import breaks until SillyTavern is updated. Version 1.17.0, for example, lists a fix for “AICC direct link import parsing”. If External Import fails for a site on the list, update SillyTavern, or download the card from the site and import the file.
Second, an import reads what the site gives to the public. It is not a way to get a definition that a creator has chosen to hide, and we do not publish methods for that. For how Chub’s own pages work, see how to use Chub AI.
Why a Card Will Not Load
These are the causes, most common first.
1. The image was re-saved and the data is gone. This is the big one. Many services process every picture you upload: they resize it, compress it or convert it. The result looks the same and contains no character. A card that has been posted to a social site, sent through some chat apps, opened and saved in an image editor, or saved from a web page preview has often lost its data. So has every screenshot of a card.
In that case the server cannot read any character from the file (“Failed to read character data” in the console) and no character is created. The fix is to get the original file again: use the site’s own download button, or ask for the card as a .json file, which cannot be damaged in this way.
2. The file is not a PNG. SillyTavern shows “Unsupported file type” for anything outside the six types above. A card saved as .webp or .jpg will not import, whatever it looks like. Converting it to PNG does not help. The conversion makes a new picture with no data.
3. The address is not on the allow list. External Import fails, and the reason is printed in the SillyTavern console window.
4. A reply is being generated. The message is “Cannot import characters while generating. Stop the request and try again.”
5. The JSON is not a character. A lorebook file, a preset file and a chat file are all JSON too. Import each in its own place. A lorebook goes into the World Info panel.
6. The card imported, and the character seems empty or wrong. Open Advanced Definitions. Much of a modern card lives there: the scenario, the example dialogue, the system prompt, the Character’s Note. Then check for an embedded lorebook (below). A card whose description says little may keep most of its content in a lorebook that is not yet active.
The Fields, and What Each One Costs
Open a character to see its fields. The main panel shows the description and the first message. The Advanced Definitions button opens the rest.
The documentation separates fields into two kinds, and the difference matters on every reply.
Permanent fields “will always be sent to the AI with every generation request”:
- Character name
- Description
- Personality
- Scenario
Fields that are not permanent:
- First message: “only sent once at the start of the chat”. It becomes the first line of the chat history.
- Example messages: “only kept until chat history fills up the context”, unless you set them to always stay.
Fields the AI never sees: creator’s notes, creator name, character version and the embedded tags. The documentation says they are “not used for prompt building”.
| Field | Sent to the AI? | What it is for |
|---|---|---|
| Name | Always | The only required field |
| Description | Always | Who the character is; “all important facts should be included here” |
| Personality summary | Always | A brief summary of traits |
| Scenario | Always | The situation of the conversation |
| First message | At the start of the chat | Opens the chat and sets style and length |
| Alternate greetings | One is chosen | Other openings, shown as swipes on the first message |
| Example dialogue | While there is room | Shows how the character speaks |
| Main prompt, post-history instructions | Only if you allow it | Replace your own system prompt for this character |
| Character’s Note | Always, at a set depth | A short reminder kept near the end of the prompt |
| Creator’s notes, creator, version, tags | Never | Information for people |
The token counter
The character panel shows a token count. The documentation explains why it sometimes turns red: “When we see your character has over half of the model-defined context length of tokens in its definitions, we highlight it”.
The documentation’s own example shows the cost: on a model with a 2,048 token context, “a 1000-token character definition cuts the AI’s ‘memory’ in half”. On the large contexts of current cloud models the same card is a small part of the prompt. On a small local model it is not.
A large card “won’t break anything”. It leaves less room for the chat. If a downloaded card shows a red counter on your setup, the usual fix is to move world details out of the description and into a lorebook, where they are sent only when needed. See SillyTavern lorebooks.
The first message matters most
The documentation is direct about this: “The model is more likely to pick up the style and length constraints from the first message than anything else”. If a card answers in a style you dislike, edit its first message before anything else.
Prompt overrides are off unless you allow them
A card can carry its own Main Prompt and Post-History Instructions. They are used only if the user settings “Prefer Char. Prompt” and “Prefer Char. Instructions” are enabled. If they are, a downloaded card can replace your system prompt for that character.
This is worth knowing for two reasons. A card may behave very differently from your other characters since it brought its own instructions. And a card may not behave as its creator intended if those settings are off. Look at the two fields in Advanced Definitions when a card acts unlike the rest.
Example dialogue has a format
Each example block must start with the <START> tag. Lines use {{char}}: and {{user}}: to mark the speaker. The tag itself is not sent; SillyTavern replaces it with the separator your prompt format uses. Blocks are “pushed out of context block by block” as the chat grows.
What Comes Inside a Card, Waiting
Two parts of a card are carried in the file and are not switched on by the import.
The embedded lorebook
A V2 card can contain a whole lorebook. When you first open such a character, SillyTavern tells you: “This character has an embedded World/Lorebook.” Depending on a user setting, this is a dialog that asks whether to import it, or a short notice.
Until you import it, that lorebook does nothing. To import it later, open More… on the character panel and choose Import Card Lore. It becomes a normal lorebook file, linked to the character.
When you export a character, only its primary lorebook goes into the card. The documentation states it: “only the primary World Info file gets exported with the character”. Additional lorebooks linked to the character stay behind.
The embedded tags
A card can list tags. The documentation says these “are not imported by default when importing the character”. To add them to your own tag list, choose Import Tags from the More… menu.
So a freshly imported card can look untagged and know nothing of its world, and both are one menu away.
Exporting and Sharing
The Export button on the character panel offers two formats.
| Format | Contains | Use it for |
|---|---|---|
| PNG | Picture and data, in both V2 and V3 blocks | Sharing and backup |
| JSON | The data only, in V2 format | Reading, editing in a text editor, sending through services that re-save images |
The export code removes two things before it hands you the file: your favourite mark and the name of your current chat. Everything else in the definition goes out as you wrote it.
What an export leaves out
- Your chats. They are separate files and are never inside a card.
- Additional lorebooks. Only the primary one is embedded.
- Data Bank attachments. Files attached to the character for vector search are not part of the card.
- Your tags and folders, beyond the list in the card’s embedded tags field.
- Extra images such as expression sprites and gallery pictures, which live in their own folders.
If you are sharing a character, check that everything it needs is in the description, the advanced fields or the primary lorebook.
What an export includes that you may forget
Everything you typed into the definition. That includes the Character’s Note, the main prompt override and the creator’s notes. If you wrote something private in any of those fields, it is in the file, and anybody who receives the file can read it. Read through Advanced Definitions before you publish a card.
Sharing without breaking the card
Share the PNG as a file, not as an image. Upload it to a card site, attach it as a document, or put it in a zip. If the service shows your PNG as a picture preview, it has probably processed it. When in doubt, send the JSON too.
Where Cards Are Stored
SillyTavern/data/default-user/characters/<name>.png
SillyTavern/data/default-user/chats/<name>/
SillyTavern/data/default-user/worlds/<lorebook>.json
Each character is one PNG in characters. It is a complete card: you can copy the file to another SillyTavern install and it works. Chats for that character are in a subfolder of chats with the character’s name. Lorebooks are in worlds.
If you use several SillyTavern user accounts, replace default-user with the account’s folder.
A backup of the characters folder alone does not save your chats. Copy the whole data/default-user folder to keep everything.
One more consequence of this layout: a character is tied to its chats by its file name. Rename a character through SillyTavern’s own Rename option in the More… menu, which moves the chats with it. If you rename the PNG by hand in the file manager, the chats stay under the old name.
Managing Cards
The More… menu on the character panel, with the buttons beside it, covers most needs:
- Duplicate makes a copy to experiment on.
- Replace / Update puts a new card file or URL over this character and keeps its chats. Use it when a creator publishes a new version.
- Link to Source stores where the card came from.
- Rename changes the name and moves the chats.
- Convert to Persona turns the character into a persona for you to play.
- Import Card Lore and Import Tags, as above.
- Character Settings Overrides changes settings for this character without editing the card’s text.
In the character list you can sort by name, date, recent use, number of chats and token size, and filter by favourites and tags. Tags as Folders shows tags as a folder tree, which is the practical way to organise a large collection. The documentation of the project notes that the list slows down past about 1,000 characters.
Since version 1.17.0 there are also slash commands for scripts: /char-create, /char-update, /char-get, /char-delete and /char-duplicate, and /tag-import.
Making Your Own Card
You do not need a card generator or an outside editor. In the Characters panel, press Create New Character, fill in the fields and save. SillyTavern writes the PNG. Add a portrait by clicking the avatar.
The name is the only required field. A sensible minimum is a name, a description and a first message.
The picture. Any PNG works. SillyTavern keeps your image and makes thumbnails for the list. In the shipped configuration an avatar thumbnail is 96 by 144 pixels, a ratio of 2 to 3. A portrait image in that ratio is cropped least.
One card, several characters. A card is one prompt. You can describe two or more people in one description, and the model will play them all, with one voice in the reply. For characters who answer separately and in turn, make one card each and use a group chat.
A narrator or game master card. Nothing in the format requires a card to be a person. A card named Narrator with a description of the world, the tone and the rules of play is the usual way to run an adventure in SillyTavern. Put the world’s facts in a lorebook, and keep the card for how the narrator should behave.
For the writing itself, see how to write a character card and roleplay character ideas.
Before You Import a Stranger’s Card
A card is text, not a program. It cannot run code on your computer by being imported. What it can do is put instructions into your prompt.
Three habits are enough:
- Read the Advanced Definitions of a new card, above all the main prompt and post-history instructions.
- Read the embedded lorebook before you import it. Entries can be set to always be active.
- Get cards from the original source when you can. A copy may have been edited.
Extensions are a different matter, since they are code. See SillyTavern extensions.
Checklist
- Import with Import Character or by dragging the file in.
- Use the site’s download button, never a saved preview or a screenshot.
- Accepted: PNG, JSON, YAML, CharX, BYAF.
- After importing, check Advanced Definitions, Import Card Lore and Import Tags.
- Watch the token counter on small-context models.
- Export PNG to share, JSON to edit or to send safely.
- Read every field before you publish a card.
- Back up
data/default-user, not only the characters folder. - Rename characters inside SillyTavern.
Frequently Asked Questions
What is a character card in SillyTavern?
A character card is one file that holds a whole character: the name, description, personality, scenario, first message, example dialogue and creator notes. The usual form is a PNG image. The text is stored inside the image file as hidden data, so the picture and the character travel together.
How do I import a character card into SillyTavern?
Open the Characters panel and press Import Character, then choose the file. You can also drag the file onto the SillyTavern window. To import from a website, press External Import and paste the address of the character’s page. SillyTavern accepts PNG, JSON, YAML, CharX and BYAF files.
Why is my character card not importing into SillyTavern?
The most common cause is that the image no longer contains the character data. Chat apps, social sites and image editors often re-save pictures and remove the hidden data, and a screenshot never had it. Other causes are a file type SillyTavern does not accept, such as WebP or JPG, and a website that is not on the list of allowed import sources.
Where are SillyTavern character cards stored?
Each character is a PNG file in the characters folder of your user data. On a default install that is data/default-user/characters inside the SillyTavern folder. Chats are stored separately, in the chats folder, with one subfolder per character.
What is the difference between character card V2 and V3?
They are two versions of the shared card specification. V2 is the widely supported one. V3 adds further fields. SillyTavern writes both into every PNG it saves, and when it reads a card that has both, it uses the V3 data. Its JSON export uses the V2 format.
Does exporting a SillyTavern character include the chats?
No. An exported card contains the character’s definition and its primary lorebook. It does not contain your chats, additional lorebooks linked to the character, or files attached to the character in the Data Bank. Back those up from their own folders.
Should I export a SillyTavern character as PNG or JSON?
Export as PNG to share or back up a character, since the picture and the text stay in one file. Export as JSON when you want to read or edit the text in a text editor, or when you must send it through a service that re-saves images. A JSON export has no picture.
What size should a SillyTavern character card image be?
SillyTavern keeps the image you give it and makes small thumbnails for the character list. The default thumbnail is 96 by 144 pixels, a ratio of 2 to 3, so a portrait image in that ratio is cropped least. The file must be a PNG to hold character data.
The PNG text blocks and their precedence, the accepted file types, the JSON formats recognised, the list of sites for External Import, the default allow list, the fields removed on export, the JSON export format, the storage folders, the thumbnail size and the error messages were read from SillyTavern’s source code and default configuration on the release branch (version 1.19.0) on 6 October 2026. The descriptions of fields, permanent tokens, the token counter, prompt overrides, example dialogue, embedded tags and the character panel are from SillyTavern’s documentation. Dated changes are from the project’s release notes. We did not test each import site for this guide. The remarks on why images lose their data, on sharing, on privacy before publishing and on narrator cards are our reading.
SillyTavern is an open-source project. Arcanum is not affiliated with SillyTavern or any site or service named here. Product names and trademarks are the property of their respective owners.