
Stop extending the loop and save the scene. Compare the looping history with a minimal reviewed history while keeping other inputs fixed, then inspect shared examples, instructions, templates and stopping behavior. Change settings only after those checks. A new chat or regenerated reply must not be assumed to clear persistent context.
If your AI character keeps repeating, stop adding turns to the broken exchange. Save the scene, then compare the looping history with a minimal reviewed history while keeping the rest of the request fixed. Inspect shared examples and formatting before reaching for a repetition penalty.
The aim is to recover this conversation without rewriting the character or discarding the story. This is a source-based troubleshooting workflow, not a report of tested model outputs. Its diagnostic order is advice, not a claim about which cause is most common.
Stop extending the loop and identify what is repeating
The short version: Mark the first bad turn and name the symptom before changing anything.
Copy the conversation and character profile somewhere safe before removal or rewinding. Highlight the exact phrase if there is one. If the wording changes but the character keeps smiling instead of answering, record the repeated action. If every reply returns to opening the same door, record the unchanged scene state.
A whole reply copied again deserves a different note from role labels leaking into prose. Write down whether you see something like assistant: or the character speaking as the user. Those are reasons to check formatting later, not proof that a penalty is too low.
Avoid accumulating requests that only say “stop repeating.” Keep the last useful user prompt and the point immediately before the loop available for comparison. Treat the output as a symptom rather than describing the character as deliberately ignoring you.
A clean-history comparison isolates the current conversation
The short version: Compare two copies with the same scene facts and final prompt; change only the history.
Keep the model, character profile, template and settings fixed. Copy A retains the suspect history. Copy B contains a minimal reviewed history. Put the same compact scene record in both. For longer handoffs, use the separate guide to preserving continuity between roleplay chats.
SillyTavern documents character information and system prompts as context alongside chat history. Its context-range indicator also distinguishes messages that are not sent to the model.[1] Inspect the assembled request if your app exposes it; the chat window alone is insufficient evidence.
Fictional diagnostic worksheet. All dialogue fragments below were written to illustrate a loop. They are not model outputs, user reports, or measurements.
Imagine Mira’s latest replies all begin, “Mira tilts her head and smiles softly,” without answering the wire question. Use this shared record:
Mira is inside the storm-damaged observatory door. The red wire is live.
The player holds the insulated switch and has not used it.
The door has not opened. Mira must not choose the player's action.
Latest user prompt: What should we check before touching the wire?
| Comparison | Change only | Record the actual result |
|---|---|---|
| A versus B | Looping history versus minimal reviewed history | Does the opening return? Does Mira answer the question? |
| Shared-input check | Nothing yet; inspect both requests | Are memory, retrieved notes or extensions still supplying the phrase? |
If B stops repeating, history is implicated under those conditions. If both repeat, inspect shared inputs next. If the app cannot isolate them, the comparison has limits. A new-chat label does not establish a clean request; context is not persistent memory.
Repeated examples can keep restoring the same phrase
The short version: Search persistent inputs for the recurring text before rewriting the personality.
Inspect the greeting and example dialogue, then active notes and duplicated instruction blocks. In SillyTavern, the first message influences reply style, and example-dialogue blocks enter the context when space permits.[3] A phrase in an example is therefore a candidate input to inspect, not merely a decoration on the profile.
In a test copy, remove or vary one block containing the flourish. Return to the same checkpoint with the same final prompt. Leave the rest of the character alone so the comparison remains useful.
One specific SillyTavern pitfall belongs here: when a Text Completion Story String includes {{mesExamples}}, its documentation says to set “Example Messages Behavior” to “Never include examples” to avoid duplicate examples in the prompt.[2] That is a scoped configuration fix, not a universal instruction to delete examples.
Save writing a character’s voice and examples for a deliberate redesign after repair.
Template and stopping errors need a formatting fix
The short version: Leaking roles or separators call for a template and API check before a stronger penalty.
Check the exact model’s expected conversation format, including any fine-tune instructions. SillyTavern says its instruct template must match the backend model, and that Instruct Mode applies to Text Completion rather than Chat Completion’s separate prompt builder.[6] Do not apply a Text Completion walkthrough to a Chat Completion connection.
Inspect active overrides before adding wrappers. LM Studio normally configures its template from model-file metadata.[7] If that automatic template is appropriate, avoid manually wrapping the content again. SillyTavern also documents a narrower double-wrapping problem when static model-specific wrapping elements are used with “In-Chat @ Depth” placement.[2]
Check stopping behavior separately. The llama.cpp server documents a stop array of stopping strings.[5] Compare your configuration with the backend’s documented behavior; do not add the character’s name blindly as a stop string where it could cut ordinary dialogue short.
For the original Qwen3 setup, its model card says historical output should contain final answers without thinking content.[4] Follow that model’s template guidance rather than deleting reasoning history from unrelated models.
Sampler changes come after the input checks
The short version: Undo one recent change or restore the documented model baseline before trying another adjustment.
Keep the reviewed request fixed. Record the backend, exact model and mode so you can return to the starting configuration. Then change one supported control and compare against that checkpoint.
Temperature zero is not a universal escape route. The original Qwen3-4B card warns against greedy decoding in thinking mode because it can cause degraded performance and endless repetition.[4] SillyTavern’s min-p documentation also warns that setting it too high can worsen repetition.[1]
Do not substitute presence and repeat penalties as though they were the same control. For their differences and adjustment mechanics, compare roleplay sampler settings one variable at a time. This repair needs an isolated comparison, not another copied preset.
Keep the repaired continuation without claiming to erase memory
The short version: Continue from a reviewed checkpoint and verify the next scene beat; keep the backup.
If your app supports editing or branching, work in a copy from before the loop. Preserve essential scene facts and remove only the material implicated by your comparisons. Check the product’s documented deletion behavior before any destructive action.
Editing a character reply, rewinding a user turn and generating an alternative are different operations. Deleting a conversation is also distinct from deleting persistent memory. Do not infer a memory reset from a changed reply on screen, or assume a better regeneration removed the source of the loop.
Use this checklist on the next continuation:
- It answers the latest user prompt rather than restating the setup.
- It does not copy the unwanted opening or gesture again.
- The scene changes where the story calls for progress.
- It preserves established facts and leaves the player’s actions to the player.
One acceptable reply is a reason to continue cautiously, not evidence of a permanent cure. If the loop returns, compare the newly supplied context with your saved checkpoint.
Whether you use Local Waifu or another character app, keep the original conversation until the continuation holds together. The useful result is a story you can continue and a record of which change helped.
Sources
[1] https://docs.sillytavern.app/usage/common-settings [2] https://docs.sillytavern.app/usage/prompts/context-template [3] https://docs.sillytavern.app/usage/core-concepts/characterdesign [4] https://huggingface.co/Qwen/Qwen3-4B [5] https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md [6] https://docs.sillytavern.app/usage/core-concepts/instructmode [7] https://lmstudio.ai/docs/app/advanced/prompt-template
Questions people ask
Why does my AI character keep repeating the same phrase?
Inspect active history, the greeting, example dialogue and other supplied instructions for the phrase before assuming a settings problem. SillyTavern documents character information and history as context, and inserts example dialogue when space allows. Isolate one input layer at a time.
Should I regenerate the same reply until the loop stops?
An alternative reply may read better, but repeating an unchanged request does not diagnose the cause. Preserve the scene and compare the suspect input with a reviewed copy. Do not assume regeneration clears context or memories.
Will starting a new chat erase the problem?
A fresh history is a useful comparison only after checking other supplied context. Verify the product's behavior rather than assuming a new chat clears character cards, retrieval or persistent memory. SillyTavern's documented context includes more than visible chat messages.
Does temperature zero stop repetition?
Not universally. The original Qwen3-4B model card warns that greedy decoding can cause degraded performance and endless repetitions in thinking mode. Check the exact model and mode instead of treating temperature zero as a universal repair.
Why is the character printing my name or assistant tags?
Check the model's expected template and stopping behavior. SillyTavern Instruct Mode applies to Text Completion, not Chat Completion. LM Studio normally configures the template from model metadata, so check for an unnecessary override before adding manual formatting.
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