From: LiquidAI <huggingface.co/LiquidAI>Newsgroups: alt.freeweights.textSubject:

d1-3B

Date: 2026-11-15Commit: 05b80faSigned: 2DC28CC7B26A283B ✓

Image text to text model with 3.1B parameters. Safetensors weights, 6.27 GB in all. Published by LiquidAI under LFM-1.0 (custom).

3.1B params6.27GBd1-3Bsafetensorscustom terms
FactsParams3.1BSize6.27 GBFormatssafetensorsTaskimage text to textLicenseLFM-1.0 (custom)From sourcecustom termsread terms
# custom terms: read the license before you download
$ fw get LiquidAI/d1-3B
# manifest sha256 b6f3a1fd57a9… · 6.27 GB · 15 files
$ fw verify ./d1-3B LiquidAI/d1-3B
From sourceHosted (signed)LiquidAI/d1-3BLast check: 2026-11-15 02:37 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
6.27 GB
Weights
6.25 GB (safetensors)
Parameters
3.1B
Formats
safetensors
Task
image text to text
License
LFM-1.0 (custom) (custom)
Files
15, each with a sha256
Publisher
LiquidAI
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: LiquidAI/LFM2.5-VL-3B

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:37 UTCpassed

Model card

From the publisher at commit 05b80fa. Shown as plain text with links; images open at the publisher.

Image: Liquid AI

Try LFM • Docs • Discord

d1-3B#

d1-3B is a 3B parameter decision model built on LFM2.5-VL-3B. You give it a state (text, JSON, images, or a mix) and a set of questions. It returns calibrated, typed answers in one forward pass with zero output tokens.

  • Best decision model under 10B on the Decision Index 0.2.1: 48.57, ahead of every 4B and 9B model and of Decider 35B-A3B (47.11).
  • Multimodal: images and text in the same state. It scores 74.1 on 11 public image benchmarks (LFM2.5-VL-3B: 73.9).
  • Fast: 8 ms a decision on an NVIDIA RTX 4090, 9 ms on an AMD MI325X, 30 ms on an Apple M5 Pro.

Find more information about open d1 in our blog post.

Image: image

Note. 💻 Demos: Try d1-3B in a Hugging Face space without any setup: Open d1 Arcade: Collection of 10 demos using d1-3B

🗒️ Model Details#

ModelParametersDescription
LFM2.5-VL-3B3.1BGeneral-purpose vision-language model (base)
d1-3B3.1BPost-trained for single-pass, calibrated decisions

d1-3B is a multimodal decision model with the following features:

  • Total parameters: 3.12B
  • Vision encoder: SigLIP2 NaFlex shape-optimized 400M
  • Context length: 32,768 tokens
  • Vocabulary size: 128,000

We recommend d1-3B wherever a pipeline needs a yes/no, a pick from named options, or a rating: routing and triage, moderation, intent and topic classification, extraction checks, reranking, LLM-as-a-judge scoring, agent guardrails, and visual inspection. It is not a chat model and does not write text.

🏃 How to use#

Install the dependencies (requires transformers>=5.14):

pip install "transformers>=5.14" torch torchvision pillow

The model ships its own code, so load it with trust_remote_code=True:

import torch
from transformers import AutoModel
from transformers.image_utils import load_image

device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
dtype = torch.float32 if device == "cpu" else torch.bfloat16
model = AutoModel.from_pretrained("LiquidAI/d1-3B", trust_remote_code=True, dtype=dtype).to(device)

# Text: several named questions over one state, answered in one pass
questions = {
    "refund": {
        "type": "noul",
        "instructions": "Is the customer asking for a refund?",
    },
    "team": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
            "billing": "Charges, refunds, invoices",
            "technical": "App or site faults",
            "fraud": "Suspected unauthorised use",
        },
    },
    "urgency": {
        "type": "score",
        "instructions": "How urgent is this?",
        "criteria": ["Can wait", "Today", "Blocking the customer now"],
    },
}
print(model.system_one("I was charged twice this month, please refund one of them.", questions))

# Image: the photo is the whole state
image = load_image("http://images.cocodataset.org/val2017/000000039769.jpg")  # two cats on a sofa
cats = {
    "type": "choice",
    "instructions": "How many cats are there?",
    "criteria": {"one": "One", "two": "Two", "more": "Three or more"},
}
print(model.system_one(None, {"cats": cats}, images=[image]))

# Batch: many requests, packed together with no padding
tickets = ["Where is my parcel? It was due Monday.", "The app crashes when I open settings."]
print(model.system_one_batch([(t, {"team": questions["team"]}) for t in tickets]))
call
system_one(state, questions, images=None)Named questions over one state, in one pass. The state and its images are read once for all questions.
system_one_batch([(state, questions[, images]), ...])Many requests, packed with no padding.

A state is a string, any JSON value, or None when the images are the whole state.

Questions and answers#

Questions follow the Decision Index schema: type, instructions, and criteria.

typecriteriaanswer fields
noul: yes or nooptional: {"true": "...", "false": "..."} to define each sidenoul: P(yes)
choice: one of named options{name: description}choice, confidence, probabilities
score: 2 to 10 ordered levelsa list of level descriptions, lowest firstscore (the expected level), confidence, probabilities, legend

Each call returns {"answers": {name: answer}, "usage": {"input_tokens": n, "output_tokens": 0}}.

⚡ Speed#

Warm calls, one request at a time: a single question, three questions over one state, a 3.4k-token state and a 384 px image. The last column is throughput with 64 states packed into one pass.

Edge Inference#

We measure latency on an Apple M5 Pro and, in collaboration with NVIDIA, on an NVIDIA Jetson AGX Thor, a Jetson AGX Orin 64 GB and a Jetson Orin Nano.

one question3 questions, one pass3.4k-token state384 px image64 states, packed
Apple M5 Pro (mps)30 ms41 ms640 ms62 ms78 / s
NVIDIA Jetson AGX Thor16 ms20 ms220 ms35 ms262 / s
NVIDIA Jetson AGX Orin 64 GB26 ms35 ms560 ms83 ms110 / s
NVIDIA Jetson Orin Nano50 ms73 ms1640 ms202 ms38 / s
GPU Inference#

We measure latency on an NVIDIA RTX 4090 and an AMD MI325X, in bf16, median of 20 runs.

one question3 questions, one pass3.4k-token state384 px image64 states, packed
NVIDIA RTX 40908 ms21 ms102 ms17 ms475 / s
AMD MI325X9 ms14 ms44 ms18 ms1,106 / s

On NVIDIA GPUs, model.compile(mode="reduce-overhead") runs single questions as CUDA graphs (the RTX 4090 row uses it). Without it, a single question takes 16 ms. The first call with a new shape pays for kernel selection or compilation, so warm up the shapes you serve.

📊 Performance#

All results are on public benchmarks.

Decision Index 0.2.1#

We scored d1-3B with the official scorer (not a leaderboard submission). All other rows come from the public leaderboard v0.2.1.

ModelSizeDecision IndexKnowledgeLanguageRetrievalToolsArts
Winnow-12B12B50.0233.856.054.071.030.0
d1-3B3B48.5723.856.452.874.536.3
Decider 35B-A3B36B47.1131.855.554.756.532.6
JPT-9B9.7B46.8931.756.744.667.028.6
Decision 1.0 Lux9.7B43.4930.948.050.057.226.4
JPT-4B4.7B43.0428.752.545.057.225.8
Jet v6.24.7B42.6028.743.948.262.927.0
Decider 4B4.7B40.7025.746.044.758.625.0
Winnow-E4B8.0B39.8922.345.143.862.522.8
Decider 2B2.3B28.9714.932.637.342.414.6
Benchmarks as decisions#

Besides the Decision Index, we added a few other internal evaluations based on public benchmarks.

Benchmarkd1-3BDecider 4BDecider 2B
SQuAD 2.085.376.067.7
Civil Comments93.092.893.6
MASSIVE intent87.388.381.1
HelpSteer236.742.032.0
PubMedQA66.063.365.7
BoolQ86.789.087.3
XNLI85.088.685.0
PAWS-X76.969.859.5
Mean77.176.271.5

d1-3B also scores 71.8 on DecisionBench (eng v1, all 23,900 rows) and 69.3 on Fast Decisions (dev split).

Vision#

Eleven public image benchmarks, read as decisions over each benchmark's options (at most 1,000 rows each), compared with the base model:

Benchmarkd1-3BLFM2.5-VL-3B
AI2D79.980.9
BLINK59.258.7
CV-Bench82.187.6
HallusionBench65.365.0
MMBench84.984.3
MME82.182.4
MMStar59.961.2
MMVP77.073.7
POPE88.590.1
VisualWebBench71.478.3
VL-RewardBench65.050.9
Mean74.173.9
ImajevBench (dev and calibration, 253 rows)64.066.8

With the images removed, the same questions score 45.1, so the answers come from the images.

📬 Contact#

Citation#

@article{liquidAI2026opend1,
  author  = {Liquid AI},
  title   = {Open d1: Edge decision models for text, vision, and audio},
  journal = {Liquid AI Blog},
  year    = {2026},
  note    = {https://www.liquid.ai/blog/d1-open},
}
@article{liquidai2025lfm2,
  title   = {LFM2 Technical Report},
  author  = {Liquid AI},
  journal = {arXiv preprint arXiv:2511.23404},
  year    = {2025}
}

Files

15 files · 6.27 GBWeights 6.25 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 15 files with their sha256
FileSizesha256
.gitattributes1.74 KBad97efa0692a58cd188e54423fd0aed709a652d336828d439430f31edab1867a
LICENSE10.6 KB4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c
README.md10.5 KBe29927a558a8e4d25108d184ea12b9043e86699219683fc114ca5463db3e3e6d
api.py3.48 KB94e9f82eabfdf92c4abe1153e9a6dc4dd9821f9cc2fec3221e79e70723d8ada0
chat_template.jinja5.44 KB86f4770449a4797c9b4212d110b0cc70fb993c1ce960095bcfb12eea22f61cca
config.json2.77 KB0cbac0f580bd8036ef94ac83aa632a57a170e66d20f381ef47c3f6486c9a3e8c
hybrid.py14.4 KBce579827b952a6978a3560f70e74be9e228f9029de46048996b0c5f58d7f1f39
lfm2_vl.py5.60 KBf9e8d3354572a169237865283594b0364209fdb858901121b9f99147328b5d95
model.safetensors6.25 GB50e03317847caf6df9a9aee27ed40f20554a86a21e60d1d47ba41a422b546c0c
modeling_d1.py1.33 KB7fc6a001f80fc2d146f2a51128478f3b3bd4f1423a3ac129bc10f3fd0caf1d98
processor_config.json824 Bb9b82ad34a69e2f70a9033741e11f82b8a98bb5f8e6c13b3b2d5efdd3935d916
prompt.py12.5 KBa20b5f52e41a6d29e694bb8c861a5a4803ce3eb69364edad79511ccf8edb5c31
runner.py11.8 KB24d3ae718e9f9717771c0df39c93d324d00aa27bf3e12bab085c0922096cb0dd
tokenizer.json17.9 MB8096ecb9f54599d756c8de728a598a340bc1e43c0deb77ddd62456c38349fcee
tokenizer_config.json507 Bef6770d12dd9ac58d334e979bf160c5cdfd41f13d205fd5d5516857645feb0ea
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
05b80faf55 pinned now2026-11-15 02:37 UTC15 files · 6.27 GB

Use it

# custom terms: read the license before you download
$ fw get LiquidAI/d1-3B
# manifest sha256 b6f3a1fd57a9… · 6.27 GB · 15 files
$ fw verify ./d1-3B LiquidAI/d1-3B
Terms that come with these files. LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Custom license (custom). Read the license text first. Open this panel to show the commands once you accept its terms.
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/LiquidAI/d1-3B.json --dir ./d1-3B $ python3 fw.py verify ./d1-3B ./LiquidAI__d1-3B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/d1-3B --revision 05b80faf55536582ad5ffb2da7456f6a653acf71 --local-dir ./d1-3B
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("LiquidAI/d1-3B", revision="05b80faf55536582ad5ffb2da7456f6a653acf71") model = AutoModelForImageTextToText.from_pretrained("LiquidAI/d1-3B", revision="05b80faf55536582ad5ffb2da7456f6a653acf71", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve LiquidAI/d1-3B --revision 05b80faf55536582ad5ffb2da7456f6a653acf71

License

Name
LFM Open License v1.0
Id
LicenseRef-LFM-1.0
Class
Custom terms
Redistribution
click-through
Listing
Hosted (signed)
Terms
LFM 1.0: commercial use only for organisations under US$10M annual revenue. Keep a copy of the license with the files.
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE
Text sha256
4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c
Terms gate
Yes. The commands stay folded until you open them after reading the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: LiquidAI <huggingface.co/LiquidAI>Newsgroups: alt.freeweights.textSubject: d1-3BDate: 2026-11-15Commit: 05b80faSigned: 2DC28CC7B26A283B ✓
Upstream
LiquidAI/d1-3B
Pinned commit
05b80faf55536582ad5ffb2da7456f6a653acf71
Manifest
d1-3B.json · .minisig
Manifest sha256
b6f3a1fd57a909be455009962db862296026964ddb5170ddcd7d758dd6b3a584
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:37 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/LiquidAI/d1-3B.json $ curl -O https://freeweights.allternit.com/manifests/LiquidAI/d1-3B.json.minisig $ minisign -Vm d1-3B.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

LiquidAI/LFM2.5-VL-3B (not in this catalog) · this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Quantizations 1
Get it
Read license, then download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/d1-3B
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. d1-3B.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of d1-3B. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B