alt.freeweights.lfm / LFM2.5-VL-450M
From: LiquidAI <huggingface.co/LiquidAI>Newsgroups: alt.freeweights.lfmSubject:

LFM2.5-VL-450M

Date: 2026-11-15Commit: fc6221cSigned: 2DC28CC7B26A283B ✓

Image text to text model with 449M parameters. Safetensors weights, 902 MB in all. Published by LiquidAI under LFM-1.0 (custom).

449M params902MBLFM2.5-VL-450Msafetensorscustom terms
FactsParams449MSize902 MBFormatssafetensorsTaskimage text to textLicenseLFM-1.0 (custom)From sourcecustom termsread terms
# custom terms: read the license before you download
$ fw get LiquidAI/LFM2.5-VL-450M
# manifest sha256 b8263bc0aca8… · 902 MB · 10 files
$ fw verify ./LFM2.5-VL-450M LiquidAI/LFM2.5-VL-450M
From sourceHosted (signed)LiquidAI/LFM2.5-VL-450MLast check: 2026-11-15 02:34 UTC

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

Fine-tune of LFM2.5-350M.

Works with

Overview

Size
902 MB
Weights
897 MB (safetensors)
Parameters
449M
Formats
safetensors
Task
image text to text
License
LFM-1.0 (custom) (custom)
Files
10, each with a sha256
Publisher
LiquidAI
Added
2026-11-15
Section
alt.freeweights.lfm
Lineage

Original release from the publisher.

Base model: LiquidAI/LFM2.5-350M

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:34 UTCpassed

Model card

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

Image: Liquid AI

Try LFM • Docs • LEAP • Discord

LFM2.5‑VL-450M#

LFM2.5‑VL-450M is Liquid AI's refreshed version of the first vision-language model, LFM2-VL-450M, built on an updated backbone LFM2.5-350M and tuned for stronger real-world performance. Find more about LFM2.5 family of models in our blog post.

  • Enhanced instruction following on vision and language tasks.
  • Improved multilingual vision understanding in Arabic, Chinese, French, German, Japanese, Korean, Portuguese and Spanish.
  • Bounding box prediction and object detection for grounded visual understanding.
  • Function calling support for text-only input.

🎥⚡️ You can try LFM2.5-VL-450M running locally in your browser with our real-time video stream captioning WebGPU demo 🎥⚡️

Alternatively, try the API model on the Playground.

📄 Model details#

LFM2.5-VL-450M is a general-purpose vision-language model with the following features:

  • LM Backbone: LFM2.5-350M
  • Vision encoder: SigLIP2 NaFlex shape‑optimized 86M
  • Context length: 32,768 tokens
  • Vocabulary size: 65,536
  • Languages: English, Arabic, Chinese, French, German, Japanese, Korean, Portuguese, and Spanish
  • Native resolution processing: handles images up to 512*512 pixels without upscaling and preserves non-standard aspect ratios without distortion
  • Tiling strategy: splits large images into non-overlapping 512×512 patches and includes thumbnail encoding for global context
  • Inference-time flexibility: user-tunable maximum image tokens and tile count for speed/quality tradeoff without retraining
  • Generation parameters:
    • text: temperature=0.1, min_p=0.15, repetition_penalty=1.05
    • vision: min_image_tokens=32 max_image_tokens=256, do_image_splitting=True
ModelDescription
LFM2.5-VL-450MOriginal model checkpoint in native format. Best for fine-tuning or inference with Transformers and vLLM.
LFM2.5-VL-450M-GGUFQuantized format for llama.cpp and compatible tools. Optimized for CPU inference and local deployment with reduced memory usage.
LFM2.5-VL-450M-ONNXONNX Runtime format for cross-platform deployment. Enables hardware-accelerated inference across diverse environments (cloud, edge, mobile).
LFM2.5-VL-450M-MLX-8bitMLX format for Apple Silicon. Optimized for fast on-device inference on Mac with mlx-vlm. Also available in 4bit, 5bit, 6bit, and bf16.

We recommend using it for general vision-language workloads, captioning and object detection. It’s not well-suited for knowledge-intensive tasks or fine-grained OCR.

Chat Template#

LFM2.5-VL uses a ChatML-like format. See the Chat Template documentation for details.

<|startoftext|><|im_start|>system
You are a helpful multimodal assistant by Liquid AI.<|im_end|>
<|im_start|>user
<image>Describe this image.<|im_end|>
<|im_start|>assistant
This image shows a Caenorhabditis elegans (C. elegans) nematode.<|im_end|>

You can use processor.apply_chat_template() to format your messages automatically.

🏃 Inference#

You can run LFM2.5-VL-450M with Hugging Face transformers v5.1 or newer:

pip install transformers pillow
from transformers import AutoProcessor, AutoModelForImageTextToText
from transformers.image_utils import load_image

# Load model and processor
model_id = "LiquidAI/LFM2.5-VL-450M"
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    device_map="auto",
    dtype="bfloat16"
)
processor = AutoProcessor.from_pretrained(model_id)

# Load image and create conversation
url = "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
image = load_image(url)
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": "What is in this image?"},
        ],
    },
]

# Generate Answer
inputs = processor.apply_chat_template(
    conversation,
    add_generation_prompt=True,
    return_tensors="pt",
    return_dict=True,
    tokenize=True,
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=64)
processor.batch_decode(outputs, skip_special_tokens=True)[0]

# This image captures the iconic Statue of Liberty standing majestically on Liberty Island in New York City. The statue, a symbol of freedom and democracy, is prominently featured in the foreground, its greenish-gray hue contrasting beautifully with the surrounding water.
Visual grounding#

LFM2.5-VL-450M supports bounding box prediction:

url = "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
image = load_image(url)
query = "status"
prompt = f'Detect all instances of: {query}. Response must be a JSON array: [{"label": ..., "bbox": [x1, y1, x2, y2]}, ...]. Coordinates are normalized to [0,1].'

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": prompt},
        ],
    },
]

# Generate Answer
inputs = processor.apply_chat_template(
    conversation,
    add_generation_prompt=True,
    return_tensors="pt",
    return_dict=True,
    tokenize=True,
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=64)
processor.batch_decode(outputs, skip_special_tokens=True)[0]

# [{"label": "statue", "bbox": [0.3, 0.25, 0.4, 0.65]}]
Tool Use#

LFM2.5 supports function calling for text only input by applying the chat template with the tokenizer. See the Tool Use documentation for the full guide.

tools = [{
    "name": "get_weather",
    "description": "Get current weather for a location",
    "parameters": {
        "type": "object",
        "properties": {"location": {"type": "string"}},
        "required": ["location"]
    }
}]

messages = [{"role": "user", "content": "What's the weather in Paris?"}]

# Apply chat template with tools
inputs = processor.tokenizer.apply_chat_template(
    messages,
    tools=tools,
    add_generation_prompt=True,
    return_tensors="pt",
    return_dict=True,
)
input_ids = inputs["input_ids"].to(model.device)
outputs = model.generate(input_ids, max_new_tokens=256)
response = processor.tokenizer.decode(outputs[0, input_ids.shape[1]:], skip_special_tokens=False)

# <|tool_call_start|>[get_weather(location="Paris")]<|tool_call_end|>I am retrieving the current weather for Paris.<|im_end|>
NameDescriptionDocsNotebook
TransformersSimple inference with direct access to model internals.LinkColab link
vLLMHigh-throughput production deployments with GPU.LinkColab link
SGLangHigh-throughput production deployments with GPU.LinkColab link
llama.cppCross-platform inference with CPU offloading.LinkColab link

🔧 Fine-tuning#

We recommend fine-tuning LFM2.5-VL-450M model on your use cases to maximize performance.

NotebookDescriptionLink
SFT (Unsloth)Supervised Fine-Tuning with LoRA using Unsloth.Colab link
SFT (TRL)Supervised Fine-Tuning with LoRA using TRL.Colab link

📊 Performance#

LFM2.5-VL-450M improves over LFM2-VL-450M across both vision and language benchmarks, while also adding two new capabilities: bounding box prediction on RefCOCO-M and function calling support measured by BFCLv4.

Vision benchmarks#
ModelMMStarRealWorldQAMMBench (dev en)MMMU (val)POPEMMVetBLINKInfoVQA (val)OCRBenchMM-IFEvalMMMBCountBenchRefCOCO-M
LFM2.5-VL-450M43.0058.4360.9132.6786.9341.1043.9243.0268445.0068.0973.3181.28
LFM2-VL-450M40.8752.0356.2734.4483.7933.8542.6144.5665733.0954.2947.64-
SmolVLM2-500M38.2049.9052.3234.1082.6729.9040.7024.6460911.2746.7961.81-

All vision benchmark scores are obtained using VLMEvalKit. Multilingual scores are based on the average of benchmarks translated by GPT-4.1-mini from English to Arabic, Chinese, French, German, Japanese, Korean, Portuguese, and Spanish.

Language benchmarks#
ModelGPQAMMLU ProIFEvalMulti-IFBFCLv4
LFM2.5-VL-450M25.6619.3261.1634.6321.08
LFM2-VL-450M23.1317.2251.7526.21-
SmolVLM2-500M23.8413.5730.146.82-

📬 Contact#

Citation#

@article{liquidai2025lfm2,
 title={LFM2 Technical Report},
 author={Liquid AI},
 journal={arXiv preprint arXiv:2511.23404},
 year={2025}
}

Files

10 files · 902 MBWeights 897 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 10 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
LICENSE10.6 KB4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c
README.md13.4 KB666cc6b49fcdec9ddd378081c47df5aa11679c12a4a05cbbb436a3107f04ee3b
chat_template.jinja3.84 KB309e586e2eda3d7f2db1e2a045bfb07f4c83798b23f7ac587954426302d508e9
config.json2.37 KBab0de32d57b83b8b0cbb4526e096cf1e8adc1d8b6a09cb55df38597866eae53f
generation_config.json136 B40d17f9ec64c97e8fd5400540960b6a9761ed6d6acc0b1ab6a6656055e4755b3
model.safetensors897 MB2f6deb5dd43707de5cfe3c59470d3bccf4c3112a810a74570499f4728d412eea
processor_config.json828 B622b75b531b3f49b1cdf4f90626c34e5ffb4f8bba2b8637807af0462398ae718
tokenizer.json4.73 MBf3910942aa907c48b0cc20ec426ee38bfa8dcda8feecf035ced981918cb30f14
tokenizer_config.json829 Baed83606e95db808fc4d5312bf117605360e770bfef5a6028c348c3981ce143a
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
fc6221ca59 pinned now2026-11-15 02:34 UTC10 files · 902 MB

Use it

# custom terms: read the license before you download
$ fw get LiquidAI/LFM2.5-VL-450M
# manifest sha256 b8263bc0aca8… · 902 MB · 10 files
$ fw verify ./LFM2.5-VL-450M LiquidAI/LFM2.5-VL-450M
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/LFM2.5-VL-450M.json --dir ./LFM2.5-VL-450M $ python3 fw.py verify ./LFM2.5-VL-450M ./LiquidAI__LFM2.5-VL-450M.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/LFM2.5-VL-450M --revision fc6221ca597f3315e4f82fc2df606783267b34ba --local-dir ./LFM2.5-VL-450M
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/LFM2.5-VL-450M", revision="fc6221ca597f3315e4f82fc2df606783267b34ba") model = AutoModelForImageTextToText.from_pretrained("LiquidAI/LFM2.5-VL-450M", revision="fc6221ca597f3315e4f82fc2df606783267b34ba", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve LiquidAI/LFM2.5-VL-450M --revision fc6221ca597f3315e4f82fc2df606783267b34ba

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.lfmSubject: LFM2.5-VL-450MDate: 2026-11-15Commit: fc6221cSigned: 2DC28CC7B26A283B ✓
Upstream
LiquidAI/LFM2.5-VL-450M
Pinned commit
fc6221ca597f3315e4f82fc2df606783267b34ba
Manifest
LFM2.5-VL-450M.json · .minisig
Manifest sha256
b8263bc0aca8d023d81836ddf85d9eb7334d28f8e4a706d7465dee443a125faa
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:34 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/LiquidAI/LFM2.5-VL-450M.json $ curl -O https://freeweights.allternit.com/manifests/LiquidAI/LFM2.5-VL-450M.json.minisig $ minisign -Vm LFM2.5-VL-450M.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-350M · this model is a finetune of it

2 models in the catalog name this one as their parent.

Quantizations
2
Get it
Read license, then download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download LiquidAI/LFM2.5-VL-450M
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. LFM2.5-VL-450M.json. Provenance. Takedown history: none.

Variants

2 quantized or adapter builds of LFM2.5-VL-450M. Each has its own license check and page.

From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Extract
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-RAG
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-1.2B-Tool
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B
From: LiquidAI <huggingface.co/LiquidAI>Subject: LFM2-2.6B-Exp