Text / LiquidAI

LFM2.5 VL 3B

LFM2.5-VL-3B is a multimodal variant of the LFM2.5 hybrid model family designed for on-device deployment. It processes text and images, using LFM2.5-2.6B as its language backbone and a SigLIP2 NaFlex vision encoder. The model reports improved grounding and object detection with natural language queries, full-page OCR with layout annotation, and efficient inference (reported 228 tok/s on Apple M5 Max and 116 tok/s on AMD Ryzen AI Max+ 395, under 3.3 GB memory). It supports 16 languages and a 32,768-token context length, with native resolution processing that splits large images into non-overlapping 512x512 patches plus a resized whole-image thumbnail. The model is available under the LFM 1.0 license and is tagged for image-text-to-text, with exports including GGUF, ONNX, and MLX variants.

EstimatedRepository opened Aug 11, 2026Source checked 9/24/2026Version: a3af5799
LOCALRENTED GPUOPEN WEIGHTS
Freshness 78 out of 100. Repository age: 65 days old, Aug 11, 2026. Measures age, not quality.
Popularity 60 out of 100. 29,488 downloads in 30 days; 225 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
What do these scores mean?

Two ways to compare models. Neither score measures answer quality, benchmark performance, or whether a model fits your machine.

Freshness · release age

A new release starts at 100. The score halves every 180 days: 100 × 2^(−age in days / 180). When the release date is unavailable, a repository date is a fallback—not proof of when the model was released. Missing dates stay unscored.

Check the date source
Popularity · adoption

Downloads over the past 30 days carry 80% of the score; lifetime likes carry 20%. Both use a logarithmic scale, capped at 10 million downloads and 100,000 likes. If likes are unavailable, downloads carry all the weight. Missing download statistics stay unscored.

round(80 × min(1, log10(1 + downloads) / 7) + 20 × min(1, log10(1 + likes) / 5))

Check the statistics source
Scores as of Oct 15, 2026. Statistics checked Oct 15, 2026. Statistics are marked for refresh after 72 hours.Full scoring method

At a glance

Parameters
3.12B
Architecture
lfm2_vl
License
lfm1.0
Disk space
5.8 GB
Software
Transformers
View the model source
MY HARDWARE

Will it run on your machine?

Save your machine to see a personalized rating and its reasoning.

Add my hardware

Best for

  • Image understanding and visual question answering with text and images
  • Grounding and object detection using natural language queries
  • Full-page optical character recognition (OCR) with layout annotation
  • Multilingual multimodal interactions across 16 supported languages
  • On-device deployment scenarios with native, GGUF, ONNX, or MLX formats

Tradeoffs

  • License is LFM 1.0 (other), not an open-source or permissive license
  • The source does not specify hardware requirements beyond reported inference metrics; no compatibility or performance guarantees are provided
  • No claims of testing or evaluation are made in the supplied data
  • The source does not include information on fine-tuning support, quantization details, or numerical accuracy
  • No recommendations for purchase or comparisons with other models are provided in the source content

Ways to run it

Transformers · See official guide

Repository-specific command in publisher documentation; confirm dependencies and hardware in the source.

import torch from transformers import AutoModelForImageTextToText, AutoProcessor model_id = "LiquidAI/LFM2.5-VL-3B" model = AutoModelForImageTextToText.from_pretrained(model_id, dtype=torch.bfloat16) processor = AutoProcessor.from_pretrained(model_id) messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://placecats.com/300/200"}, {"type": "text", "text": "Describe this image."}, ], } ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) with torch.inference_mode(): output_ids = model.generate( **inputs, do_sample=True, temperature=0.2, top_k=50, repetition_penalty=1.0, max_new_tokens=256, ) generated_ids = output_ids[:, inputs["input_ids"].shape[1] :] print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])
Official instructions

Explore its uses

SAFETENSORSIMAGE-TEXT-TO-TEXT

Keep exploring