Skip to content

About

SillyTavern extension: one line (or nothing) → a complete, linked roleplay: card, openings, lorebook, preset, regex, Quick Replies, plus ComfyUI portraits and expression sprites. Hands-free AI with undo, provenance and a full creator's workbench.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Latest commit

 

History

38 Commits

Folders and files

Repository files navigation

Creative Studio: a quill in an inkwell whose ink rises into a lighthouse, masked travellers, a castle, a dragon and a neon harbour

You bring one line, or nothing at all. It writes the whole roleplay.

A SillyTavern extension that generates a complete, linked roleplay: the premise, the character card, openings, a lorebook that actually fires, a prompt preset, formatting regex, Quick Reply buttons and image prompts. Then it critiques its own work and fixes it. You steer; the AI writes.


SillyTavern 1.19+ No build step Tests License AGPL-3.0

Install  ·  How it works  ·  Tour  ·  Which AI?  ·  FAQ


✦ The pitch

Writing a good SillyTavern roleplay is a lot of work: a card with a voice, a first message that hands you a scene, alternate openings, a lorebook with keys that trigger, a preset that keeps the model in line, regex to tidy the output, a few Quick Reply buttons… Most people have one good idea and none of the patience.

Creative Studio does all of it. Type a sentence, or press Surprise me, and watch it build:

Timelapse: pressing Surprise me with an empty idea box; ten steps tick from premise to self-critique while a real model writes the roleplay
A real run with an empty idea box: DeepSeek V3.1 through OpenRouter came up with The Glitch That Gnaws (a scavenger, a paranoid engineer, a city run by a failing AI) in 2 min 20 s. Sped up; nothing staged. The screenshots below are the same project.

Every piece lands as a real, editable artifact, already linked together: the lorebook to the character, the preset to the story, the Quick Replies to the card. When you like it, one click sends everything into SillyTavern. The studio shows the plan first and backs up anything it would overwrite.

✦ Install in thirty seconds

You need SillyTavern 1.19.0 or newer. No server plugin, no build step, no npm install.

  1. In SillyTavern, open Extensions (the stacked-blocks icon in the top bar).

  2. Click Install extension and paste this URL:

    https://github.com/rustyorb/SillyTavern-CreativeStudio
    
  3. Pick Install just for me or for all users. SillyTavern downloads it and reloads.

  4. Open it with the feather in SillyTavern's top bar (next to the Extensions icon), press Ctrl + Shift + S, or type /studio.

That's it. It uses the AI connection you already have set up (see Which AI?).

Updating: Extensions → Manage extensions → Creative Studio → Update. Removing: the same menu → Delete. Your projects stay in your SillyTavern user files.

Manual install (no internet on the SillyTavern machine, or you like git)
cd SillyTavern/data/default-user/extensions
git clone https://github.com/rustyorb/SillyTavern-CreativeStudio

Use public/scripts/extensions/third-party/ instead to install it for every user. Then reload SillyTavern.

✦ How it works

The pipeline: your idea, premise, character, card, openings, lorebook, preset, regex, Quick Replies, images, polish

Ten steps, each one a structured AI call whose output becomes a real SillyTavern artifact:

Step What the AI writes Where it ends up
Premise Title, logline, setting, tone, your role, the conflict already in motion Project brief (every later step reads it)
Character A concept with a voice, a contradiction, a motive, a secret and pressure New character
Card Description, personality, scenario, first message, example dialogue, tags Character Card V3 fields
Openings Alternate greetings, each a different situation alternate_greetings (swipes on the first message)
Lorebook Places, people, factions and rules, with keys that fire in real chat Linked World Info book
Preset Prompt Manager prompts that fit this story, with placement Chat Completion preset
Regex Formatting helpers (hide thinking, strip OOC…), each with test cases Character-scoped regex; the tests become fixtures
Quick Replies Story tools as STscript buttons, checked by SillyTavern's own parser Quick Reply set linked to the character
Images Avatar, full-body and scene prompts Ready for ST's Image Generation, or any image tool
Polish A strict self-critique; concrete fixes get applied Revised fields + notes you can read (on a character you wrote yourself, the fixes wait for your OK)
Portrait (with ComfyUI) Paints the avatar from the image prompts The character's avatar, plus a gallery

It is built to finish. If the model skips part of an answer, the step asks again for exactly what is missing. If a provider hangs, the call times out and the step retries once. (On SillyTavern's main connection, where a request can't be cancelled, it stops and waits for you to press Retry instead.) If something still fails, only the steps that depend on it wait, and Resume picks up where it stopped. Every change a run makes is one Ctrl+Z away, and Discard removes everything it made.

Hands-free or Review: you choose

Hands-free (default) Review
AI output Lands in your project immediately Waits as a proposal in the inspector
You Read, play, undo anything with Ctrl+Z Accept, revise or reject each change, with a diff
Good for "Just make me something good" Polishing a card you care about

Toggle it any time with the Hands-free / Review pill in the top bar. Either way, every AI change is logged with the model, the prompt and the time it was made.

Steer it when you feel like it

Every text field (card fields and lorebook entries) has the same AI box. Say what you want in plain words, or don't, and pick what happens to the text that's already there:

Seraphina's description with the AI box open: a direction typed in (her fear of deep water, and why), and the buttons Add to it, Rewrite, 3 takes, More detail, Tighter and Punchier
Button What happens to what you wrote
Add to it Stays word for word. The AI writes only the new part, in the field's own format (W++ brackets, dialogue, prose), as a new paragraph, a new line or the end of the last sentence
Rewrite Replaced by a new version that follows your direction. Ctrl+Z brings the old one back
3 takes Three different versions side by side; keep the one you like
More detail · Tighter · Punchier One click, no typing

An empty field gets Write it instead, written from everything else on the card.

Your instructions, your rating

Everything the studio tells the model is on one page, AI instructions: click the content pill in the top bar (or the plug, or Ctrl K → AI instructions). Read any instruction, rewrite it, put it back with Reset. Your versions are kept in SillyTavern's extension settings and used in every project.

The AI instructions page: three content levels (Keep it SFW, Mature themes selected, Adult explicit allowed), a search box, and the instruction groups with the Mature themes rule open for editing

Each project has a content level, and it goes into every writing task and every picture:

Keep it SFW Mature themes (default) Adult, explicit allowed
Writing Romance stays affectionate; no nudity or graphic gore Romance, desire, violence, dark themes, strong language; sex stays implied As explicit as the story calls for
Pictures Safe tags, nudity kept out Only nudity kept out Nothing kept out

Mature and adult tell the model it is fiction by and for adults, with no disclaimers and no toning it down, and the critique judges craft, not morality. One line is fixed and always added: "Anyone in romantic or sexual content is an adult."

The model still has its own rules. If a cloud model refuses something your project allows, try another one (the plug lets you pick a separate model for writing), or a local model.

✦ What one line made

The idea we typed:

A lighthouse keeper on a storm-bound northern island who secretly helps smugglers, and I am the new coast guard inspector who just arrived.

About five minutes later, with DeepSeek V3.1 via OpenRouter:

  • Premise: The Keeper's Signal. A coast guard inspector has to uncover the truth about a reclusive keeper who is secretly the linchpin of a smuggling operation on a remote, storm-lashed island.
  • Character: Cillian Valour. Late fifties, "carved by the sea and solitude", loyal to the islanders, morally flexible for a cause he thinks is just. Plus three alternate openings.
  • Lorebook: ten entries, including Serpent's Maw (the hidden mooring), Captain Rostov, the Sea-Serpent, the light signals, and the VHF radio "that poses a constant eavesdropping risk".
  • Preset: a main prompt plus Keeper Directive and Tone & Continuity Reminder prompts.
  • Regex: Hide Model Thinking and Strip User OOC Notes, both with passing tests.
  • Quick Replies: Continue, Summarize Scene, Log Suspected Drop, Roll Storm Severity.
  • Images: avatar, full-body and background prompts.
  • Polish: a self-critique that caught the first message giving away the smugglers' captain too early.

A taste of the first message:

The storm hammered against the thick glass of the lantern room, each gust making the ancient iron frame groan. (…) "So. Are you going to help me keep the light burning, Inspector, or are you just going to watch?"

✦ Pictures, too

One generated character: an avatar, a full-body picture and a workshop scene, and below them eight transparent expression sprites (neutral, joy, love, surprise, embarrassment, fear, sadness, anger) that all share one face
Real output: Tinker from The Glitch That Gnaws, painted on a laptop RTX 5070 Ti through ComfyUI. About 30 s for a portrait, then about 16 s per sprite.

Connect a ComfyUI (plug icon → Images → ComfyUI → your address → Connect) and the studio paints as well as writes. You never touch a workflow: the studio builds them in code.

  • Portraits, full body and scenes. The AI writes the prompts in the style your checkpoint wants: score tags for Pony, booru tags for Illustrious, plain sentences for realistic SDXL. Fast DMD2/Lightning checkpoints get fast sampling, and a second 1.5× pass sharpens portraits.
  • Expression sprites that keep one face. 8 core moods or all 28 of SillyTavern's. Every sprite starts from the same portrait, so hair, face and outfit stay put. Backgrounds are cut out when ComfyUI has ComfyUI Essentials (InSPyReNet keeps long hair intact).
  • Or from the picture your character already has. Bring a character in and its sprites are made from its avatar. With a FLUX Kontext model on your ComfyUI, each mood is an edit of that very picture, so an anime avatar stays anime and nothing but the face changes. Without one, only the face is repainted (Impact Pack's FaceDetailer), or else the whole picture, gently. With Kontext, the portrait, full-body and scene pictures are made from the avatar too, in its art style.
  • Straight into SillyTavern. Install in SillyTavern fills Character Expressions, and CHARX exports carry the sprites as V3 emotion assets.
  • Your own workflow, if you like. Export it from ComfyUI with Export (API), then choose Use my own…. The prompts, size, seed and checkpoint are filled in for you. Workflows with SillyTavern's %prompt% placeholders work too.
  • Your content level. Pictures follow the project's content level: SFW keeps them safe, mature keeps only nudity out, adult keeps nothing out.
SillyTavern's default character Seraphina: her original anime avatar, animated so that only her face changes through her moods, beside twelve expression sprites made from it (joy, amusement, pride, relief, embarrassment, surprise, fear, nervousness, sadness, grief, anger, disgust) in exactly the same art style, and below them a full-body picture and an empty forest scene, both made from the same avatar
Real output: ST's own Seraphina brought in with one click, then all 28 moods and new pictures made from her avatar by FLUX Kontext (Nunchaku FP4) through the studio, about 40 s each. On the left her avatar runs through the moods: watch everything but her face stay put.

It goes through SillyTavern's own ComfyUI connection, so there's no CORS setup: any ComfyUI your SillyTavern can reach works. Prefer SillyTavern's Image Generation extension? Pick it instead. Sprites need ComfyUI.

✦ Already have characters?

SillyTavern's character panel with the Creative Studio feather circled, and an arrow to the studio showing the same character on its stage, with its lorebook and its sprites already in the project
SillyTavern's own Seraphina: one click brought her in with her lorebook “Eldoria” and all 28 of her sprites, in under three seconds.

Your SillyTavern library is the other way in. Click the feather in SillyTavern's character panel (next to Export), or Start from one of my characters… on the studio's Project page.

  • Everything comes along. The card and its avatar, the lorebook the character is linked to, and its expression sprites (from its Character Expressions folder, even one you have overridden).
  • Improve it. Critique & fix reviews the card and repairs what is weak. Every field has Rewrite and 3 takes.
  • Or add what it lacks. Build the rest for me says up front what it will add (openings, a lorebook, a preset, regex, Quick Replies, image prompts, a portrait) and never overwrites what is already there.
  • SillyTavern changes only when you say so. Apply to SillyTavern shows a field-by-field diff first and keeps a backup of what it replaces. Click the feather again later and you land back in the same project.

Characters the studio sends to SillyTavern arrive already linked to their lorebook, so nothing needs wiring up by hand.

✦ The tour

It is a full workbench, not just a generator. Everything the AI makes stays editable by hand, and every workshop has its own AI buttons for when you only want one piece.

Project view with the Generate a complete roleplay panel and a finished run Generate: one idea (or none), optional dials for genre, tone, rating and POV, pick the steps, watch it build. Character editor with the concept panel and card fields Characters: V3 card editing with an AI box on every field (Add to it, Rewrite, three takes, Write it when empty), Build the rest for me and Critique & fix.
Greetings tab with a first message and three alternate openings Openings: generate alternate greetings that each start somewhere new. Lorebook activation preview showing which entries fire and why Lore: type a test chat and see which entries fire, what beat them, and exactly what reaches the model.
Chat Completion preset in the Prompt Manager editor Presets: a full Prompt Manager editor, an assembled-prompt preview, a live dry run of ST's real prompt, and generation from goals (or from the project, if you leave the goals empty). Regex Lab with a character-scoped script Regex Lab: one-click recipes, a stage-by-stage preview in a sandboxed worker, and lint for the classic traps.
Quick Reply set editor with generated buttons Quick Replies: story-tool recipes, SillyTavern's own parser checks every script, and side effects are listed before anything runs. Compatibility table comparing V3 spec validity with SillyTavern support Compatibility: "valid in the V3 spec" is not "used by SillyTavern". Every card shows the difference.
Images tab: the character's transparent joy sprite standing inside the painted workshop scene, above the prompts The stage: the painted scene becomes the set and the character stands in it. Click a mood to swap the face. Below it, the AI writes the prompts and Paint all fills the gallery. Eight expression sprites on a transparency checkerboard with Paint missing, New face and Install in SillyTavern Expression sprites: one face, eight (or 28) moods, transparent, one click into SillyTavern's Character Expressions.
AI for creation panel with the provider list and OpenRouter's model list AI for creation: add OpenRouter, OpenAI, Claude, Gemini, DeepSeek, Mistral, Groq, xAI, LM Studio or Ollama. Keys live in SillyTavern's vault. Command palette searching for lore Ctrl+K: jump to any workshop, character, lorebook or preset, or run an action.
Everything each workshop can do
Area What you can do
Project Generate a complete roleplay; premise and notes; health (every validator in one list); relationships & dependencies; Publish bundle (ST-native files + manifest + README + re-importable project); Apply to SillyTavern (reviewed plan, snapshot and per-item backups)
Characters Just build it for me from a premise; distinct concepts to pick from; Build the rest for me (fills only what is empty, never duplicates); an AI box on every field (Add to it keeps what you wrote, Rewrite, three takes, Write it when empty); greetings with different openings; Critique & fix; full V3 editing (nickname, group-only greetings, multilingual notes, source, dates, assets, extensions); embedded lorebook ⇄ project lorebook; spec validation vs the ST 1.19 support matrix; import PNG/CHARX/JSON (V1/V2/V3) from a button, the tree's + menu, the project menu, Ctrl+K or by dropping the file; a view for every picture (who uses it, remove it everywhere; unused ones marked and cleared in one go); export ST-style PNG, spec-V3 PNG, CHARX and JSON; bring in from SillyTavern with its lorebook and sprites (feather in ST's character panel), apply back with a diff and a backup, or create in SillyTavern already linked to its lorebook, with fidelity read-back
Lore Build the world (linked to the character automatically); the same AI box on entry content (it knows the book's other entries and the characters it serves); every 1.19 entry control; lint; activation preview that explains why each entry fires, what beat it, and what reaches the model; extraction from text or the current chat; contradiction and gap audit; key suggestions
Prompts & Presets Generate a preset from goals or from the project; Chat Completion Prompt Manager editor (order, enable, roles, relative/in-chat depth, triggers, forbid overrides, divider markers used by large community presets); samplers and formatting; assembled-prompt preview with token counts from ST's tokenizer; live dry run; AI critique; versions and compare; Text Completion instruct/context/system-prompt/reasoning templates rendered by SillyTavern's own functions; connection profiles shown as selections, separate from preset contents
Regex Lab One-click recipes; global, preset-scoped and character-scoped scripts in engine order; stage preview (saved text, display, prompt, edit, World Info, reasoning) with fixtures, in a worker with a timeout; lint; order-sensitivity detection; hands-free mode adds only scripts that pass their own tests
Quick Replies & STscript Story-tool recipes; every v2 option; source editor + readable outline; syntax check with SillyTavern's real parser; argument checks from the live command registry; effects and dependency panel; command reference; reviewed test run; live install through Quick Reply's own importer
Playtest Sandbox runs built from project artifacts through any connection profile; AI-played user turns; Invent 3 test scenarios; the exact prompt of each reply; capture of the live ST chat with its active configuration; ratings, notes and side-by-side comparison. Every run records model, profile, preset hash, card hash, activated lore and regex
Inspector Pending proposals, provenance history, snapshots, live-SillyTavern backups with restore

✦ Which AI does it use?

Whatever SillyTavern is already connected to. There is no separate key and no separate setup. If SillyTavern can chat, the studio can create.

  • Best results: a Chat Completion connection (OpenRouter, OpenAI, Claude, DeepSeek, Google, Mistral, or a local server through Custom (OpenAI-compatible)). The studio sends a JSON schema, which most providers honour, and it parses and repairs the answer either way.
  • Text Completion works too. The studio asks for JSON by instruction and repairs what comes back.
  • Want a different model for writing than for playing? Click the plug in the top bar (or + Add a provider… in any Creation model menu). Pick OpenRouter, OpenAI, Claude, Google AI Studio, DeepSeek, Mistral, Groq, xAI, LM Studio, Ollama or any OpenAI-compatible server. Paste a key, or reuse one already stored in SillyTavern, then load the provider's real model list, pick one and save. A Test button checks the round trip. Your chat connection stays untouched.
  • Local models: they work. Bigger instruct models with solid JSON do much better, and on CPU a full run takes a while.

🔒 Your keys stay in SillyTavern's vault. A key you add here goes straight into SillyTavern's own secret store (the same place as every other key, and never into extension settings or the browser). The studio saves a normal Connection Manager profile that refers to the key by id, and SillyTavern's active key for your chat is left as it was. The studio never reads a key back, and exports strip secrets.

Verified end to end: DeepSeek V3.1 via OpenRouter (full roleplay in about five minutes), and a local qwen3 8B through Ollama (slow on CPU, but complete).

✦ Safe by design

  • Projects first. The studio works on its own copies. Nothing is written to SillyTavern until you press Apply, and you see the plan first.
  • Backups. Everything Apply would overwrite in SillyTavern is backed up and can be restored from the inspector.
  • Undo everything. Ctrl+Z / Ctrl+Y across the whole project, plus snapshots before every generation.
  • Scripts never run on their own. Quick Replies are added, not executed. Test runs are explicit and list their side effects first. Regex previews run in a sandboxed worker with a timeout.
  • Provenance. Every AI change records the model, the prompt and when it was made.
  • Two tabs, one project? Saves detect the conflict instead of silently overwriting.

✦ FAQ

I have zero ideas. Does it still work?
That's the point. Leave the idea box empty and press Surprise me. The optional dials (genre, tone, rating, point of view, card type) nudge it without asking you to write anything.
It keeps toning my story down. Can I change what it tells the AI?
Yes. Set the project's content level with the pill in the top bar (Mature themes is the default, Adult allows explicit content), and open AI instructions to read or rewrite anything the studio tells the model. Your versions apply to every project; Reset brings the studio's own back. A cloud model can still refuse on its own account; if one does, pick another for writing with the plug.
Will it mess with my existing characters, presets or lorebooks?
No. Pulling something from SillyTavern makes a copy in the project. Changes go back only through Apply to SillyTavern, which shows a diff and keeps a backup of what it replaces.
Can I use it on a character I already have?
Yes. Click the feather in SillyTavern's character panel (or Start from one of my characters… in the studio). Its lorebook and sprites come along. Then press Critique & fix to improve it, or Build the rest for me to add what is missing: empty fields, openings, a lorebook, a preset and so on. What you wrote stays untouched.

A card file works too (PNG, CHARX or JSON): drop it anywhere on the studio, or use Import card…. You'll find it on the Characters page, under the + next to Characters & scenarios, in the project menu at the top left and in Ctrl+K. Opened an empty character by mistake? It offers Import card… right at the top, and the card takes its place.

How do I get rid of pictures I don't need?
Click a picture under Media: you see it, which characters use it and how, and Remove from project clears it everywhere at once. Pictures no character uses are marked unused, and the broom on Media removes them all. Removing a character takes the pictures only it used. Ctrl+Z brings any of it back.
Do I need ComfyUI?
No. Without it the studio still writes the image prompts, and you can paint them anywhere. With SillyTavern's Image Generation extension it can paint through that. ComfyUI adds the built-in workflows, the checkpoint-aware prompts and the expression sprites. If ComfyUI runs on another machine, start it with --listen so SillyTavern can reach it.
My character already has a picture. Will the sprites look like it?
Yes: they are made from it. The studio sends the avatar to ComfyUI and, if you have a FLUX Kontext model, edits only the expression, so the art style, outfit and pose are the picture's own. The studio finds what your ComfyUI can do by itself (Kontext, FaceDetailer, background removal, a node that takes the picture inline) and remembers it. For the picture to go in without an upload, ComfyUI needs ComfyUI-Easy-Use or comfyui-tool-nodes; otherwise start ComfyUI with --enable-cors-header.
How many model calls does a full roleplay take?
About a dozen: one per step, plus the occasional retry or repair. With a fast cloud model it takes a few minutes.
Where are my projects stored?
In your SillyTavern user files (data/<user>/user/files/cstudio-*.json), saved automatically, with media next to them. They follow you across browsers on the same SillyTavern. Project → Publish bundle makes a portable zip, and Open file… opens one (give it a character card and it imports the character instead).
Keyboard shortcuts?
Keys Does
Ctrl Shift S Open / close the studio
Ctrl K Command palette: jump to any workshop or artifact
Alt 1…7 Switch workshop
Alt I Toggle the inspector
Ctrl Z / Ctrl Y Undo / redo (outside text fields)
Ctrl S Save now
Esc Close

✦ For tinkerers

Plain ES modules, no build step. The UI is Preact + htm, and zip handling is fflate (both vendored in vendor/).

npm test

137 unit tests cover card formats (PNG chunks, V1/V2/V3, CHARX), the lorebook engine, the regex engine, presets, STscript and Quick Reply analysis, bundles, playtests, the AI instructions and content levels, the AI gateway (routes, lenient JSON, repair, timeouts) and the generation pipeline. A live suite runs inside a SillyTavern tab against the real server (it creates and then removes CSTEST_* items):

const m = await import('/scripts/extensions/third-party/SillyTavern-CreativeStudio/tests/live/live-integration.js');
await m.runLiveTests();

Adjust the folder name if you installed it under a different one, or per user (/scripts/extensions/third-party/ serves both locations).

AGPL-3.0, the same as SillyTavern. Vendored libraries keep their own licenses (vendor/LICENSE-*).

Banner art generated with Z-Image Turbo · title set in Cinzel and Cormorant Garamond (SIL OFL)
Made for people with great ideas and no patience for lorebooks.

About

SillyTavern extension: one line (or nothing) → a complete, linked roleplay: card, openings, lorebook, preset, regex, Quick Replies, plus ComfyUI portraits and expression sprites. Hands-free AI with undo, provenance and a full creator's workbench.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages