Labs · Expression pack workshop

Your sprites, named right,
zipped the way ST wants.

Drop a folder’s worth of expression art: each image gets matched to the 28 slots SillyTavern’s classifier actually uses, checked for transparent backgrounds, tried on in a chat-bubble fitting room — and packed into a zip that imports on the first attempt. Your art only; nothing is generated, nothing uploads.

Drop a whole set of sprites (multi-select)

.png / .webp · select all at once · up to 56 files

Validation, renaming and zipping all run in your browser — images are never uploaded or stored.

Drop a set of images — validation and renaming appear here.

Where the rules come from

Every check on this page traces to the SillyTavern documentation (verified 2026-08): the 28 labels are the GoEmotions set behind the default local classifier; multiple images per emotion take a dot or dash suffix (joy-1.png, joy.expressive.png); sprite-pack zips must hold images at the top level with no subfolder; and while the docs accept any image format (animated GIF included), the canonical shape is a transparent-background PNG — that’s what sits on the chat background without a white box, so this page recommends PNG / WebP and warns on JPG / GIF. The alias table (happy→joy, blushing→embarrassment, 开心→joy…) is this tool’s own convenience layer — it only renames files, never reinterprets them, and every guess is shown so you can override it.

What it can’t do (the honest part)

It doesn’t draw: no AI generation, no style transfer, no upscaling — images leave exactly as they came in, just renamed and zipped. It can’t tell whether a picture actually expresses the emotion its filename claims; the fitting room exists so your eyes make that call. Auto-assignment is filename guessing, not image recognition — a file named final_v2.png lands unassigned on purpose. And the fitting-room lines are canned samples: in real chats, which sprite shows is decided by ST’s classifier reading the reply text, which this page doesn’t simulate.

FAQ

Where does the list of 28 expression names come from?

From SillyTavern itself: the built-in local classifier is a GoEmotions model (27 emotions plus neutral), and the official docs state sprites must be named after those labels — admiration, amusement, anger, annoyance, approval, caring, confusion, curiosity, desire, disappointment, disapproval, disgust, embarrassment, excitement, fear, gratitude, grief, joy, love, nervousness, neutral, optimism, pride, realization, relief, remorse, sadness, surprise. Names like happy.png or blush.png silently miss their slot — that's exactly the mistake this tool catches and fixes.

Do I need all 28 images?

No. ST simply leaves unmatched slots empty, and the coverage meter here says so instead of nagging. The one you really want is neutral — it's the sprite shown when no emotion fires. If you have several images for one emotion, the tool names them joy.png, joy-1.png… following the official multi-image suffix rule.

Why does my zip import but show no sprites in ST?

Almost always one of two things: the images sit inside a subfolder in the zip (ST's sprite-pack import only reads the top level — this tool always packs flat), or the filenames don't match the 28 labels exactly (lowercase, exact spelling). Both are validated here before the download button produces anything.

Does this generate expression art for me?

No, and that's deliberate. This is a packaging workshop for art you already have — your own drawings, commissioned sets, game rips you hold rights to. It validates, renames, previews and zips; it never invents pixels, and nothing is uploaded anywhere.

What counts as a transparency problem?

Sprites are pasted over the chat background, so the background of the image itself must be alpha-transparent. The tool decodes each image and checks: JPG files can't carry transparency at all (flagged), PNGs with zero transparent pixels get flagged as opaque, and images whose corners aren't clear get a gentler warning — then you can see the actual effect in the fitting room.

Related tools

← All free tools