anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Turns a state and a set of typed questions into decisions, returning a probability for every option of every question in one pass, with no free text. A 9B multimodal model from Cloudflare for developers.
Clef-Flash is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.
pip install -U huggingface_hub hf download Cloudflare/clef-flash
Clef-Flash is a 9B multimodal model from Cloudflare, post-trained from Qwen3.5-9B. You give it a state and a list of typed questions. The state can be plain text, a JSON record, pictures or video. In one pass the model gives back a probability for every answer option of every question. It writes no free text, so there is nothing to parse.
Developers who want a model to make routine decisions, such as sorting messages or judging records, and want probabilities back instead of prose.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Customer support | Support engineers | Route and rank incoming messages | Deciding which team should handle a message |
| Finance operations | Billing teams | Classify records by status | Judging whether an invoice is overdue |
| Software development | Backend developers | Add a decision step to a service | A yes or no check on a message's urgency |
| Content review | Operations teams | Judge images and video against rules | A typed question about a picture |
If you want a model that writes answers or chats, you can skip it, because it only returns option probabilities.
| Use case | Who | What they get back |
|---|---|---|
| Message triage | Support teams | A probability for each team or urgency option |
| Record checks | Finance teams | Probabilities for choice, score or yes-no questions |
| Multimodal decisions | Developers | Probabilities from text, JSON, images or video input |
pip install -U huggingface_hub hf download Cloudflare/clef-flash
Build a record with a state and a set of questions. Each question has a type, an instruction and, for choice questions, the criteria for each option. Encode the record, run the model and apply a softmax to each question's logits to get probabilities.
import sys
import torch
from huggingface_hub import snapshot_download
path = snapshot_download("Cloudflare/clef-flash")
sys.path.insert(0, path)
from joint_schema_model import collate_records, encode_record, load_release_model
model, processor = load_release_model(path, device="cuda")
record = {
"state": {"invoice": {"vendor": "Acme", "total": 1250.0, "currency": "USD", "status": "overdue"}},
"questions": {
"status": {
"type": "choice",
"instructions": "What is the invoice status?",
"criteria": {"paid": "Invoice is paid.", "overdue": "Invoice is past due.", "draft": "Not sent."},
},
"large": {"type": "noul", "instructions": "Is the total above 1000 USD?"},
},
}
encoded = encode_record(processor.tokenizer, record, processor=processor)
batch = collate_records([encoded], processor.tokenizer.pad_token_id, torch.device("cuda"))
with torch.inference_mode():
logits = model(batch)[0]
for question, question_logits in zip(encoded.questions, logits):
probabilities = question_logits.float().softmax(-1).tolist()
print(question.question_id, dict(zip(question.option_ids, probabilities)))| Tool | What it does |
|---|---|
| load_release_model | Loads the model and its processor |
| encode_record | Turns a state and questions into model input |
| collate_records | Batches encoded records for the model |
| systemone | Answers a request written in the Jev or SystemOne format |
You give it an invoice from Acme for 1,250 USD marked overdue. You ask for its status, with paid, overdue and draft as options, and whether the total is above 1,000 USD. It returns a probability for each status option and one for the yes-no question.
If you are new to this, run the card's invoice example first and read the printed probabilities. Each number is how likely that option is, and the numbers for one question add up to one.
Underneath, the Qwen3.5-9B backbone and its vision encoder feed a small joint schema head. The head picks out the parts of the state that matter for each question, then scores every option of every question at once. The output is one logit per option, and a softmax per question gives the probabilities. A larger variant called Clef also exists.
Turns a state and a set of typed questions into decisions, returning a probability for every option of every question in one pass, with no free text. A 9B multimodal model from Cloudflare for developers.
Made by Cloudflare on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.
What it is: Clef-Flash is a 9B multimodal model from Cloudflare, post-trained from Qwen3.5-9B. You give it a state and a list of typed questions. The state can be plain text, a JSON record, pictures or video. In one pass the model gives back a probability for every answer option of every question. It writes no free text, so there is nothing to parse.
Who it suits: Developers who want a model to make routine decisions, such as sorting messages or judging records, and want probabilities back instead of prose.
Industry | Who uses it | How they use it | Example
Customer support | Support engineers | Route and rank incoming messages | Deciding which team should handle a message
Finance operations | Billing teams | Classify records by status | Judging whether an invoice is overdue
Software development | Backend developers | Add a decision step to a service | A yes or no check on a message's urgency
Content review | Operations teams | Judge images and video against rules | A typed question about a picture
If you want a model that writes answers or chats, you can skip it, because it only returns option probabilities.
Where to use it:
Use case | Who | What they get back
Message triage | Support teams | A probability for each team or urgency option
Record checks | Finance teams | Probabilities for choice, score or yes-no questions
Multimodal decisions | Developers | Probabilities from text, JSON, images or video input
How to set it up:
pip install -U huggingface_hub
hf download Cloudflare/clef-flash
How to use it: Build a record with a state and a set of questions. Each question has a type, an instruction and, for choice questions, the criteria for each option. Encode the record, run the model and apply a softmax to each question's logits to get probabilities.
import sys
import torch
from huggingface_hub import snapshot_download
path = snapshot_download("Cloudflare/clef-flash")
sys.path.insert(0, path)
from joint_schema_model import collate_records, encode_record, load_release_model
model, processor = load_release_model(path, device="cuda")
record = {
"state": {"invoice": {"vendor": "Acme", "total": 1250.0, "currency": "USD", "status": "overdue"}},
"questions": {
"status": {
"type": "choice",
"instructions": "What is the invoice status?",
"criteria": {"paid": "Invoice is paid.", "overdue": "Invoice is past due.", "draft": "Not sent."},
},
"large": {"type": "noul", "instructions": "Is the total above 1000 USD?"},
},
}
encoded = encode_record(processor.tokenizer, record, processor=processor)
batch = collate_records([encoded], processor.tokenizer.pad_token_id, torch.device("cuda"))
with torch.inference_mode():
logits = model(batch)[0]
for question, question_logits in zip(encoded.questions, logits):
probabilities = question_logits.float().softmax(-1).tolist()
print(question.question_id, dict(zip(question.option_ids, probabilities)))
Tool | What it does
load_release_model | Loads the model and its processor
encode_record | Turns a state and questions into model input
collate_records | Batches encoded records for the model
systemone | Answers a request written in the Jev or SystemOne format
Example: You give it an invoice from Acme for 1,250 USD marked overdue. You ask for its status, with paid, overdue and draft as options, and whether the total is above 1,000 USD. It returns a probability for each status option and one for the yes-no question.
For newcomers and experts: If you are new to this, run the card's invoice example first and read the printed probabilities. Each number is how likely that option is, and the numbers for one question add up to one.
Underneath, the Qwen3.5-9B backbone and its vision encoder feed a small joint schema head. The head picks out the parts of the state that matter for each question, then scores every option of every question at once. The output is one logit per option, and a softmax per question gives the probabilities. A larger variant called Clef also exists.
You write a state and typed questions
The backbone reads the state
The joint head scores every option
You apply a softmax per question
Good to know:
Download its files with Hugging Face's command line:
pip install -U huggingface_hub
hf download Cloudflare/clef-flash
Then follow the usage in its model card. Nothing in this kit runs by itself.
README.md 6 KB
Listed Hugging Face models in the same category that share the most tags with this one.
| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
|---|---|---|---|---|---|
| Clef-Flash This page | 36,799 | 919 | 9.4B | apache-2.0 | |
| ClefShares image-text-to-typed-output · post-train · cloudflare | 72,287 | 2,356 | 27.4B | apache-2.0 | |
| Cloudflare clef GGUFShares image-text-to-typed-output · post-train · cloudflare | 18,354 | 36 | 27B | apache-2.0 | |
| clef-flash-4bitShares cloudflare · clef · systemone | 3,524 | 40 | 9.4B | apache-2.0 | |
| Clef-LoRA-for-Qwen3.8-27B-GGUFShares clef · systemone · decision-model | 311 | 6 | 668M | apache-2.0 | |
| Alpie Seed 9BShares qwen3.5 · multimodal · qwen3_5 | 741 | 26 | 9.4B | apache-2.0 |
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.