LFM2.5-VL-1.6B-Extract
extracts user-defined fields from images and returns them as
JSON
. It is Liquid AI's first vision model in the
Liquid Nanos
collection—compact, task-specific models built for production workflows—and extends the Extract family alongside
LFM2-1.2B-Extract
for text documents.
⚙️ How it works
You specify what to extract as a YAML field list in the system prompt, and the model returns a JSON object with those fields. Structured outputs integrate cleanly with rule-based systems and downstream pipelines. Use it out of the box or fine-tune for domain-specific extraction.
{
"wood_color":"light tan to beige with darker brown streaks",
"wood_texture":"smooth with visible grain patterns",
"wood_pattern":"wavy, linear, irregular"
}
Our model supports the enum feature, which lets you provide a list of possible choices alongside the field description as follows, and the model will return one of the listed values as its answer.
We evaluated LFM2.5-VL-1.6B-Extract on a 2,000-sample benchmark of
(image, schema, JSON)
triples, with reference labels generated by an
ensemble of frontier multimodal models. Predictions are scored on the
following three dimensions:
JSON Validity
— share of samples producing strict-parseable JSON
Schema Consistency F1 Score
— set-level F1 over predicted vs requested field names, macro-averaged across samples
VLM Judge Score
— match against the image directly, judged by a separate vision model (
Qwen/Qwen3.5-35B-A3B
)
Model
Params
JSON Validity
F1 Score
VLM Judge Score
LFM2.5-VL-1.6B-Extract
1.6B
99.6
99.6
90.6
LFM2.5-VL-1.6B
1.6B
91.8
75.8
66.0
FastVLM-1.5B
1.91B
87.3
80.3
50.9
SmolVLM2-2.2B-Instruct
2.25B
84.4
82.9
64.8
Qwen3.5-2B
2.27B
97.9
97.7
89.7
gemma-4-E2B-it
2.3B
97.4
97.1
84.4
InternVL3_5-2B
2.35B
99.6
99.2
87.7
(ref) Qwen3-VL-4B-Instruct
4.44B
99.8
99.7
92.0
(ref) InternVL3_5-4B
4.73B
99.5
99.4
90.2
LFM2.5-VL-1.6B-Extract outperforms similarly-sized (~2B) open-source VLMs on this benchmark and is competitive with models 2× its size.
Reproducing these numbers
: The full evaluation pipeline, which includes extraction, VLM judging, and metric aggregation, is bundled in this repository under
model_eval/
. Setup, configuration, and run instructions are in the folder's
README
.
Scope
: These numbers characterize the model on the input/output form it is designed for: a single input image, a YAML field list as the schema, and a flat JSON object as the output. Performance is not expected to transfer to vastly different tasks, e.g. multi-image reasoning or free-form VQA.
🏃 How to run
You can run LFM2.5-VL-1.6B-Extract with Hugging Face
transformers
v5.1 or newer:
pip install transformers pillow
from transformers import AutoProcessor, AutoModelForImageTextToText
from transformers.image_utils import load_image
model_id = "LiquidAI/LFM2.5-VL-1.6B-Extract"
model = AutoModelForImageTextToText.from_pretrained(
model_id,
device_map="auto",
dtype="bfloat16",
trust_remote_code=True,
)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
image = load_image("https://huggingface.co/LiquidAI/LFM2.5-VL-1.6B-Extract/resolve/main/sample_image.png")
fields_yaml = """wood_color: The overall coloration of the wood surfacewood_texture: The tactile quality of the wood surfacewood_pattern: The pattern types visible on the wood surface"""
system_prompt = f"""Extract the following from the image:{fields_yaml}Respond with only a JSON object. Do not include any text outside the JSON."""
conversation = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": [{"type": "image", "image": image}]},
]
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=512, do_sample=False)
response = processor.batch_decode(
outputs[:, inputs["input_ids"].shape[1]:],
skip_special_tokens=True,
)[0]
print(response)
# {# "wood_color": "light tan to beige with darker brown streaks",# "wood_texture": "smooth with visible grain patterns",# "wood_pattern": "wavy, linear, irregular"# }
The model is intended for single-turn conversations. We recommend using greedy decoding (
temperature=0
).
LFM2.5-VL-1.6B-Extract huggingface.co is an AI model on huggingface.co that provides LFM2.5-VL-1.6B-Extract's model effect (), which can be used instantly with this LiquidAI LFM2.5-VL-1.6B-Extract model. huggingface.co supports a free trial of the LFM2.5-VL-1.6B-Extract model, and also provides paid use of the LFM2.5-VL-1.6B-Extract. Support call LFM2.5-VL-1.6B-Extract model through api, including Node.js, Python, http.
LFM2.5-VL-1.6B-Extract huggingface.co is an online trial and call api platform, which integrates LFM2.5-VL-1.6B-Extract's modeling effects, including api services, and provides a free online trial of LFM2.5-VL-1.6B-Extract, you can try LFM2.5-VL-1.6B-Extract online for free by clicking the link below.
LiquidAI LFM2.5-VL-1.6B-Extract online free url in huggingface.co:
LFM2.5-VL-1.6B-Extract is an open source model from GitHub that offers a free installation service, and any user can find LFM2.5-VL-1.6B-Extract on GitHub to install. At the same time, huggingface.co provides the effect of LFM2.5-VL-1.6B-Extract install, users can directly use LFM2.5-VL-1.6B-Extract installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
LFM2.5-VL-1.6B-Extract install url in huggingface.co: