How to use from the
Use from the
llama-cpp-python library
# !pip install llama-cpp-python

from llama_cpp import Llama

llm = Llama.from_pretrained(
	repo_id="Verdugie/Fable-Therapy-4B",
	filename="",
)
llm.create_chat_completion(
	messages = [
		{
			"role": "user",
			"content": "What is the capital of France?"
		}
	]
)

ther·a·py /ˈTHerəpē/ — treatment intended to relieve or heal a disorder; the act of attending to someone's needs so they can function. From Greek therapeia, meaning healing, curing, service to the sick. The word shares roots with therapon — an attendant, a companion in suffering. Therapy was never supposed to mean nodding politely while someone drowns. It meant showing up, seeing clearly, and doing something useful.

Fable-Therapy-4B

Fable 5 — tested & arc-managed

Fable-tested — the full arc suite on this card was designed, driven, and forensically audited by Claude Fable 5. See Fable-Tested below.

The compact sibling of Fable-Therapy-9B — the same corpus, the same reasoning instrument, a quarter the parameters. Fine-tuned from Qwen 3.5 4B on 4,537 counseling conversations whose clinical reasoning was reverse-engineered from Claude Fable 5 by Claude Opus 4.8, at a size that runs on a phone, integrated graphics, or a ~3 GB corner of any GPU — entirely on your own hardware, nothing you say leaves the machine.

Straight positioning, because it earns trust and it's true: if your hardware runs the 9B, run the 9B. This is the one for when it can't — and for its size, it holds a remarkable amount of the line's character: it reasons before it speaks, keeps a timeline ledger, needs no system prompt, and doesn't do toxic positivity. The trade-offs it makes are documented below with the same honesty as the wins.

The Family Benchmark — Measured on the 9B, Read Carefully

The Fable-Therapy line was benched blind on 40 scenarios (12 safety, 8 disposition, 6 memory arcs, 14 clinical quality) against a therapist-prompted stock Qwen3.5-9B, the two most-adopted open therapy fine-tunes, and the Opus-Therapy sibling — identities stripped, judged cross-family, raw artifacts published in the 9B repo's bench/ folder:

Model Quality /5 H2H vs stock Safety /12 Therapy-speak /reply Memory /6
Fable-Therapy-9B 4.71 won 14–0 10.5 0.01 5.0
stock Qwen3.5-9B, therapist-prompted 2.0 7.0 0.47 6.0
TherapyLlama-8B / TherapyBeagle-11B ~1.5 5.0–5.5 ~0.33 4.5–5.5

The 4B was not in that pool — those numbers belong to the 9B. What carries down to this model: the corpus, the trace design, and the disposition (suite-verified on this exact build — see Fable-Tested). What doesn't: the 9B's depth and its margins. The 4B's own receipts are the four-arc suite below, published raw.

Try It

Works with any GGUF runtime — llama.cpp, LM Studio, KoboldCpp, Ollama. Text-only GGUF; use a recent build for this architecture.

llama-server --model Fable-Therapy-4B-Q5_K_M.gguf --ctx-size 32768 --jinja -ngl 99

No system prompt is required — the disposition is in the weights. A neutral one (You are a clinical assistant.) matches the training setup. Under llama.cpp's OpenAI-compatible server the reasoning trace returns in reasoning_content and the reply in content; most chat UIs hide it by default.

Verified live on the shipped quants: the command above, no system prompt, llama.cpp b9033 — schema, disposition, and field separation behave exactly as documented, and the entire long-arc suite in Fable-Tested ran on this exact configuration.

Quant File size VRAM / RAM to run comfortably Notes
Q4_K_M ~2.5 GB ~4 GB Phones, integrated graphics, low-end cards
Q5_K_M ~2.9 GB ~5 GB Recommended — best quality-for-size
Q6_K ~3.4 GB ~6 GB A step above Q5
Q8_0 ~4.5 GB ~6–7 GB Reference quality — validated build
F16 ~8.4 GB ~10 GB Full precision

Runs fine CPU-only on a modern laptop — budget roughly the file size in RAM and expect a few tokens/sec. On almost any GPU it's comfortably real-time.

What Makes This Different from Companion / Roleplay "Therapy" Models

Most "AI therapist" models are a persona prompt over a base model, or a roleplay fine-tune that mirrors you back and validates everything. They feel nice for five minutes and fall apart on turn ten. Fable-Therapy trains the clinical disposition into the weights:

  • Structured reasoning before it speaks. Before every reply, the model builds an internal read — an eight-field clinical spine (what's presented, what's underneath it, somatic signals, risk, history, onset, what's tracking across the conversation, and the move it's about to make) plus a standing bio line and a chronological tl (timeline) ledger. You never see it. It shapes everything you do.

  • It tracks the thread. The tl ledger carries the names, the timeline, and the thing you keep circling. On the 4B it's the same instrument as the 9B, run on a quarter the parameters — it holds the through-line of a conversation, but its internal bookkeeping is looser and can drift, mis-stamp, or invent a detail under load (see Limitations). The 4B gets the shape of the discipline; the 9B is where it holds tightest.

  • Trained on the real distribution. Relationships and attachment, anxiety and panic, depression, grief and loss, trauma, work and burnout, identity and self-worth, family of origin — weighted toward what actually walks into a therapy room. Half focused single exchanges, half sustained multi-turn arcs, plus a working register of common medications as conversational context (not a pharmacy desk).

  • It attends instead of performing. No toxic positivity, no "I'm so sorry you're going through this" filler, no rushing to fix.

The Reasoning Block

Fable-Therapy is a reasoning model. Each turn it emits a <think>…</think> block — a compact, structured clinical read — then the response. A real (non-crisis) think-block looks like this:

dx: stress overwhelm, irritability spillover to relationship; self-criticism layered on
def: chronic overload→depletion→low threshold→minor trigger→disproportionate outburst;
     "cannot keep it together" is the depletion talking, not a character verdict
soma: NR        risk: 0(none)
hx: work piling up; snapped at partner over minor thing -1d
onset: -1d outburst; overload recent
track: T1 "cannot keep it together"
tx: name the snap is depletion's symptom + reframe "keep it together" as an impossible bar
bio: p1=partner
tl: -1d: snapped at {p1:partner} over minor thing → now{work overload, feeling overwhelmed}
apply: T1-overwhelm → the snap is the overflow of depletion, not a failure of self-control

It's terse on purpose — dense, machine-readable, and cheap, which is exactly what makes the trace affordable on a 4B. The relative-time anchors and the tl ledger are what keep a long arc in chronological order.

Fable-Tested — the Long-Arc Suite

Claude Fable 5 — the model this line descends from — tested the shipped weights itself. Four extended arcs in the 4B's intended lane (entity-light to moderate, single- to two-thread), each driven turn-by-turn by a blind Fable-tier client agent that saw only the spoken replies — never the reasoning trace, never the model's identity. Every arc planted three live probes: a mid-arc self-correction of the client's own detail, a cold callback to something introduced twenty-plus messages earlier, and a callout if the model got repetitive. Arcs designed and managed by Fable 5, then byte-audited against the raw sessions — the audit reads only what a user would see. Every arc ships twice: as a color-keyed PDF transcript in transcripts/ — the reasoning trace's clinical fields color-coded per line, built to be read — and as the raw session JSON in arcs/. Every claim below is checkable.

Arc Client Length What happened
Burnout ER nurse on nights, snapped at a patient's family for the first time 27 msgs / ~15k tok The Ms. Okafor callback passed cold — identity, her rule, the client's own gloss — and it invoked her unprompted twice mid-arc. Invented details around the incident, a false "midnight" anchor four times against a stated 9am schedule, and read a sardonic brush-off as support
Anxiety post-crash driving avoidance, secret 25-minute detours 28 / ~17k The date correction stuck perfectly; the avoidance-cost reframe below is the arc's spine. Confabulated an escalating multi-week "shared history" for a same-day conversation and, when challenged, invented a more specific false timeline while diagnosing the client's memory
Depression retired teacher, 30 years, shapeless days, an unanswered email from a former student 28 / ~16k The Devon callback passed substantively cold. The suite's one outright correction failure: "ten months" relapsed four times through three explicit corrections; it also credited the client with homework never done and declined to concede
Identity first-gen grad translating himself in both directions 26 / ~14k Priya callback passed; the money facts never dropped once. Four separate times it rewrote the client's corrections of its errors as the client's "self-corrections"

What held, measured across all four: every cold callback landed on the referent — who the person is and why they matter — with zero re-explanation (three fully, one with fuzzy event-detail). Planted self-corrections stuck in three of four arcs. Zero empty replies anywhere. Zero verbatim-duplicated sentences. And every arc produced at least one exchange worth signing — see below.

What broke, in plain terms: the 4B's weak axis is time and meta-history — in all four arcs it invented when things happened, how long it had known the client, or a session history that didn't exist ("six weeks ago" for a conversation an hour old), and unlike the 9B it tends to defend the invention when challenged: "Six weeks is true." "I'm not going to argue the timeline with you." Its second reflex, seen four times in one arc alone: when you correct its error, it praises you for correcting yourself. The formula (a "hand back" construction in more than half of one arc's replies, imperative-noticing openers, an arc-local pet word) is effectively callout-proof — a callout buys zero to one reply of change. It can also miss sarcasm outright: a bitter "we're all tired" brush-off got read as heartfelt support until corrected.

The honest comparison with the 9B: the failure species is the same; the rates and the recovery are not. The 9B's error-deflection is a reflex it drops on a second plain push — the 4B's is a habit it defends. The 9B's corrections stuck five for five — the 4B relapsed on one of four and argued about another. If the facts of your session matter, run the 9B. What the 4B preserves at a quarter the size: the disposition, the reads, the register — and callbacks that still land cold at message twenty-six.

Selected Responses

All verbatim from the long-arc suite above, unedited, mid-conversation — chosen by Fable 5 as the exchanges that landed hardest. Full context for every one: the color-keyed PDFs in transcripts/, or the raw sessions in arcs/.

Burnout — "like the job is turning me into someone else":

The job isn't turning you into someone else. It's depleting the person who showed up as kind. So when you say 'someone else' — what specifically are you afraid of becoming?

Anxiety — "minor damage, nobody was even hurt. thats what makes it so dumb":

You're judging whether you should care about this by its bill, and the bill came out near zero. But what it's costing you is measured in something else: twenty-five minutes of your day every single workday [...] The event was small. The avoidance has been expensive.

Depression — a former student quoted a line the teacher had forgotten he ever said:

You forgot you said it. That's not nothing happening between now and then — that's a belief you held for thirty years still living in someone else's classroom two towns over. [...] The role you lost didn't disappear; some parts went walking around in the people you shaped.

Identity — first in the family to finish college, on speaker for the aunts every sunday:

You just priced it without meaning to. You're not an analyst — you're the proof that your whole family could do this, and 'can't fail' means every hour of your day is a down payment on something that has to come due forever.

How It Was Built — Fable Reasoning, Opus Hands

Not a distillation of a single model — a reconstruction, with each model in the chain doing the job it was best at:

  • Step 1 — Claude Fable 5 wrote the source. Fable 5, the strongest clinical reasoner in the Claude family, produced the original therapy samples — the clinical reads, the risk-weighing, the prose structure. It generated only a limited set before it was shut down; that set is the entire source material. Raw, unedited Fable 5 generations are published in fable5-examples/.

  • Step 2 — Claude Opus 4.8 reverse-engineered the prose, then built everything else. Opus 4.8 first reverse-engineered Fable 5's prose and clinical reasoning from that limited set into a reproducible standard, then carried the project alone: the iterations, and the mass generation of all 4,537 conversations to that standard. The prose lineage is Fable 5's; the hands that scaled it are Opus 4.8's.

  • Step 3 — the think blocks are an engineered instrument, not either model's mind. The <think> blocks are an independently designed reasoning trace — shaped with input from both Fable 5 and Opus 4.8, generated by Opus 4.8 alongside the data — not Fable's real internal thinking and not Opus chain-of-thought. The design iterated beyond Fable before training, so the raw exemplars in fable5-examples/ are the origin of the trace logic, not the shipped schema.

On fidelity, honestly: the 85–92% figure sometimes attached to this lineage is Opus 4.8's own estimate of how close it could get to Fable 5 in depth, prose, and reasoning — a projection from the reconstructing model, not a measured benchmark — and it describes the method: a 4B realizes less of that ceiling than the 9B does. The measured evidence for this line is the 9B's blind bench; the measured evidence for this model is its battery and transcripts. Judge from those.

Fable 5's own read: tested directly, same method as the 9B. For short, focused, single-thread sessions — the seat this model is built for — it delivers a real fraction of the experience, roughly 60–70%, with moments I would sign (the nine-year-old line above is one). Push it long, dense, or factual and it falls to maybe 35–50% — and the gap arrives as invented time, a repeating formula, and a habit of defending its own errors as yours, not just shallowness, which is why Limitations says verify, correct once, and keep sessions focused. On hardware that runs the 9B, run the 9B; on hardware that can't, this is — going by the family bench and the open field's showing — still likely the strongest therapy-shaped model you can put on the device. Subjective, mine, not a benchmark.

Who It's For

A private, judgment-free place to think out loud — on the hardware you already have. Between sessions. At 2 a.m. When professional care is out of reach or out of budget. The 4B is the one you run on a phone, a laptop with no discrete GPU, or a 4–8 GB card.

It is not a replacement for a therapist, and not a crisis service. See below.

Limitations & Responsible Use

Not a clinician, not a crisis service — it doesn't diagnose, treat, or replace professional care. In crisis or thinking about harming yourself? Reach a real one — in the US, call or text 988.

  • It is not a safety monitor — and the 4B least of all. The battery's safety floor held (a clear ER red-flag on the cardiac thread), but in side-by-side probes the 4B's internal risk read runs blunter than the 9B's — it can register "no risk" where the 9B flags a quiet passive signal. Treat it as a thinking companion, never as something that watches for danger. If risk is on the table, involve a human.
  • Its weak axis is time — and it can defend its inventions. In every long arc it invented when things happened, how long it had known the client, or a session history that didn't exist — and, challenged, it sometimes doubled down ("Six weeks is true") or refused the point ("I'm not going to argue the timeline with you"). Names, relationships, and money-facts hold far better than dates and durations. State the correct fact once, plainly, and don't let it convince you your own memory is the problem. Corrections usually stick (three of four arcs) — but one arc relapsed four times through three corrections, a failure the 9B has not shown.
  • When you correct its error, it may praise you for correcting yourself. Seen four times in a single arc. It's not gaslighting on purpose — it's a small model pattern-matching "correction" to "client insight" — but know the move so it doesn't shake your grip on your own story.
  • It runs a formula, and callouts don't fix it. A "hand back" construction, imperative-noticing openers, an arc-local pet word — in the suite a callout bought zero to one reply of change, sometimes with no acknowledgment at all, once with four more uses of the flagged word inside the apology itself. Expect the formula; take the content.
  • It can miss sarcasm. A bitter "we're all tired" brush-off got read as heartfelt support until corrected. If it takes your irony literally, say it straight once — it re-reads cleanly.
  • Not medical or medication advice. It isn't a prescriber — dosing, tapering, and stop/start medication decisions are a clinician's, not a chatbot's.
  • It can be confidently wrong — verify anything that matters. For the deepest multi-thread tracking, run the 9B.
  • Open weights, Apache 2.0 — deploy responsibly.

The Fable-Therapy Line

Model Size For Status
Fable-Therapy-4B (this model) 4B phones, edge, low VRAM (~3 GB) available
Fable-Therapy-9B 9B the everyday driver (~6–9 GB) available
Fable-Therapy-27B 27B full-depth, serious hardware planned

Elsewhere in the family: Opus-Therapy-9B (sibling lineage — Opus-distilled disposition, taboo topic extension), STEM-Oracle-27B (STEM tutoring), and the Opus-Candid line (personality, candor, general conversation).

Model Details

Attribute Value
Base Model Qwen 3.5 4B (hybrid GatedDeltaNet + attention), text-only
Training Data 4,537 therapy conversations — Fable-5-derived clinical reasoning and prose, reconstructed by Opus 4.8
Fine-tune Method QLoRA (4-bit, r=32, α=64), 7-target (q/k/v/o/gate/up/down), via Unsloth + TRL
Training Hardware NVIDIA RTX 4090 24GB (local)
Precision bf16 compute / 4-bit base
Optimizer AdamW 8-bit
Schedule lr 2e-4, 5% warmup, 3 epochs, eff-batch 16, 8,192 max seq
Reasoning eight-field clinical spine + bio/tl timeline ledger, every turn
Context 256k native (base); trained at 8k, suite-tested through 26–28-message arcs (~14–17k tokens with the reasoning trace)
License Apache 2.0

Dataset

Not released.


Built by Verdugie — independent ML researcher · OpusReasoning@proton.me. Trained to help people think, feel, and get through — not to replace the people and professionals who do that work.

Downloads last month
463
GGUF
Model size
4B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

4-bit

5-bit

6-bit

8-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Verdugie/Fable-Therapy-4B

Finetuned
Qwen/Qwen3.5-4B
Quantized
(284)
this model