Labs · Repetition & Sampler Doctor
Paste the loop.
Get the why.
Three layers, because “repetitive” is three different diseases
Word-for-word looping, pet imagery that returns every reply, and openers poured from the same mold are different failures with different cures — flattening them into one “repetition score” is how tools end up recommending the wrong fix. Layer 1 uses 12-token sliding shingles to catch verbatim copying across and inside replies; it’s the exact recipe from our fiction bench’s repetition figures, and this page’s engine reproduces the archived Grok 4.5 collapse (three consecutive rounds at 100% old text) to the digit. Layer 2 counts content phrases that echo across replies — “her amber eyes”, six times in eight messages. Layer 3 clusters reply, paragraph and sentence openers to catch structural molds that verbatim detectors are blind to.
Where the triage tree comes from
The root-cause ranking is the web version of the repetition branch in our app’s chat-quality triage playbook, and it inherits that playbook’s honesty discipline: every claim carries a confidence label. “Measured in our bench” means you can re-run it — the Grok/Kimi/DeepSeek loop measurements come from archived 20-round chains our selftest recomputes; the history-contamination evidence (instructions lose to history 9 rounds out of 10) comes from a controlled app-side experiment. “Official docs” quotes vendor documentation, like OpenAI’s 0.1–1 reasonable band for penalties or Anthropic’s note that Claude has no penalty parameters at all. Community bands cite their source. Where we have nothing, the page says “not measured” instead of inventing a number.
What it can’t do
This is a static snapshot diagnosis: it can’t see your actual prompt assembly, your preset’s hidden penalty overrides, or what your frontend silently drops. Character catchphrases and normal address terms are legitimate repetition — the imagery layer deliberately parks single-word habits in a watchlist instead of calling them disease, and rhetorical anaphora is labeled, not punished. For whole-chat archaeology (hundreds of replies), the default window is the recent 40 — long chats accumulate legitimate repeats that would drown the diagnosis you actually came for.
FAQ
Is my chat uploaded anywhere?
No. Detection, triage and the settings checkup all run in your browser — paste text or drop a .jsonl and nothing leaves your machine. That's also why the page can't 'learn' from your data: the rules are fixed, versioned, and the same ones our own bench pipeline uses.
Will the recommended settings stop the looping for sure?
No, and we won't pretend otherwise. Samplers are model-specific voodoo; reference bands here are labeled by where they come from (official docs, community consensus, or our own measurements) and are meant as a starting point for one change at a time. The diagnosis half — which layer is repeating and whether the loop already lives in your history — is the part with hard evidence behind it.
Why does the fix list keep saying “edit history first” instead of giving a magic parameter?
Because we tested it. In our app-side experiment, once a bad pattern sat in the visible history, corrective instructions failed in 9 of 10 rounds — while a fresh chat showed zero residue. Models imitate the transcript more than they obey you. Parameters shape the next token; the history teaches the next reply. So history surgery outranks every knob, and the page is honest about that order.
What exactly is a “12-token shingle”?
Slice the text into every run of 12 consecutive tokens (a CJK character or a latin word each), then check how many of a reply's runs already appeared in earlier replies. It's the recipe our fiction bench uses for cross-round repetition. As a calibration check, this page's engine re-ran the archived Grok 4.5 chain and reproduced the published finding exactly: rounds 10-12 at 100% overlap, easing at round 13 (published 68.4%, recomputed 67.7% — sub-point tokenizer difference).