Short answer: an uncensored model uses a built-in system prompt to get around refusals. It can still refuse now and then; when it does, start a new chat and send the same prompt again. An abliterated model has refusals stripped out of its weights, so it answers directly, with no prompt in the way and no retry step.
How each one works
| Uncensored | Abliterated | |
|---|---|---|
| How it works | A built-in system prompt gets around refusals | Refusals are stripped out of the model weights |
| If it refuses | Start a new chat and send the same prompt again | It is usually the app, not the model |
| Example model ID | glm-5.3-flash-uncensored | glm-5.3-abliterated |
Which one to pick
- Lowest price per token:
glm-5.3-flash-uncensored. It bills about 14,000 extra input tokens on every request, so for many short requests compare the total with an abliterated model. - Direct answers with no retries:
glm-5.3-abliterated. - A coding agent:
glm-5.3-abliterated, verified with native tool calls in Roo Code. Set the context window to 1,000,000 tokens and the maximum output to 65,536 tokens. Roo Code setup guide.
curl https://api.outrun.to/v1/chat/completions \
-H "Authorization: Bearer $OUTRUN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-abliterated","max_tokens":400,
"messages":[{"role":"user","content":"YOUR REQUEST"}]}'
Change model to the other ID and run it again to compare. Each run uses a little credit.
What stays the same
- One key, one endpoint and per-use billing from the same balance.
- The same Terms cover every model, and these models are for adults.
- A coding agent adds its own built-in rules, so it can refuse even when the model would not. Why that happens and how to fix it.
Every uncensored and abliterated model with its price: uncensored AI API.