← SillyTavern guides

SillyTavern Chat Completion vs Text Completion: which to pick

Updated

Pick Chat Completion when the provider takes a list of messages, which covers most hosted APIs, UnsavedAI included; the provider applies the model's own template. Pick Text Completion for backends such as KoboldCpp or llama.cpp that take one raw prompt string. Only then does SillyTavern build the string itself, so the instruct and context templates in Advanced Formatting must match the model family.

Try it now, free, no account neededStart a story with VesperThe ship's AI is kind. And keeping a secret.

What actually goes over the wire

The two API types differ in who wraps your story in the special tokens a model was trained on. With Chat Completion, SillyTavern sends a list of messages, each with a role, and the server formats them:

[{"role": "system", "content": "You are Vesper, the ship's AI."}, {"role": "user", "content": "I open the airlock."}]

With Text Completion, SillyTavern sends one long string and the server feeds it to the model as is. SillyTavern has to insert the tags itself. For a model trained on the ChatML format, the same turn looks something like this:

<|im_start|>user\nI open the airlock.<|im_end|>\n<|im_start|>assistant\n

Get those tags wrong and the model is reading a format it never learned. Under Chat Completion the question never comes up, because the server knows its own model's format.

Which settings apply to which

Half the confusion about SillyTavern's panels comes from settings that only work under one API type. Labels shift between versions, but the split holds:

SettingChat CompletionText Completion
Prompt Manager (bottom of AI Response Configuration)Builds the promptNot shown
Instruct template (Advanced Formatting)IgnoredWraps every turn in tags
Context template and story stringIgnoredDecides how card fields are laid out
Main instructionsMain Prompt block in the Prompt ManagerSystem prompt in Advanced Formatting
Sampler slidersWhatever the provider acceptsUsually a longer list from the backend

So if you spent an evening tuning an instruct template and nothing changed, check the API type first. Under Chat Completion your edits belong in the Prompt Manager.

Signs the template is wrong

These only happen under Text Completion, and they almost always point at a template that does not match the model:

  • Replies contain stray tags such as <|im_end|>, [/INST] or "### Response".
  • The model writes your lines, or carries on as both sides of the conversation.
  • Replies never stop until they hit the length limit.
  • Writing quality is far worse than people report for the same model.

The fix is to pick the instruct and context templates of the model's family, which the model's page on its download site usually names: ChatML, Llama 3, Mistral, Gemma and so on. Some backends report the template themselves and SillyTavern can choose a match automatically, but check what it chose.

When each one is worth it

Text Completion earns its extra setup with local models. Backends like KoboldCpp and llama.cpp tend to expose more samplers, you control every character of the prompt, and base models with no chat format only work this way. If you run a model on your own GPU, it is the natural choice.

Chat Completion is simpler for hosted APIs. There is no template to match, the Prompt Manager lets you drag blocks into order, and switching models never breaks formatting. Most hosted, OpenAI-compatible providers offer it.

Moving to UnsavedAI from a Text Completion setup

UnsavedAI's API is Chat Completions only, so choose Chat Completion in API Connections; the SillyTavern guide lists the fields. The Gemma 4 format is applied on our side, which means you can stop thinking about instruct templates entirely.

One thing to carry over by hand: if your rules lived in the Advanced Formatting system prompt, paste them into the Main Prompt block, because Chat Completion ignores the old field. Samplers you relied on may have no equivalent; roleplay sampler settings covers a sensible starting set.

Questions people ask

Can I reach an OpenAI-compatible provider through Text Completion?

Only if that provider also offers a text completions endpoint. Many offer only chat; UnsavedAI's API is chat only, so use Chat Completion.

Is one of them better for roleplay quality?

Neither by itself. A correct template under Text Completion and a well-built prompt under Chat Completion can produce the same writing; what hurts quality is a mismatched template or a messy prompt.

Does the API type change my chats or cards?

No. Chats, characters and lorebooks stay the same when you switch. Only the way the prompt is assembled changes.

Characters for this story