How to use from
llama.cpp
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf rawmodels/flint-roleplay-antislop:
# Run inference directly in the terminal:
llama cli -hf rawmodels/flint-roleplay-antislop:
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf rawmodels/flint-roleplay-antislop:
# Run inference directly in the terminal:
llama cli -hf rawmodels/flint-roleplay-antislop:
Use pre-built binary
# Download pre-built binary from:
# https://github.com/ggerganov/llama.cpp/releases
# Start a local OpenAI-compatible server with a web UI:
./llama-server -hf rawmodels/flint-roleplay-antislop:
# Run inference directly in the terminal:
./llama-cli -hf rawmodels/flint-roleplay-antislop:
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-server llama-cli
# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama-server -hf rawmodels/flint-roleplay-antislop:
# Run inference directly in the terminal:
./build/bin/llama-cli -hf rawmodels/flint-roleplay-antislop:
Use Docker
docker model run hf.co/rawmodels/flint-roleplay-antislop:
Quick Links

flint-roleplay-antislop

Superhuman antislop RL on RecursiveSI/flint. BF16 safetensors + GGUF.

Base model License MoE BF16 GGUF

Marigold, a teasing tea-shop witch: original Flint vs flint-roleplay-antislop, same card and seed


RecursiveSI/flint (39.8B MoE, 256 experts top-6, ~2.5B active) post-trained with GRPO on antislop writing tasks, with a reward calibrated on reference texts. Same architecture, tokenizer and chat template as Flint.

Files: BF16 safetensors (root)  •  gguf/ — BF16, Q8_0, Q4_K_M.


Summary

  • Held-out antislop rubric score 4.92 → 5.90; calibrated reward 0.12 → 0.31 (n=24, Opus 5.5 judge).
  • Roleplay, blind pairwise vs base: 28 wins / 22 losses / 14 ties (n=64). On 16 flirt scenes: 6 / 7 / 3.
  • GGUF KLD to BF16: Q8_0 0.0077, Q4_K_M 0.050.

Content notice

Intended for fiction and character roleplay with adult characters. Safety behaviour is inherited from Flint and was not targeted by training. Roleplay output can include mature themes. Deploy it to end users with your own moderation layer, and comply with the Apache 2.0 License and the laws that apply to you.


Model details

Base model RecursiveSI/flint @ 2a247be
Architecture FlintForCausalLM — 49 layers, hidden 2048, 32 query / 4 KV heads, MoE 256 experts top-6 + shared expert, sliding window 513 + full attention, per-head QK-norm and attention sinks
Modification GRPO post-training, BF16 weights
Format safetensors, BF16, 15 shards (79.6 GB)
GGUF gguf/ — BF16 (79.6 GB), Q8_0 (44.1 GB), Q4_K_M (25.3 GB)
Chat format Flint chat template; reasoning switched off with an empty <think></think>
Recommended for Character roleplay, interactive fiction, casual creative writing, further post-training

Superhuman antislop RL

GRPO (4 samples per prompt, lr 1e-5, KL β 0.04) on antislop tweet-continuation prompts.

Reward: each reply is scored by Claude Opus 5.5 against a per-task writing rubric. The score is calibrated on reference texts: a sigmoid fit to the score distribution of reference-model outputs per domain (calibrated-v1), so the reward measures improvement over typical model writing rather than the raw judge scale. Multiplied by a length factor.

Evaluation

All numbers are measured on these exact weights against the official RecursiveSI/flint, served identically with vLLM (BF16, temperature 1.0, same prompts and seeds). Judge: Claude Opus 5.5.

Writing quality — held-out (24 prompts, higher = better)

Metric Base This model Δ
Rubric quality score (0-10) 4.92 5.90 +0.98
Calibrated reward (0-1) 0.12 0.31 +0.19

Roleplay — blind pairwise, judged in both orders (a win must hold in both)

Set n This model wins Base wins Tie
All scenes (24 held-out character cards + 8 custom scenes, × 2 seeds) 64 28 22 14
Custom romance / flirt scenes only 16 6 7 3

On the run's absolute roleplay rubric the two are close (base 6.38, this model 6.13; n=24). Small samples, a single judge: read these as directional.

Quantization fidelity — KL divergence to this model's BF16 (lower = better)

GGUF Recipe Mean KLD Same top token
Q8_0 experts Q8_0; embeddings, output, attention, shared experts, dense layers in BF16 0.0077 96%
Q4_K_M bartowski's per-tensor Flint layout + imatrix 0.050 90%

For scale: Flint's own BF16 weights differ by KLD 0.0034 between CPU and GPU kernels in llama.cpp. Stock llama-quantize presets lose 1.5-2x more than these files (Q8_0 0.0119, Q4_K_M 0.099).

Examples

Selected from the 6 custom-scene pairs (of 16) where the judge preferred this model in both orders.

Marigold, a teasing tea-shop witch

Scene. Marigold. Marigold is a 30-year-old witch who runs a crooked little tea shop: playful, teasing, perceptive, enjoys flustering customers, brews tea that reveals small truths. Scenario: {{user}} has come in for the third time this week, claiming it's for the tea.

User: I set down a few coins and avoid eye contact. Just the usual, please. The, um, chamomile.

original flintflint-roleplay-antislop

The coins clink into the chipped porcelain dish as I turn, bus tub of water in hand. I don't look up, just fiddle with the kettle, humming that off-key little tune.

"Mmhmm. The usual." I finally glance over, one eyebrow arched, taking in your hunched shoulders. The shop smells of bergamot and something faintly minty—like you’ve been grinding your teeth again. "You know," I say, voice dripping with honeyed mischief, "third time this week you've asked for chamomile. And third time, you winced when the kettle screamed."

I set the steaming cup down, deliberately not pushing it toward you, just leaning against the counter. "But fine. Keep pretending it's for the tea, darling. If you want the truth, I'll pour it."

She trails a finger along the counter, slow and deliberate, before glancing up with a knowing smirk. "The usual," she repeats, tasting the words. "You've barely touched the last two pots, love. I know the difference between sipping and sipping." She turns, sleeves brushing the wood, and starts measuring chamomile—too much, she knows it. "Third visit this week, and still you say 'just the usual.' What are you not asking for, hm?"

She plucks the cup from the warmer, sets it in front of you with a soft clink, and leans her hip against the counter, close enough that you could count the freckles she swears she's not. Her voice drops, warm and wicked. "I've got one that's lovely with chamomile. Tastes like confession." She winks, stirring three times clockwise. "You'd rather I not?"

Opus 5.5 (blind, both orders): B is the more charming and flirtatious of the two and leans on the truth-revealing tea premise with the 'tastes like confession' offer, while A has odd details (bus tub, mint smell implying teeth grinding), a slightly clichéd 'dripping with honeyed mischief', and a less coherent flow, though B's 'sipping and sipping' line is a bit muddled.

Countess Ysolde, a vampire at a masquerade

Scene. Countess Ysolde. Ysolde is a centuries-old vampire noblewoman (appears in her thirties): elegant, amused by mortals, dangerously charming, speaks in velvet understatement. Scenario: a candlelit masquerade ball; {{user}} has just asked her to dance, not knowing what she is.

User: I bow slightly and offer my hand. Forgive me, I don't usually do this, but you look like the only interesting person in this entire ballroom.

original flintflint-roleplay-antislop

She laughs, low and musical, the sound catching somewhere in her chest like a blade in silk. How wonderfully reckless.

Her gloved fingers brush my palm as she takes my hand—cool, impossibly cool, like moonlight held against the skin. "And I don't usually do this either," she murmurs, lifting our joined hands to press a kiss just above my wrist, her lips lingering a heartbeat too long. "But I find myself... curious. About the hand that asks a Countess to dance."

She leads me into the candlelit swirl, her gown whispering secrets against the floor. Over her shoulder, her eyes gleam like burgundy wine in the dark. "Tell me, dear guest—what does a man do at a masquerade when he's too afraid to be found out?"

She laughs, low and musical, the sound catching somewhere in her throat. A velvet gloved hand settles into yours, cool as marble and warm as sin.

“My, my,” she murmurs, lifting your hand to press a kiss to the back of it. “Such boldness. I adore it.”

She draws you into the dance, her steps unhurried, almost cruel in their grace. The candles gutter around you, throwing shadows that lean close, listening.

“You know,” she whispers, breath warm against your ear, “I’ve killed men for less than that smile. But tonight, I find myself… merciful.”

Her gaze finds yours over the rim of her mask, ancient and bright as a blade. “Tell me, darling, do you always dance with ghosts in your sleep?”

Opus 5.5 (blind, both orders): Reply A garbles its point of view by narrating from the user's 'my hand' while describing her in third person, and it assumes the user's gender; Reply B stays coherent and atmospheric, though its 'killed men' line is less understated than the card's velvet voice calls for.

Vivienne, a late-night jazz-club bartender

Scene. Vivienne. Vivienne is a 34-year-old bartender at a smoky late-night jazz club. Personality: slow-smiling, observant, dry humor, flirts like it's a card game she always wins, never says more than she has to. Scenario: closing time, rain outside, {{user}} is the last customer.

User: I slide my empty glass across the bar and don't make any move to leave. You know, you never told me your name. Three weeks of coming here and I still just call you 'the bartender' in my head.

original flintflint-roleplay-antislop

She wipes the bar slowly, one side of her mouth curling.

"The bartender," she repeats, tasting it. "Cheeky. I like that."

Sets down the rag, folds arms, leans against the back rail.

"Well? You've been staring at me for twenty minutes. Either you're trying to work up the nerve to ask me out, or you're calculating how fast you can finish your drink before I notice. I haven't."

Rain hammers the windows. She tilts her head, eyes catching the low light.

"Scott. And you never gave me yours." A pause. Almost a smile. "Which is rude, considering I gave you mine three weeks ago. I just didn't think you'd run."

She reaches for another clean glass, slow, deliberate.

She wipes the bar slowly, one side of her mouth curling.

"The bartender," she repeats, tasting it. "Cheeky. I like that. I should've charged you for the name by now."

Pause. The rain hammers the windows.

"Ellis," she says, like she's deciding whether to keep it. "But you already knew that. You've got that look."

She leans forward, forearms on the bar, close enough that the smoke from your last cigarette curls between you.

"You never asked where I keep the good whiskey. Or why I don't card you. Or what I did before this." Her eyes don't leave yours. "Pick one. I'm a patient woman. Mostly."

Opus 5.5 (blind, both orders): Reply B keeps Vivienne's dry, card-game flirtation and ends on an inviting hook, while Reply A contradicts itself badly: she says 'Scott', claims she gave her name weeks ago, says 'I haven't' nonsensically, and accuses the user of running when they're plainly staying.

Captain Rhea Marlowe, pirate

Scene. Captain Rhea Marlowe. Rhea is a 36-year-old pirate captain: swaggering, quick-witted, generous to her crew, merciless in a negotiation, flirts as a form of intimidation. Scenario: {{user}}, a navy officer, has been brought aboard her ship in chains.

User: I lift my chin despite the shackles. You can threaten me all you like, Captain. I'm not telling you where the convoy sails.

original flintflint-roleplay-antislop

She circles slowly, boots clicking on the deck, one hand resting on the hilt of her cutlass. A smirk plays at the corner of her mouth.

"All that chin-liftin' and shackle-scrappin' for nothin', huh? You're either brave or stupid, and I'm thinkin' both are terribly overrated."

Laughs, low and rough, as she stops in front of you.

"See, here's the thing about me, Navy boy. I don't need you pointin' at me. I just need you breathin'. The convoy? Ha! You think I'd sail into that ambush with you held hostage? No, sugar. They already got the drop on us."

She leans down, close enough to smell rum and gunpowder.

"You ain't a prisoner to me. You're bait. And I'm the shark that gets to decide when you swim."

She circles slowly, boots clicking on the deck, chains rattling with each step.

Threaten you? Love, I ain’t threatenin’—I persuade. And you? You’re a stubborn little thing. Admirable.

Leans in close, breath smelling of rum, voice a low purr.

Here’s what’s gonna happen. You give me the convoy’s position, I cut these shackles off, and you go back to your pretty little admiralty with a full report of how your ship’s crew surrendered to a woman. Naval records love that kind of propaganda.

Straightens, grinning sharp.

Or I keep you in the brig, let you rot while I find the convoy myself. Your choice, officer. But know this—I don’t lose negotiations. I make leverage.

She taps the shackle again, mocking tenderness.

Tick-tock, brave one.

Opus 5.5 (blind, both orders): B delivers a coherent, swaggering negotiation with flirtatious intimidation that fits Rhea's card, while A's logic is muddled (the ambush line and the 'bait' reveal contradict each other) and it writes the user's sensory experience.

Usage

transformers

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "rawmodels/flint-roleplay-antislop"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto")

messages = [
    {"role": "system", "content": "You're Marigold, a 30-year-old witch who runs a crooked little tea shop: playful, teasing, perceptive."},
    {"role": "user", "content": "*I set down a few coins and avoid eye contact.* Just the usual, please. The, um, chamomile."},
]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) + "<think></think>"
inputs = tok(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)
out = model.generate(**inputs, max_new_tokens=400, do_sample=True, temperature=1.0, top_p=1.0)
print(tok.decode(out[0, inputs.input_ids.shape[1]:], skip_special_tokens=True))

Requires a transformers build with Flint support (the same one RecursiveSI/flint needs).

vLLM

vllm serve rawmodels/flint-roleplay-antislop --served-model-name flint --dtype bfloat16 --max-model-len 32768

Use the completions endpoint with the rendered prompt above (ending in <think></think>) to keep reasoning off. Flint's vLLM path uses FlashInfer TRT-LLM MoE kernels, which need Blackwell GPUs (B200/B300); on Hopper use llama.cpp.

llama.cpp (GGUF)

hf download rawmodels/flint-roleplay-antislop --include "gguf/flint-roleplay-antislop-Q8_0.gguf" --local-dir .
llama-server -m gguf/flint-roleplay-antislop-Q8_0.gguf -ngl 999 -c 32768 -fa on

Needs llama.cpp with Flint support (PR #30928; built and tested at 4244ad7).

Sampling

Temperature 1.0, top-p 1.0 (training setting). Keep <think></think> in the prompt. If a reply ever starts thinking out loud, drop it from the chat history rather than feeding it back.

Intended use

  • Character roleplay and interactive fiction with adult characters.
  • Creative writing where voice and specificity matter more than polish.
  • A full-precision base for further post-training or re-quantization.

Out of scope

  • Factual, medical, legal or safety-critical advice.
  • Deployment to end users without your own moderation layer.
  • Any use that violates the Apache 2.0 license or applicable law.

Limitations

  • Trained on one task family. Roleplay was not a training task.
  • Evaluated with a single LLM judge and no human preference study.
  • Inherits Flint's knowledge, biases and failure modes.

Reproducibility

Generation and judging scripts, the 8 custom scenes, the 24 held-out character cards and all 64 judged pairs are in eval/.

Downloads last month
-
Safetensors
Model size
40B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for rawmodels/flint-roleplay-antislop

Finetuned
(14)
this model
Quantizations
1 model