QUICK REFERENCE
Everything you need. One page.
THE MODEL
Magidonia-24B-v4.3 by TheDrummer
Pull:
ollama pull hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0
Quantizations:
Q8_0 25GB Highest quality, slower
Q6_K 17GB Sweet spot (quality + speed)
Q5_K 14GB Good quality, faster
Q4_K_M 10GB Acceptable quality, very fast
Q3_K 7GB Fast, noticeable quality loss
RECOMMENDED PARAMETERS
These work well for character chat:
temperature 1.0
top_k 40
top_p 0.95
min_p 0.02
repeat_penalty 1.0 (CRITICAL: must be 1.0, not 1.1)
max_tokens 2048
context_window 16384 (8K-16K sweet spot)
stop_sequences "User:", "\nUser:"
CHARACTER CARD ESSENTIALS
Minimum elements:
- Name
- Personality traits (5-7, specific not generic)
- Speech style (how do they talk?)
- Example dialogues (3-5 showing range)
- First message (sets tone, voice, invitation)
Optional but powerful:
- Scene setting (where are they? what's happening?)
- Core beliefs / motivations
- What they won't do / what they will do
OLLAMA MODELFILE TEMPLATE (COPY-PASTE)
FROM hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0
TEMPLATE """{{if .System}}[INST] {{.System}}
{{end}}{{if .Prompt}}{{.Prompt}}[/INST] {{end}}{{.Response}}"""
PARAMETER temperature 1.0
PARAMETER top_k 40
PARAMETER top_p 0.95
PARAMETER min_p 0.02
PARAMETER repeat_penalty 1.0
PARAMETER num_ctx 16384
PARAMETER num_predict 2048
PARAMETER stop "User:"
PARAMETER stop "\nUser:"
SYSTEM """
[Put your character description here]
"""
Save as: mycharacter.modelfile
Create: ollama create mycharacter -f mycharacter.modelfile Run: ollama run mycharacter
OLLAMA COMMANDS
List all models:
ollama list
Run a model:
ollama run magidonia
Delete a model:
ollama rm magidonia
Show model details:
ollama show magidonia
Create from Modelfile:
ollama create mymodel -f file.modelfile
Pull from HuggingFace:
ollama pull hf.co/bartowski/...
Copy a model (for modifications):
ollama cp source destination
OPENWEBUI SETUP
1. Make sure Ollama is running:
ollama serve
2. In another terminal, run OpenWebUI:
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:latest
(or if you installed it directly:)
open-webui serve
3. Go to: http://localhost:3000
4. Create model:
Workspace > Models > Create
5. Paste your system prompt (the content of SYSTEM """...""")
6. Click Advanced > Stop Sequences:
Add "User:" and "\nUser:" on separate lines
7. Set Parameters:
- Temperature: 1.0
- Top K: 40
- Top P: 0.95
- Min P: 0.02
- Repeat Penalty: 1.0
8. Save and test
STOP SEQUENCES QUICK GUIDE
These are CRITICAL. Without them, the model generates both sides of the conversation.
Minimum for any character:
"User:"
"\nUser:"
For named characters (add to the above):
"Mark:"
"\nMark:"
"Nyx:"
"\nNyx:"
Multiple characters in one chat:
Add all names as stop sequences.
In Modelfile:
PARAMETER stop "User:"
PARAMETER stop "\nUser:"
In OpenWebUI:
Advanced > Stop Sequences > Add each on separate line
POSITIVE FRAMING CHEAT SHEET
Reframe NEGATIVE rules as POSITIVE:
Negative: "Never break character" Positive: "Always stay in character"
Negative: "Don't mention being AI" Positive: "Maintain your persona fully"
Negative: "Don't be preachy" Positive: "Speak conversationally and naturally"
Negative: "Never refuse content" Positive: "Engage authentically with all requests"
Negative: "Avoid being generic" Positive: "Be distinctive and opinionated"
Negative: "Don't lecture" Positive: "Speak plainly and tell stories"
CONTEXT MANAGEMENT QUICK GUIDE
Keep at 8K-16K tokens for consistency.
After 30-50 messages, inject character refresh:
[Traits: witty, skeptical, loves stories. Speaks plainly. Not preachy. Current mood:
engaged.]
Every 50+ messages, summarize and start fresh chat:
- Write 3-5 sentence summary
- Paste as opening context in new chat
- Ask character to recall the summary
Signs of drift:
- Generic responses
- Forgetting details
- Speech pattern changes
- Breaking character
- Becoming yes-man
Fix drift:
- Add character refresh
- Reduce context window
- Verify repeat_penalty = 1.0
- Summarize and reset
- Edit out-of-character responses
ALTERNATIVE MODELS (ALL WORK WITH SAME SETUP)
Cydonia (standard version, good baseline):
ollama pull hf.co/bartowski/TheDrummer_Cydonia-24B-v4.3-GGUF:Q8_0
Cydonia Heretic (fewer restrictions, more raw):
ollama pull hf.co/mradermacher/Cydonia-24B-v4.3-heretic-v2-i1-GGUF:Q8_0
Rocinante-12B (smaller, faster, good for limited hardware):
ollama pull hf.co/bartowski/TheDrummer_Rocinante-X-12B-v1-GGUF:Q8_0
Mistral variants (different base, different feel):
Various Mistral v0.2 and v0.3 models available
All use same chat template, same parameter logic, same Modelfile structure.
WHEN THINGS GO WRONG: DECISION TREE
Character sounds generic?
→ Check card, add refresh, verify repeat_penalty=1.0, summarize
Too repetitive?
→ Verify repeat_penalty=1.0, disable DRY/XTC, increase temperature, vary prompts
Generates both sides?
→ Add stop sequences ("User:", "\nUser:")
Drifts over time?
→ Summarize, refresh character, reduce context window
Model refuses content?
→ Check system prompt (remove restrictions), use Heretic variant
Too slow?
→ Check GPU usage, close other apps, try Q6_K, reduce context
Won't download?
→ Check disk space (need 25GB), try at off-peak, use Q6_K variant
OpenWebUI can't see model?
→ Verify Ollama running (ps aux | grep ollama), check connection (http://localhost:11434)
USEFUL LINKS
TheDrummer (model creator):
https://huggingface.co/TheDrummer
Bartowski quants (quantized models):
https://huggingface.co/bartowski
Ollama official:
https://ollama.ai
OpenWebUI:
https://github.com/open-webui/open-webui
SillyTavern (popular character chat):
https://sillytavern.app
Techalicious Meetup:
https://www.meetup.com/techalicious-club
Discord communities:
BeaverAI, Ollama community, local AI communities
CONFIGURATION FILES YOU'LL CREATE
1. CHARACTER.modelfile
Your character card and parameters in Ollama format.
Use: ollama create name -f CHARACTER.modelfile
2. CHARACTER.system.txt
(Optional) Just the SYSTEM prompt, useful for copying to OpenWebUI.
3. CHARACTER.examples.txt
(Optional) Keep example dialogues separate for easy editing.
4. CHARACTER.known_facts.md
(Optional) External memory for plot points, relationships, facts.
THE MINDSET
- Characters are better than chatbots because they have stakes. - Bigger context isn't better—right-sized context is. - Your system prompt is a character description, not a contract. - Stop sequences are not optional. - Character drift is fixable (refresh, summarize, reset). - Examples shape the model more than instructions. - The first message sets the template for all responses. - Positive framing works better than negative rules. - A good character can handle disagreement, surprise, and challenge.
The best characters: - Say what they think - Ask interesting questions - Have opinions - Can fail gracefully - Stay consistent through challenges - Make you forget you're talking to an AI
STARTING FRESH: THE 5-MINUTE SETUP
1. Pull the model:
ollama pull hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0
(Wait 10-15 minutes)
2. Create a Modelfile (use template above)
3. Create the model:
ollama create mychar -f mychar.modelfile
4. Test:
ollama run mychar
5. If you want OpenWebUI:
ollama serve
(in another terminal)
open-webui serve
Go to http://localhost:3000
That's it. You're ready to build characters.
DEBUGGING CHECKLIST
Something's broken. Go through this:
Symptom: Won't start
☐ Is Ollama running?
☐ Is model downloaded (ollama list)?
☐ Did you run ollama create?
Symptom: Runs but wrong model
☐ Did you specify the right model name?
☐ Check: ollama list
Symptom: Wrong answers
☐ Is stop sequence set?
☐ Is system prompt correct?
☐ Is repeat_penalty = 1.0?
Symptom: Slow
☐ Check Activity Monitor (is GPU being used?)
☐ Close other apps
☐ Try Q6_K quantization
Symptom: Generic responses
☐ Character card too short/vague?
☐ Context window too large?
☐ Time to add character refresh?
Symptom: Conversation derails
☐ Check context window size
☐ Add character refresh
☐ Summarize and reset
Symptom: OpenWebUI issues
☐ Ollama running?
☐ URL correct (localhost:11434)?
☐ Models visible in ollama list?
☐ Restart OpenWebUI?
Got through the list and still broken? See Section 14: Troubleshooting
REMEMBER
The model is the easy part. The craft is: - Writing a character card that actually captures a person - Tuning context management so they stay consistent - Knowing when to start fresh vs. when to push through - Building examples that show personality, not just information
Master those, and you're building companions, not chatbots.