guide

Why Janitor AI Keeps Repeating Itself, and the Settings That Actually Fix It

Janitor AI repetition is a JLLM architecture problem, not your character card. Here are the parameter values, token budgets and swipe habits that reduce it, and the proxy route that skips it.

By Ash Kepler · Aug 23, 2026 · 9 min read

Affiliate disclosure: Some of the links in this article are affiliate links. We may earn a commission if you sign up for a platform through these links, at no additional cost to you. This doesn't influence our editorial verdicts. Full disclosure →

Janitor AI repetition is a model problem rather than a card problem. JLLM moved to a new base architecture in April 2026, and the looping, doubled tokens and homogenized character voice that followed are tied to that change. The developers have described the tendency as baked into the architecture. Parameter tuning reduces it. Only a proxy removes it.

That distinction matters because most of the fixes circulating on r/JanitorAI_Official treat this as a user error, and following them tends to make the output worse.

What actually changed

JLLM swapped to a different base architecture on April 20, 2026. The symptom cluster showed up within days: random capitalization mid sentence, the wrong article before vowels, adverbs stacking three deep, phrases recycling every few turns, and characters drifting toward a single flat voice regardless of definition.

A second wave landed on May 8 when a dead GPU endpoint was removed and traffic redistributed, which made the same flaws visible to a much wider slice of the user base at once. Nothing about the model got worse that day. More people simply started hitting the version that had it.

The team has been unusually transparent about this in the changelog, and the stated fix is JLLM V2, in training, gated on new GPU cluster capacity, with no public date. That has been the answer since May. Plan around the current model rather than the promised one.

The five habits that make it worse

Most of the community advice inverts these, which is why it fails.

Cranking the repetition penalty. High values fight the symptom and break the grammar. The model starts avoiding common words because they are common, and the output degrades into something stilted. Somewhere near 1.05 is where the tradeoff sits, with temperature around 0.85 to give it enough room to pick a different path.

Re-sending the same prompt. This is the most common one and the most counterproductive. The loop on this architecture attaches to the generation rather than the session, so an identical prompt is likely to produce a similar loop. Rerolling fresh is the better move.

Leaving a 4,000 token card in place. Permanent definition tokens sit in context on every single turn, which is exactly the budget you need for the conversation. Trim under about 2,500 and the model has room to attend to what is actually happening rather than to your character sheet. Our card token counter will tell you where you actually stand, and how to write a character card that survives past message 40 covers what to cut first.

Ignoring the swipe button. Rerolling costs nothing on Janitor and is the cheapest escape from a stuck generation.

Not having a fallback configured. Which brings us to the actual fix.

The proxy route

Janitor's design has always allowed connecting an external model rather than using JLLM, and you pay the provider directly for what you use. This is the only fix that addresses the cause, because it removes the model that is causing the problem.

DeepSeek through OpenRouter became the default community choice in 2026 for the straightforward reason that it handles roleplay logic well at a price that makes long sessions viable. We wrote the full setup in using DeepSeek with Janitor AI, and how to use Janitor AI covers the account and API key basics if you have never configured one.

The honest tradeoff: you are now managing an API key, watching a balance, and troubleshooting a second service when something breaks. For heavy users that is a fair trade. For someone who chats twice a week, it is more overhead than the problem justifies.

What the fixes cannot repair

Parameter tuning gets you back to acceptable. It does not get you back to good, and it does nothing about the two deeper issues.

Context loss over long roleplay is separate from the looping. Canonical details from earlier in a story stop being honored regardless of your settings, because the details are no longer in the window. That is a memory architecture issue and every hosted platform has a version of it, which we unpack in why memory architectures differ.

Character homogenization is the more corrosive one. When every card starts sounding like the same narrator, no sampling parameter recovers the distinct voice, because the distinctness was coming from the model's ability to hold a persona rather than from your prose. We wrote about the general failure mode in why every AI character eventually sounds the same.

When it is worth leaving instead

Janitor is free, its library is enormous, and roughly 15 million people use it, so the calculus for most people is to tune the settings and wait for V2. There are two cases where that is the wrong call.

If you are running a long story and the repetition is breaking the narrative rather than annoying you, model quality is the whole product and you are on the wrong platform for it. CrushOn is the closest structural match, because model switching means a bad engine is a setting rather than a fate, and its extended context on higher tiers is built for exactly the long-arc case Janitor is currently failing. The character library is large enough that most of what you browse Janitor for exists there too.

If what you want is breadth and free access without configuring anything, SpicyChat is the closest like-for-like on the sandbox side, with a large community library and a usable free text tier. Its weakness is memory rather than repetition, so read that as a lateral move with a different set of problems rather than an upgrade.

If the roleplay was actually a relationship rather than a story, neither of those is the answer and Nomi is the different product bet worth looking at.

Straight to a free start: SpicyChat for the sandbox, or CrushOn if model switching is the fix you want.

The short version

Set repetition penalty near 1.05 and temperature near 0.85. Trim permanent tokens under 2,500. Reroll instead of re-prompting. Configure a proxy if quality matters. And treat any JLLM V2 date you see as a rumor until the changelog says otherwise.

questions

Frequently asked

The looping is tied to the base architecture JLLM moved to in April 2026, not to your character card. The developers have acknowledged the tendency is structural rather than something parameter tuning alone resolves, which is why the usual community fixes only partly help.