1. Paste Your Character JSON

2. Select Portrait Image

Upload the PNG image you want to use as the character card's face.

Why convert JSON to PNG?

While local LLMs can read raw JSON, the community has standardized on PNG for several technical reasons:

  • Asset Unification: The image and the data are bound together. You never lose the character's face.
  • Automatic Import: Frontends like SillyTavern are optimized to watch your characters folder for new PNGs and update your gallery in real-time.
  • V2 Extension Support: The PNG spec allows for additional chunks (like chara_card_v2) that can store "Lorebooks" and "World Info"—data that is often too bulky for a simple text definition.

Handling Formatting Quirks

One common error when manually creating cards is using Escaped Characters improperly. Our generator handles the UTF-8 to Base64 translation, ensuring that quotes, newlines, and special symbols in your character's persona don't cause a JSON syntax error upon import.

FAQ: JSON to PNG Conversion

Q: Can I use this to update an existing card?

A: Yes! Upload your old PNG card into Step 1, paste the new JSON into the text area, and click convert. The tool will replace the old metadata with your new JSON while keeping the image intact.

Q: Why is my output PNG larger than my original?

A: When we embed JSON, we add data to the file. For a character with a 10,000-word backstory, this can add ~20-50KB to the image size.