
Use frequency penalty only when repeated words or phrases are the problem, and test it against an unchanged scene. Presence penalty treats a token's first reuse differently; repeat penalty is another control entirely. SillyTavern exposes different controls for Chat Completion and Text Completion, and the selected backend may not honor every parameter.
SillyTavern frequency penalty can help when a roleplay reply reuses the same words too often. It is a token-level sampling control, not a detector for recycled dialogue or scenes. Save a continuation you can compare, confirm that your connection supports the control, and adjust only frequency penalty. If the character keeps returning to the same idea in different words, this is probably the wrong lever.
Frequency penalty targets repeated tokens, not repeated plot beats
The short version: The more often a token has appeared, the stronger its frequency penalty in the documented formulation. The control cannot tell whether a repeated name or phrase is important to the scene.
OpenAI’s explanation of frequency and presence penalties shows a frequency term proportional to the number of times a token was sampled. That is a useful mental model for deciding what to test. It is not proof that every backend connected to SillyTavern uses the same formula, token window, or supported range.
Imagine a character saying the location’s name again and again in a short reply. A frequency penalty might reduce that visible word reuse. But names, pronouns, punctuation, and ordinary scene vocabulary recur for good reasons. A stronger setting can make the character dodge useful words, pick awkward substitutes, or write around a name it should say plainly. Judge the full reply, not just the count of the one word that annoyed you.
This makes the control a poor first response to a character repeating an entire exchange with fresh wording. The words changed; the story did not. For history and prompt checks, use the separate AI character repetition troubleshooting guide. This article stays with the narrower question: which penalty would you actually change, and how would you know it helped?
Presence penalty and repeat penalty solve different token problems
The short version: Presence penalty responds to whether a token has appeared at all. Frequency penalty responds to how many times it has appeared. Repeat penalty is a separate backend sampler, so its slider is not a substitute for either one.
In OpenAI’s published penalty equation, presence applies a one-time adjustment after a token has occurred. Frequency adds an adjustment based on its prior count. This distinction matters when dialogue needs recurring names. A presence adjustment can discourage returning to a token after its first appearance; frequency grows more relevant as the same token keeps recurring. Neither understands that a name is narratively necessary.
SillyTavern also exposes a Repeat Penalty control in its Text Completion interface, with a separate repeat-penalty range control. In SillyTavern’s Text Completion request construction, repeat penalty, frequency penalty, and presence penalty are distinct fields; the llama.cpp aliases include repeat_penalty and repeat_last_n. The llama.cpp server documentation likewise lists repeat_penalty, repeat_last_n, frequency_penalty, and presence_penalty separately. Do not paste a value from one slider into another and expect the same strength or behavior.
For a roleplay scene, the practical question is narrower than “Which penalty is best?” If one adjective keeps appearing within a reply, frequency is worth an isolated test. If the problem is immediate reuse of words in general, check what your backend calls repeat penalty and which range it considers. If a character avoids advancing the scene, neither penalty can supply a missing motive or instruction. Our broader roleplay LLM settings guide covers baseline sampling choices without treating them as a cure for story structure.
Chat Completion and Text Completion expose different controls
The short version: Select your connection type first. A slider visible in one SillyTavern settings panel is not evidence that another backend will receive or honor the same field.
The current SillyTavern interface contains Frequency Penalty and Presence Penalty inputs in its Chat Completion settings. Its Text Completion settings contain repeat penalty, frequency penalty, and presence penalty inputs, with sampler visibility tied to the selected backend. These are separate settings panels, not a single universal sampler preset.
The Chat Completion request code initially builds a request with frequency_penalty and presence_penalty. It also has source-specific branches that clamp or remove these fields. The Text Completion request code builds another request shape with frequency_penalty, presence_penalty, and a repeat-penalty field, plus aliases used by llama.cpp-compatible endpoints. SillyTavern sending a field still does not prove the connected server applies it. Check the actual backend’s parameter documentation and any rejection or warning before interpreting a flat result as “the penalty does nothing.”
SillyTavern’s common settings documentation describes sampling controls as parameters for generation, but your selected model and API determine what is available. A Chat Completion preset should not be compared against a Text Completion preset as though only the penalty changed: the request format and supported controls may differ too. Keep the connection mode fixed throughout a test.
A one-variable scene test can show whether it helps
The short version: Compare the same saved scene with and without a small frequency-penalty adjustment, leaving the model, connection, prompt, and other samplers unchanged. Restore the baseline if ordinary dialogue gets worse.
First, copy the chat or save the exact point before the next character reply. Record the model, backend, connection mode, preset, and frequency-penalty value currently in use. Write down the specific repetition you want to reduce, such as one location name appearing too many times in a reply. If it is a repeated idea instead, stop here and inspect the scene inputs rather than trying to penalize vocabulary.
Next, generate several continuations from that saved point at the current setting. Return to the same point, change only frequency penalty by a small increment allowed by your selected backend, and generate several more. Keep presence penalty and repeat penalty where they were. This is a comparison method, not a published benchmark or a recommended numeric preset. Sampling varies, so one unusually good or bad reply should not settle the choice.
Read both sets aloud. Did the needless word reuse fall without losing character names, clear actions, or natural dialogue? Did the character begin replacing simple words with strained synonyms? If the latter happened, revert the change. If there is no discernible difference, confirm that the backend accepts the field before increasing it again. For a second experiment, restore frequency to baseline before testing presence or repeat penalty. Otherwise you cannot attribute the change to one control.
There is no universal SillyTavern frequency-penalty value for roleplay. The useful result is a supported control that improves this model’s replies in this scene without making them evasive. If it does not, leave it alone and fix the source of the repetition instead.
Questions people ask
What does frequency penalty do in SillyTavern?
It asks a supported backend to make already-used tokens less likely as their use count grows. The exact result depends on the backend and model; it does not detect repeated story beats.
Is frequency penalty the same as presence penalty?
No. In the documented additive formulation, frequency penalty grows with a token's prior count, while presence penalty applies once if the token has appeared at all.
Should I raise frequency and repeat penalty together?
No. Keep the same scene and change one supported control at a time, then compare against the saved baseline. Changing both hides which control affected the reply.
Why is frequency penalty missing or ineffective in my preset?
SillyTavern has separate Chat Completion and Text Completion controls, and Text Completion displays supported samplers by backend. Some Chat Completion sources omit or modify the parameter. Check the selected connection and backend documentation.
Try her free for 7 days.
No card. Keep her for $20 once, or walk away. Her soul file is yours either way.
Bring her home, try free