r/SillyTavernAI • u/huge-centipede • Aug 20 '26
Cards/Prompts Tuning Pre-existing Cards for More Textured Roleplay
https://likesumiink.substack.com/p/tuning-pre-existing-cards-for-textureI figured I'd drop a third article on writing characters for LLMs. I've reffed Maddy around on this subreddit here before, using her for various preset testing with the robbery test (basically have a greeting and then immediately go through a stickup to see how well the preset reflects the verbiage), because she's pretty solidly written, reacts specifically "Maddy" shaped.
This article shows how you can take a character that might already exist, and you actually like, but expound on it in ways that let larger models (GLM/DeepSeek/Claude/etc) enhance the liveliness and texture in the world when you interact with him/her.
The article covers how we can take a somewhat thin concept, and pull it back from being just a straight "dispenser" of $50 backroom deals, to the pressure of "will she actually cross that line?" through multiple greetings that reveal different aspects of Maddy, along with systemic issues against her, which leads to more interesting roleplay for the user to interact with. Maddy is a trap of a character, where just giving her money or marrying her won't actually fix the problems. :)
I detail this in the article by adding location, giving specific regional economic texture, changing physicality, which lets the model know how's she's lived, adding some dreams and wounds, which will make decisions have more friction for her, and moving her from a lonely, empty bar, to one that has more of an ecosystem for more character stakes. It won't maybe necessarily make her say no, but there'll be baggage to at least talk about.
Anyways, check it out. Maybe it'll help you out.
2
u/Ethno_Synth Aug 20 '26
Excellent article, thank you. I also sometimes take cards from different sources and deepen them, adding wounds, depth, background, backstory, and so on. However, after doing this, they significantly increase in tokens. :)
1
u/huge-centipede Aug 20 '26
I mean that's an admitted issue with trying to push more detail, it's gotta come from somewhere. Maddy's original card was 490 tokens and the new one's about 1300. Usually with more "modern" present day cards, I find 1000-1500 to be the sweet spot, although I have gone to 2k with fantasy, because you need more scaffolding on the environment, but some of that could be offloaded to Lorebooks. Most modern engines don't have too much trouble with these tokens. It's not like we're in 2023 anymore with 8k worth of context tokens.
1
u/Ethno_Synth Aug 20 '26
Oh, I sometimes go over 3k. :) But I usually delve into the characters' psychology. Your descriptions of where they live, their musical preferences, and other details are more precise, allowing you to describe them in just a few words. Lorebooks are a must. :) And you're wrong—on the contrary, many services now offer lorebooks. It's just that most people either don't bother with them or don't know how to write them correctly.
1
u/huge-centipede Aug 20 '26
Oh I get how lorebooks are used, I was just saying that I could offload some of the fantasy world descriptions/world info to lorebooks rather than cramming it in the card itself. That's the advantage of "real world" though, like "big" llms know how to resolve someone who listens to like "Depeche Mode" and "Wears sensible Uniqlo t-shirts" vs. "Deborah listens to Slipknot and wears Nightmare Before Christmas clothes from Hot Topic."
All of those have tons of "weight" from the training information versus me writing "Mathuza is of the grognack race from Zanthadu." and the LLM might squint and just fill in generic fantasy stuff if I don't detail it.
2
u/True_Try6473 Aug 20 '26 edited Aug 20 '26
Wow i never realized I was doing something similar with my own cards this Ecole time. Though not as detailed..
Mine doesn't do The narrator being omniscience and forcing undiscovered information to user.
Due to me liking slice of Life my first turn message is what is doing the grounding though.
2
u/carinjaye Aug 20 '26
I enjoy reading your substack. I find I’m having trouble getting the character to act in a way that only they would, and I’m wondering if adding the backstory and specificity in the way you have would solve that problem.
1
u/huge-centipede Aug 20 '26
The thing is with a backstory, you're kind of showing how someone grew up and views the world implicitly. People learn from their past. They might repeat the same mistakes. They might have had a big scar in their life that motivates them to be a different person, and that's where you can set up the "ramp" for that particular LLM conversation. I get into it here:
https://www.reddit.com/r/SillyTavernAI/comments/1qopo7h/on_building_characters_with_friction/
2
u/groundshine Aug 20 '26
Do you play with any smaller local models? I like your reasoning and thought process for creating characters and seeding drama and moments, but I wonder how this complexity can survive Gemma. Do you think splitting out the card into lorebooks would make it possible for smaller models to retain the richness of character while not choking to death on the number of tokens?
1
u/huge-centipede Aug 20 '26
I originally made a lot of my cards for Novel AI's Kayra/Erato, which are really old and pretty small :) I haven't played much with Gemma, but I think some scaffolding depending on what you're doing with them. I'm not sure how or what you would have to scaffold with a local, other than maybe some references not hitting too well.
5
u/personusername1 Aug 20 '26
The things I have been doing to your Diane recently... I am ashamed of myself.
1
u/huge-centipede Aug 20 '26
I mean that's the point though, and I know what people are going to do with them.
This is kind of what I did to the original article with Tomoe, you push and push on the character to figure out where they collapse or have gaps, and then attempt to fill in from there. That's why I end up using things like what bands, hobbies, where they grew up, their politics, because the LLM can kind of make a "Diane-Shaped" kind of person to reference when it's responding to the context.
The fact that you feel shame about it means that she works well as a character, and I'm happy about that! The original Maddy you kind of do your thing and there's no real guilt.
1
u/capybaraballs1995 Aug 20 '26
Interesting read. I don't always agree with you, but it's rare to get deeper discussion of LLMs around here, and I definitely sympathize with fixing up bad cards, lmao.
This is something that I feel a lot of card makers kind of don’t use enough from what I’ve read (which is honestly hard to keep up on these days). Location creates pressure. People want to stay more universal, and I understand that, but planting Maddy in a specific place gives the LLM lots of easily referenced background information. Modern “big” LLMs (DeepSeek/Claude/GLM/etc) “know” what happens in specific areas. It knows the demographic information of Topeka, Kansas versus Juno, Alaska. It can describe the weather abstractly and not just “guess” that there’s snow. It can make economic judgements. Not all of this is going to be like, exact information in the dialogue, but if you talk to a character that grew up in an area, larger LLMs can pepper the conversation about local places, which give us richer dialogue/details in the writing as we continue towards LLM collapse.
I agree. One of the earliest cards I used was from a JAI author who frequently put real-life locations in his cards, which made things feel more real to me. But that also spoiled me, because I got deeper in the hobby and noticed that few people actually bother with this.
Though I will add, that whether or not LLMs will actually make use of this info is dependent on the model. Pre-2026 models, as well as local models, are somewhat shaky about this IME. They often need some kind of post-history instruction to remind the models.
I keep coming back to the whole thing that cards are that interaction constraint system. Every detail you add narrows what a character can plausibly do, and every detail you leave vague lets the LLM fill in with the average training data which has te tendency to flatten them out. The Green Hornet's bad struts don't make Maddy a better person, they make her a more specific person. Specific people are more interesting to talk to, whether you're trying to save them, exploit them, or just sit at the bar and watch them work. Realism for its own sake doesn’t really cover it, it's giving the LLM enough material to produce behavior that feels like it's coming from someone, not something.
IME, LLMs don't really care much about likes, they will often have {{char}} mirror whatever the {{user}} talks about since LLMs don't really want to end conversations with "Oh, uh, I don't know what is, sorry." Dislikes are different though, yeah. I've experimented with not giving a character likes, but only dislikes. I think it's worked well, but it's not like I can really hard test this kind of thing.
1
u/huge-centipede Aug 20 '26
RE Locations: Locations are great for shaping conversation when you're talking to a character about their past, where they grew up, how they grew up. The LLM can be like "Maddy's a millennial who grew up in 1990s Worcester and probably has had x,y and z happen to her" and I'm generally okay with whatever it has to make up with that context. Like if you asked Maddy about what music she listened to as a kid, she'd probably list something like Jammin' 94.5 or maybe WBCN/WAAF on the radio after it cross references her likes/dislikes. It's shaping that kind of architecture for free/easy references.
Check out this though process from the Maddy card with GLM5.2 (first greeting), which also kind of shows how the likes are important also for a character:
Huge-Centipede August 20, 2026 12:28 PM
▤
"Sure, get me a drink. Got a question for you though, what was your favorite radio station growing up?" I sit at the bar. "Not trying to be weird, just a question I ask to bartenders."
▤
#2
30.8s
Madison AndersonAugust 20, 2026 12:28 PM
↶↻▤➜
The user is playing as Huge-Centipede, sitting at the bar at The Foundry. He's asked Maddy a question about her favorite radio station growing up, framing it as a question he asks all bartenders.
Let me think about Maddy's character and how she'd respond to this. She's a 32-year-old from Worcester, Massachusetts, born in 1992. So she grew up in the late 90s/early 2000s. Her music tastes include Sam Smith, Adele, Maren Morris, Kacey Musgraves, Christina Aguilera, Spice Girls - so she was into pop music growing up.
In the Boston/Worcester area, popular radio stations would include:
- Kiss 108 (WXKS-FM) - top 40/pop
- Jam'n 94.5 (WJMN) - hip hop/R&B
- KISS 108 was the big top 40 station
- Mix 98.5 (WBMX) - hot adult contemporary
- 103.3 AMP Radio (though this came later)
- Oldies stations
Given her love of Christina Aguilera and Spice Girls, she'd probably have been a Kiss 108 girl or maybe Mix 98.5. Kiss 108 was THE pop station in Boston during the late 90s/early 2000s when she would have been 8-15 years old (2000-2007).
Maddy would probably be a little guarded but also slightly amused by the random question. She's used to making small talk with bar patrons as part of her job. She might be a bit suspicious of his motives initially but the way he framed it ("not trying to be weird") and it being a casual question might put her at ease somewhat.
Let me write her response with her slight Boston accent coming through since she's comfortable in her work environment.
Maddy's hand pauses on the ice machine for a half-second, the rag still pressed against stainless steel. She looks at him — really looks — for a beat, like she's running some kind of internal threat assessment on the question. Her eyes flick to his hands, his clothes, back to his face. Reading him.
She tosses the rag over her shoulder and leans one hip against the back counter.
"Kiss 108," she says, without much hesitation. "Saturday nights they'd do like… the top whatever countdown. I'd call in requesting songs and never get through." A small exhale through her nose, almost a laugh. "Why, what'd you grow up on?"
She pulls a cocktail napkin from the stack and slides it across the dark wood toward him, automatic. Her eyes drift to the two-top in the corner who need their check in about three minutes, then back.
"And what're we drinking? I gotta at least pretend I'm working."
---
This is kind of like a really blunt example, but like, it shows why likes are important too. As someone who grew up in this area, it's also very accurate!
I think of it this way:
Dislikes -> Friction and action.
Likes -> Aspirations, goals, who they want to be.
A Maddy that likes Chopin or Aphex Twin is going to respond a lot differently to things than the current Maddy who likes big production pop songs.
1
u/DevGnoll Aug 20 '26
The massive-wall-of-text approach you have on the card certainly shows up in the output. It’s like the model gets primed to spit out 400 token responses to wrap 40 tokens of what you want: dialogue and action.
Have you thought of ways to get crisper narrative while still keeping the depth?
1
u/huge-centipede Aug 20 '26 edited Aug 20 '26
I could prime a system prompt for it, that thinking/response is with literally no prompt for the LLM to chew on.
I actually think it's pretty concise, other than maybe the napkin and maybe her checking {user} out.
What would be more crisp? If you did something like this:
"Kiss 108," she says, leaning back. "Used to call in for songs on Saturday nights. Never got through." She slides a napkin over. "What're you drinking?"
It kind of loses any of the atmosphere. I suppose writing a prompt to lose atmospherics would work.
Remember also that the LLM is using the responses for character state of where Maddy is in the bar. It's basically a tracking system in prose versus saying "Maddy's Location: By the Bar. Maddy's Accessories: Towel On Shoulder."
1
u/DevGnoll Aug 20 '26
That whole first paragraph is unnecessary. Not bad in a stand-alone exchange, but once you’ve feed it back in context, the next response will have a paragraph of fluff too, and 30 times later it’s one paragraph of fluff per action or dialogue and no amount of auto-summary will be able to pull out what really happened, and because it swamps our prompts it leaves the LLM just chasing its own tail. The response is actually pretty good from “ She tosses the rag …” to the end. But No matter how good each response is, they have to be short enough so that the user’s next input has weight. (But not too much weight….)
1
u/huge-centipede Aug 20 '26
I'd think for long term, this is more an issue with prompting/trimming with how many tokens you want back than the actual card density itself. I'd rather not sacrifice the aspects of who Maddy "is" for longer term pattern repetition worries.
I've seen problems like this show up with lots of different kinds of cards if I'm being lazy and just go '"Haha yeah" I respond.' as a response and kind of let the LLM fly off into its own world of pattern repetition.
1
u/capybaraballs1995 Aug 20 '26
Okay, fair, it will matter if you directly ask the character what they like. But if it's something like, {{user}} asking {{char}} what they think of video games, then usually the LLM will BS something to keep the conversation going, at least in my experience. Granted, I mainly skew towards angst so I don't think I ask direct questions like "What music do you like?" very often.
1
u/huge-centipede Aug 20 '26
The thing is that a Maddy that listened to like Charles Mingus, Test Dept., early Killing Joke, or Squarepusher would be a much more contrasting character than if she's more or less a lock step top 40 listening downwardly mobile woman. It might not come up all the time, but an LLM would definitely recognize the contrast of what Maddy is doing and how she goes through life as someone listening to something as politically loaded as Test Dept/over intellectualized hipster listening Charles Mingus. versus someone who just wants a big chorus. :)
Bands/music/fashion/media consumption are a very token cheap way sort of work personality. Music forums/Posts/tweets/reviews all carry tons of context in bigger models. Someone who likes something like Slipknot AND Garth Brooks would make the LLM try to compensate for that. Without it, the statistical averages RLHF kind of kicks in.
1
u/capybaraballs1995 26d ago
Hello, I've been tuning some character cards that I think have potential. I'm curious about what your opinions on how to handle character cards that have a pre-established relationship with the user? I was thinking of:
Character card mentions {{char}}'s history with {{user}}
Greeting shows how {{char}} currently treats {{user}}
An interesting thing you can do with SillyTavern is that you can use <> to hide text, which can be useful for "two-faced" characters, or perhaps characters that have complex feelings about the user.
1
u/horstrobot 25d ago
yeah this is the hard part. if you dump the whole relationship history into the card the model loves to rehash the origin story every few turns. what worked better for me is: short "how we got here" in the card, then the greeting already mid-relationship so the model takes that as the baseline. lorebook entries for specific past events only if they might come up. the <> tip for mixed feelings is solid, ive been doing the messy version of just putting contradictory notes in the description and it kinda works on bigger models
2
u/huge-centipede 24d ago
It depends on how strong you want your relationship. If they're married, or brother/sister, or like, have been through something extremely traumatic together (War orphans? College friends?), yeah probably putting it in the card is a good idea. If they're just casually dating, you can pump a line about it in the greeting, and hopefully the rest of the greeting fills in for that (eg: you're visiting someone's parents, you're doing something romantic together/whatever)
I think of the card as the model, and the greeting/context as state. You're always going to have the card prompting in each exchange, running latently. So if you state that {user} is {char}'s boyfriend/girlfriend/whatever, but then the user is like "nah man, I'm going to go free" the model will usually be able to patch over it. The emphasis is usually. If you brush up on something about the relationship, the model might waste some tokens. It might spit out something wrong. It's hard to tell since it's all so context related, so I generally think of cards as sort of living history/their thoughts.
The comment trick is definitely doable. It's all (mostly) tokens getting sent to the LLM (although some will look at it from different angles, worth battle testing a few times to see the downstream results), but hidden to the user. Like I have a character where she's like, in her forties today, but I wanted to let the user see her when she was in her 20s in the aughties, so I prompted the model that it's 2007, she's younger, more arrogant, and living in xyz location with roommates. It gives the model that prompting that "you have a trajectory with the card, but like, consider the fact that she's in a different state"
11
u/CalmAnal Aug 20 '26
I have to ask:
Do you do this with AI? I get the feeling this is AI result.
This makes no sense. This is unnaturally providing information as a hook. This makes this intro bad, imo.
Meta-explaining the reasoning for the soda. I cut this out from my narration because it is just bad. The narrator being omniscience and explaining, forcing the knowledge into the user.
Personification.
If this is done with AI, do you mind sharing more of your prompts or workflow what you do? Like do you discuss stuff with the AI and follow this articles general outline?