SmolGPT-Fables v1

SmolGPT-Fables turns a simple idea into a short story with one to six scenes. Tell it who the characters are, where the story happens, and how you want it to end. It handles the story structure for you.

Open SmolGPT-Fables Studio · Browse the training stories

What it does

  • Writes short English stories and fables with 1–6 numbered scenes.
  • Accepts separate Name and About them fields for each main character.
  • Tries to preserve requested names, setting details, important objects, and endings.
  • Runs with Transformers, llama.cpp-compatible apps, or Core ML on Apple devices.

See it in action

Open SmolGPT-Fables Studio, choose the model and number of scenes, then describe each character in their own card. The Studio returns a clean story preview and a Markdown download.

Try a story

The easiest way to use the model is SmolGPT-Fables Studio. You do not need to write Markdown or learn a prompt format.

Story idea: A paper moth leads a mapmaker to a neighborhood that vanished from every map.
Genre: Cozy fantasy
Scenes: 4

Name: Mina Vale
About them: A careful apprentice mapmaker who wants credit for her work.

Name: Orin Reed
About them: A retired courier who remembers roads that no longer appear on maps.

Setting: A rain-bright canal city whose maps change at midnight.
Ending: Mina restores the neighborhood without exposing the people who protected it.

The expected output looks like this:

### Scene 01: The Map That Moved

Mina Vale's brass compass turned away from north and followed a paper moth
through the archive window.

### Scene 02: The Unwritten Road

Orin Reed recognized the vanished towpath while Mina checked each bridge
against the changing map.

This short excerpt shows the expected format. It is not an evaluated generation or a promise that every response will use these words.

Use it with Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "neonforestmist/smolgpt-fables"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    torch_dtype="auto",
)

messages = [
    {
        "role": "user",
        "content": (
            "Write a two-scene cozy fable about Mina Vale, a careful mapmaker, "
            "and Orin Reed, a retired courier. Set it in a canal city at "
            "midnight and end with Mina restoring a vanished neighborhood."
        ),
    }
]
prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=700)
new_tokens = outputs[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))

Downloads

Pick File Size Best for
Standard model.safetensors 3.42 GB Transformers and full model precision
Compact SmolGPT-Fables-v1-Q4_K_M.gguf 1.06 GB Runtimes that support Q4_K_M GGUF models
Core ML coreml/SmolGPT-Fables-v1-CoreML-INT4.mlpackage 0.96 GB Native Apple apps on iOS 18 or macOS 15 and later

The evaluation results below apply to the standard Transformers model. The GGUF version has not been evaluated separately. The Core ML package passed a stateful prediction smoke test and matched the FP16 model's top token.

Use it in an Apple app

The Core ML package is stored in this repository so a SwiftUI project can stay small. An app can download the package once, verify it with coreml/coreml-checksums.sha256, compile it on the device, and cache it for offline stories.

The package uses INT4 weights, a 2,048-token context, and a stateful key/value cache. Its minimum deployment versions are iOS 18 and macOS 15.

How well it works

The Studio-focused check is strong on the behavior this interface needs:

Check Result
Stories containing every requested full name 60 / 60
First name combined with the wrong surname 0
Studio behavior checks All passed

A stricter writing-quality suite passed every check on 32 of 60 stories. Its lowest measured document-diversity score was 0.839416, just below the required 0.850000. The most common misses were incomplete causal resolution and scene length. These measurements are useful signals, not guarantees for every story.

Known limits

  • Names and requested scene counts are learned behavior, not hard guarantees.
  • Longer stories can lose continuity or end weakly.
  • The model can repeat phrases or flatten cultural nuance.
  • It is English-focused and intended for short stories rather than factual advice.
  • Review and edit generated writing before sharing it.

Training data

SmolGPT-Fables v1 was adapted from HuggingFaceTB/SmolLM2-1.7B-Instruct using the published neonforestmist/smolgpt-markdown-stories dataset. The synthetic and curated stories cover varied genres, settings, character descriptions, required details, and endings.

Technical checks and exact artifact hashes

The published BF16 artifact contains 1,711,376,384 parameters across 218 tensors. It uses micro update 8 over adapter update 68 and the smolgpt-fables-smollm3-chat-v5 prompt contract.

Artifact SHA-256
model.safetensors 00d2c2b4b01ce0a13fbec5ba79f4fb843a751af2780e939ab431a092f1789207
training_manifest.json 22b90db42797c891bb69ac526ff237ef973be05827722ae83d2e3fdb794702ea
SmolGPT-Fables-v1-Q4_K_M.gguf 6d4d38e9075bcae3cfe59ed37c0acc3425ad31296de7530611e63628424a7c35
GGUF quantization manifest 87da452fd6df5658b8e9f07844a84993f656ae1b3f580e560eba018a37cc5a2f
GGUF checksums file 9ca968f9719327c941d2e1766cca7d0520a3732eefb9a92efc47cfb240bba761
Core ML package tree ea250d4ed2a05d5dc0ad9a6f4b4fbbddf39fd3184963b784cea8f46e4f0d3ab3
Core ML INT4 weights 2d9e564d652618ee3ea7309b01998bdcfe775c0cc35adeb6fe9fb5d8c22a5fa3

The GGUF file contains 218 tensors and is 1,055,609,376 bytes. It was converted with llama.cpp commit aff6eb6e7503538fec1532dec2f584bc7a4a4e4d.

Strict-suite diagnostic occurrences:

Diagnostic Count
Incomplete causal resolution 17
Scene length 16
Character-role retention 1
Required detail 2
Scene heading 2
Unresolved ending 1

Character-name audit report SHA-256: 38a1ba15d6ae8545ae71a9953077d0626aba5c85ccf7f3844514bba04188f3a6.

License

Apache-2.0. Review the SmolLM2-1.7B-Instruct model card alongside this one when assessing intended use and limitations.

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

Model tree for neonforestmist/smolgpt-fables

Quantized
(114)
this model

Dataset used to train neonforestmist/smolgpt-fables

Space using neonforestmist/smolgpt-fables 1

Collection including neonforestmist/smolgpt-fables