JanitorAI characters use the Tavern V2 card format, so converting one to SillyTavern is mostly a matter of getting the card out of JanitorAI as a file and confirming it is a proper V2 PNG. Because both apps speak V2, the persona transfers cleanly — the work is in the export, not the translation.
Step 1: Get the character out of JanitorAI
The goal is to obtain the character as a downloadable card file rather than just viewing it in the browser. Look for a download, export, or save-card option on the character. What you want is either a PNG card (the persona embedded in the image) or a JSON export. If you have the creator's original card, even better — that is already a portable file.
Step 2: Identify what you have
A JanitorAI export is typically a V2 PNG (base64 JSON inside the image's chara metadata chunk) or a V2-style JSON. Either is fine. You can confirm a PNG carries a card by its size — cards are usually larger than a plain image of the same dimensions because of the embedded text — but the reliable check is simply to run it through a converter, which will read the embedded data or report that none was found.
Step 3: Convert to a SillyTavern-ready card
If your file is already a V2 PNG, SillyTavern can often import it directly — drag it into the character panel. If you have JSON, or if the PNG's metadata is malformed, use a converter to produce a clean V2 PNG. Our JSON to TavernAI PNG tool rebuilds a proper card from JSON, and the Universal Converter accepts either input and emits a SillyTavern-compatible PNG. Everything runs locally in your browser.
Step 4: Import into SillyTavern
In SillyTavern, open the character management panel and import the PNG. The character should appear with its avatar, and opening it should reveal the greeting and personality. If the card imports but a field looks empty, the source likely stored that field under a nonstandard key; re-converting through a normalizer usually fixes it.
What to verify after importing
Check four things: the greeting (first message) displays, the personality/description is present, the example dialogue reads correctly, and the avatar looks right. These four cover the parts of a card that most affect how the character behaves. If the example dialogue contains stray tokens like <START>, that is normal — SillyTavern understands them.
Keeping a lorebook
If the JanitorAI character relied on world info, check whether that data came across. V2 cards can embed a character_book (lorebook), and a clean conversion preserves it. If your card had extensive world info that did not transfer, see our guide on character books and lorebooks to understand how that data is stored and re-attached.
Common export snags
The most frequent problem is a card that looks fine but imports blank. This almost always means you saved a re-encoded copy of the image — a screenshot, or a picture that passed through a service that stripped metadata — rather than the original card file. A screenshot of a character is just a picture; it contains no embedded data. Always work from the actual downloaded card, and if you only have a lossy copy, you will need to rebuild the card from a JSON backup instead.
The second common snag is character encoding. If a character's name or dialogue uses accented letters, emoji, or non-Latin scripts and it arrives garbled, the file was saved in the wrong encoding somewhere along the way. Cards should be UTF-8. Re-exporting or re-converting through a tool that writes clean UTF-8 fixes the mojibake. Both issues are covered in more depth in our guide on why cards fail to import.
Why do this at all?
Exporting to SillyTavern gives you local control, a deeper feature set, and a portable backup that no single platform can revoke. Once your character is a V2 PNG on your own disk, you can move it to Voxta, RisuAI, KoboldCpp, or a future app with another quick conversion. That portability is the whole reason to get your cards out as files in the first place.
