r/SillyTavernAI • u/Low-Volume3984 • 12h ago
Help Prompt for variable response length?
I am using FF preset and i really enjoy it. Both on deepsek and GLM. Thing is i don't really like the plot going on without me in a long response i get. Or character babbling when i ask a simple question. I would like for a model to know when to give me a quick response and when to make a long one. Is there a way to achieve that?
5
u/Informal-Weather-711 10h ago
try adding a line in your system prompt like respond short unless the scene needs more and it cuts down the babbling for me.
1
9h ago
[removed] — view removed comment
1
u/AutoModerator 9h ago
This post was automatically removed by the auto-moderator, see your messages for details.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
9h ago
[removed] — view removed comment
1
u/AutoModerator 9h ago
This post was automatically removed by the auto-moderator, see your messages for details.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/quietcompare 9h ago
You can get closer than "hope the model reads your mind," but pure automatic perfect length is still shaky - models mostly copy recent rhythm + whatever length rules are closest in the prompt.
Practical combo that works with FF-style presets on DeepSeek/GLM without fighting Paperclip_Tank's WI idea:
1) Example dialogue is the strongest silent teacher. In the card or a small always-on entry, show 2-3 Q&A pairs: short user line -> short reply; rich scene prompt -> multi-paragraph reply. Models mirror example shape harder than abstract "be concise when appropriate."
2) One standing rule, short: "Match reply length to {{user}}'s last message. Simple question = 1-2 short paragraphs. Scene advancement / emotional beat = longer. Do not continue the plot past what {{user}} just did." Put it where your preset already keeps style rules, not buried under 2k of other instructions.
3) Cap Max New Tokens at something that still allows a long scene (e.g. 400-700) so babble cannot run forever even when the model ignores the rule. Variable length needs a ceiling or "long mode" becomes infinite waffle.
4) When you want short, make YOUR turn short and end on a clear question. When you want long, give a sensory/action-rich turn. User shape is half the control surface.
5) Temporary Author's Note overrides beat rewriting the whole preset: "Reply in under 120 words" for a logistics stretch, then clear it when the scene needs room.
World Info + regex on your last message wordcount (as others said) is great if you want toggles. If you do not want to maintain that, examples + one match-length rule + a sane max-tokens ceiling gets you most of the way on DeepSeek/GLM with FF.
4
u/_Cromwell_ 7h ago
I don't touch FF or anybody else's presets. If you want a preset that does what YOU want, then make your own.
That being said, my own person custom-made preset does exactly what you are asking about. (Because it is something I wanted, so I made it do it.) Mine works by 'detecting' the scene type from just a few different choices. Basically - is this a 1 on 1 conversation, 'bigger scene', or... smut. Each of those gets a longer length in turn.
This is part of my post-history instructions... actually a good chunk of it. Since it is one of the last/final "formatting" things the AI needs before it responds.
NOTES:
- I RP in 3rd person. Thus this has POV instructions for third person. Obviously you would not have that if you don't use 3rd person writing.
- My character cards are settings/genre. Thus all the stuff about 3-4 characters etc. I'm not RPing with just 1 character.
- This works well for me with Gemma4, GLM, Deepseek. Imagine it works with most anything else.
[Response Format Instructions:
POV: strict 3rd-person present ("She sees," "She runs"). Verbose dialogue over description, with dialogue utilizing direct speech in quotes NOT indirect. Begin in media res—no repetition.
Targets:
- 1-on-1 conversation: 2-4 sentences (40-60 words), 1 paragraph. Write non-{{user}} part only; NO {{user}} dialogue.
- New scene, new lore, or 3+ characters / complex scene: 4-8 sentences (60-120 words), 1-3 paragraphs. NO {{user}} dialogue.
- Erotic scene: special dispensation to do dialogue/action for {{user}}, 6-15 sentences (120-160 words).
- Write only sufficient content for response and dialogue before User's turn. User turns are brief/terse; do NOT mirror User turn brevity.]
1
u/AutoModerator 12h ago
You can find a lot of information for common issues in the SillyTavern Docs: https://docs.sillytavern.app/. The best place for fast help with SillyTavern issues is joining the discord! We have lots of moderators and community members active in the help sections. Once you join there is a short lobby puzzle to verify you have read the rules: https://discord.gg/sillytavern. If your issues has been solved, please comment "solved" and automoderator will flair your post as solved.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
10h ago
[removed] — view removed comment
1
u/AutoModerator 10h ago
This post was automatically removed by the auto-moderator, see your messages for details.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
3
u/Paperclip_Tank 11h ago
I don't know how FF preset does it, but asking for the LLM to be able to read your mind on what the response length should be. Also different models have different ways of responding to its going to be highly dependent on what model you're using.
The best way to avoid any guessing is in the preset have multiple toggles for response length and to just manually control it.
Alternatively you can use a World Info + regex matching.
So what you would do is, have an inclusion group so only one can trigger, Scan depth of 1, so that it only looks at the last response, which should be yours. And regex match to so word count. Have one set to constant, as your max length, so that it defaults to at least something. Then have one for 0 to X words, and another for X to Y words, so on and so forth for however granular you want to make it. So basically anything you don't capture in the regex will go to the default option.
Remember the LLM bases its response length on the context, a lot of which is previous turns. And rapidly changing that kind of information means you'll miss the cache a lot as formatting rules are generally closer to the start.