Field guide · Cross-host import

How to import a character card into RisuAI, step by step.

RisuAI accepts more card flavors than SillyTavern does — you can feed it a .charx container, a raw V3 JSON, or a V2/V3 PNG — but the right path depends on whether you’re on the hosted Realm client or a local install, and a few V3 fields land differently than they do on SillyTavern or Chub.

fol. i

TL;DR — Import in five steps

  1. Get the card file as .charx, V3 JSON, or V2/V3 PNG (Chub Download, or round-trip through our converter).
  2. Open RisuAI — either the hosted client at risuai.xyz or your local install.
  3. Left sidebar → Characters+ Add → pick the file (or drag into the character list).
  4. Open the character, verify avatar / first message / lorebook entries / regex prompts against the source.
  5. If something is missing, swap the source format: try .charx if the PNG dropped fields, or try V3 JSON if charx round-trip stripped author notes.
fol. ii

Why RisuAI accepts three formats (and which to use when)

RisuAI is the most format-omnivorous of the three big clients:

  • .charx (RisuAI’s own V3 container) — a ZIP with card.json plus optional assets/ media. Preferred when you have multiple icons or background art that should travel with the card, and required for the hosted Realm upload UI.
  • V3 JSON — bare spec: "chara_card_v3" JSON, no envelope. Smallest and easiest to inspect with jq; use when you only need the text fields and want full diff-ability.
  • V2/V3 PNG (Tavern tEXt chunk) — works as a fallback when the card came from Chub or SillyTavern unchanged. Risu reads both chara (V2) and ccv3 (V3) chunks and prefers ccv3 when both are present. PNG tEXt chunk explainer.

Pick by destination:

  • Realm (cloud): charx — Realm’s upload UI normalises everything into its container anyway, so going in charx-shaped is fastest.
  • Local install (browser-based PWA or desktop): any of the three. PNG is most portable if you also want the card to live on Chub / SillyTavern.
fol. iii

Step 1 — Get the card file in the format you want

If you already have the card on Chub, SillyTavern, or a local export, you have three quick paths:

  • From Chub.ai: click Download on the card page — you get a V2 PNG (sometimes also ccv3). Risu accepts this directly, but if you want to feed the Realm UI, round-trip it through our converter to produce a .charx.
  • From SillyTavern: export from Character Management → Export → PNG. Same options as Chub.
  • From the tavernai.cards converter: upload any format → pick V3 JSON, .charx, or V3 PNG from the export grouped picker. Lint runs before download, so spec-violation cards get flagged.

Keep the original file. If something goes sideways during import you want a known-good source to diff against.

fol. iv

Step 2 — Open RisuAI (Realm vs local)

RisuAI has two surfaces and they accept files slightly differently:

  • Hosted Realm (cloud, risuai.xyz): a managed PWA + community card share. The upload UI prefers .charx and will normalise other formats internally on import. Cards live in your Realm account.
  • Local install (downloadable client or self-host): broader file acceptance — .charx, V3 JSON, V2/V3 PNG all work via drag-and-drop. State lives on your machine.

If you’re unsure which build you’re on, look for the “Realm” tab in the left sidebar — present on cloud, absent on a fully-local install.

fol. v

Step 3 — Import the file

From the left sidebar:

  1. Click Characters (it’s usually the second tab).
  2. Click + Add at the top of the character list, then choose Import from file.
  3. Pick the file. Drag-and-drop straight into the character list also works on the local client.
  4. For multi-character bundles (rare): Risu treats each .charx as a single character. If you have a multi-character ZIP, extract first, import one at a time.

The card should appear in the list within a second or two. Click it to open the character sheet.

fol. vi

Step 4 — Verify what landed

Open the character. Quick field-level checklist before you start a chat:

  • Avatar — should be the card art, not a placeholder.
  • Description / personality / scenario — non-empty, matches the source.
  • First message — matches the source.
  • Alternate greetings — count matches.
  • Lorebook — open the character’s settings, find Lorebook (Risu’s name for V2/V3 character_book). Entries should be listed; entry count should match the source.
  • Regex / Author’s Note — Risu has its own regex script and prompt template UI; some V3 cards ship prompt-shaping fields that Risu maps into these, others not. Worth a look if the source had non-trivial system_prompt or post_history_instructions.

Anything empty when it shouldn’t be → Step 5.

fol. vii

Step 5 — The four common pitfalls

Cross-reference the tavernai.cards compatibility matrix for field-by-field expectations.

1. Realm rejects PNG / asks for charx

Realm’s upload form prefers .charx for the same reason GitHub prefers git push over email-the-zip: the container carries assets cleanly and the server doesn’t have to do format probing. If Realm silently fails on a PNG, round-trip the PNG through our converter → pick .charx from the export picker → upload that. Local install does not have this issue.

2. Lorebook entries are there but not firing

Risu’s lorebook UI is reached via the character’s settings, not a top-level menu. Two common causes if entries list but don’t trigger in chat:

  • Entry has enabled: false in the source. Risu respects the flag; toggle it on in the Lorebook UI.
  • Your message uses different casing than the key and the entry was authored case_sensitive: true. Edit the entry or use our lorebook debugger to replay a sample transcript and see exactly which key matched.

3. V3-only fields don’t appear (assets, nickname, group_only_greetings)

RisuAI’s V3 support is partial — broader than SillyTavern’s, less complete than the spec. Specifically:

  • assets (V3 media references): supported only when the source is .charx and the assets are bundled inside. Loose assets referenced by external URL are stripped.
  • nickname / creator_notes_multilingual: surfaced inconsistently across Risu builds; check via the raw card editor (gear icon → Edit JSON).
  • group_only_greetings: Risu has its own group-chat model that doesn’t mirror the V3 spec one-to-one; these greetings often need to be re-attached manually inside Risu’s group UI.

4. Author’s Note / system prompt collisions

Risu has its own Prompt Template + Author’s Note system that runs alongside the card’s system_prompt and post_history_instructions fields. If the card’s author baked instructions into system_prompt expecting them to be primary, but you’ve also got a Risu Author’s Note configured, both ship and they can fight. Diagnose by clearing the Author’s Note temporarily and checking whether the character’s voice steadies.

fol. viii

FAQ

Does RisuAI accept SillyTavern V2 PNG cards?

Yes. Risu reads the V2 (chara) chunk and ingests the card. If the PNG also ships a V3 (ccv3) chunk, Risu prefers the V3 payload.

What’s the difference between .charx and V3 JSON?

Same V3 schema, different container. JSON is just the card data; .charx is a ZIP that can also carry media assets (icons, backgrounds) and tooling metadata. If your card has no extra media, V3 JSON is smaller and easier to diff; if it does, .charx preserves the media.

Can I import a Risu card back into SillyTavern or Chub?

Yes — Risu can export to V2/V3 PNG via its own export UI, and those PNGs load on SillyTavern and Chub. Some V3-only fields (assets, nickname, group_only_greetings) will be lost or partially preserved depending on the destination — see the compatibility matrix.

Why does my Risu lorebook behave differently than on SillyTavern?

Lorebook implementations diverge across clients in subtle ways: scan depth, recursion handling, decorator interpretation. The card’s character_book is the same JSON, but the triggering algorithm isn’t universal. Our lorebook debugger replays the SillyTavern-documented algorithm so you can see what would have fired there; this post covers the five most common silent-fail causes.

fol. ix

Conclusion

RisuAI is the easiest of the three big clients to import into because it speaks more formats natively. The friction is format choice (charx if you can produce one, else V3 JSON, else PNG) and the small set of V3 fields that don’t travel cleanly. If you maintain a card on Chub + SillyTavern + Risu simultaneously, the cleanest workflow is to source-of-truth the card as V3 in our converter and re-export per destination — V2 PNG for Chub / ST, charx for Risu Realm.

RisuAI, SillyTavern and Chub.ai are trademarks of their respective owners; this page is independent and not affiliated.

We’re opening the workbench in waves. If you maintain a card library that has to live on more than one host, put your name on the scroll.