Instructions to use owenmorgan/bookforge-rubric with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use owenmorgan/bookforge-rubric with 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 owenmorgan/bookforge-rubric:Q4_K_M # Run inference directly in the terminal: llama cli -hf owenmorgan/bookforge-rubric:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf owenmorgan/bookforge-rubric:Q4_K_M # Run inference directly in the terminal: llama cli -hf owenmorgan/bookforge-rubric:Q4_K_M
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 owenmorgan/bookforge-rubric:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf owenmorgan/bookforge-rubric:Q4_K_M
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 owenmorgan/bookforge-rubric:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf owenmorgan/bookforge-rubric:Q4_K_M
Use Docker
docker model run hf.co/owenmorgan/bookforge-rubric:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use owenmorgan/bookforge-rubric with Ollama:
ollama run hf.co/owenmorgan/bookforge-rubric:Q4_K_M
- Unsloth Studio
How to use owenmorgan/bookforge-rubric with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for owenmorgan/bookforge-rubric to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for owenmorgan/bookforge-rubric to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for owenmorgan/bookforge-rubric to start chatting
- Pi
How to use owenmorgan/bookforge-rubric with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf owenmorgan/bookforge-rubric:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "owenmorgan/bookforge-rubric:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use owenmorgan/bookforge-rubric with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf owenmorgan/bookforge-rubric:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default owenmorgan/bookforge-rubric:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use owenmorgan/bookforge-rubric with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf owenmorgan/bookforge-rubric:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "owenmorgan/bookforge-rubric:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use owenmorgan/bookforge-rubric with Docker Model Runner:
docker model run hf.co/owenmorgan/bookforge-rubric:Q4_K_M
- Lemonade
How to use owenmorgan/bookforge-rubric with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull owenmorgan/bookforge-rubric:Q4_K_M
Run and chat with the model
lemonade run user.bookforge-rubric-Q4_K_M
List all available models
lemonade list
BookForge Rubric
A block-category model for book page layout. Given every text block on a page โ its geometry, type size, line count and text โ it labels each one with what it is: body text, a chapter opening, a running head, a footnote, a caption, a table fragment, and so on.
BookForge uses it to turn a scanned book into a clean EPUB: running heads and page numbers have to be dropped, footnotes separated from body prose, chapter openings found (they become the EPUB split points and the M4B chapter marks), and tables and indexes kept out of the narration.
The thirteen categories
body title chapter heading subheading
quote caption footnote header footer
image table list
list is entry-per-line structured content โ a table of contents, an index, a
bibliography, a glossary, a chronology, ordinary bullets. table stays table
even when OCR has shredded it into fragments.
Files
| File | Size | Notes |
|---|---|---|
rubric-v3-4b-Q4_K_M.gguf |
2.5 GB | Qwen3-4B QLoRA fine-tune, merged and quantized. The current model. |
Running it
Serve with llama-server and generate on /completion โ not the chat
endpoint:
llama-server --model rubric-v3-4b-Q4_K_M.gguf -c 8192 -np 1
curl -s http://127.0.0.1:8080/completion -d '{
"prompt": "<the fully-templated prompt>",
"temperature": 0,
"n_predict": 2048,
"stop": ["<|im_end|>"],
"cache_prompt": true
}'
The prompt must arrive verbatim. Training used Qwen3's chat template with
thinking disabled, which inserts an empty <think>\n\n</think> block that stock
templates omit โ so a server that builds the prompt itself feeds the model a
shape it never saw, and the answers degrade in a way that looks like a bad model
rather than a bad client. /completion takes the prompt as given; chat endpoints
do not. cache_prompt is worth setting: every page shares the same long system
prefix.
Answers are one line per block, <block-id> <category>, terminated by
<|im_end|>. Blocks the model does not answer for are left unlabelled rather
than guessed.
Context
The longest real page measured 6,529 tokens, so -c 8192 covers a page with room
for the answer. Set it explicitly: a host with a smaller default silently
TRUNCATES an over-long prompt, and the model then answers about blocks it never
saw with nothing reporting an error.
Versioning
The v3 in the filename is load-bearing. It selects the prompt format and the
legal class list on the client side โ v1 and v2 were trained on different prompt
shapes and an earlier taxonomy (which included positional front_matter /
back_matter classes, retired because they described where a page sat rather
than what was on it). A v3 checkpoint served under a name without a version reads
as v1 and gets a prompt advertising a taxonomy it never saw.
New versions are added as new files here; old ones are kept so a client pinned to one keeps working.
Training
QLoRA (NF4) on hand-labelled book pages, merged to fp16 and re-quantized to
Q4_K_M. The labels come from books labelled a page at a time in BookForge's PDF
editor. Coverage across books, not raw block count, is the binding constraint:
the 4B is a clear win over a 0.6B on the same data (+0.10 macro-F1), but table
and subheading still score near zero because too few books in the set contain
them.
- Downloads last month
- 21
4-bit
8-bit
16-bit