Instructions to use webbrain-one/webbrain-vl-2-450M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use webbrain-one/webbrain-vl-2-450M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="webbrain-one/webbrain-vl-2-450M") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("webbrain-one/webbrain-vl-2-450M") model = AutoModelForMultimodalLM.from_pretrained("webbrain-one/webbrain-vl-2-450M", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use webbrain-one/webbrain-vl-2-450M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "webbrain-one/webbrain-vl-2-450M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webbrain-one/webbrain-vl-2-450M", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/webbrain-one/webbrain-vl-2-450M
- SGLang
How to use webbrain-one/webbrain-vl-2-450M with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "webbrain-one/webbrain-vl-2-450M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webbrain-one/webbrain-vl-2-450M", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "webbrain-one/webbrain-vl-2-450M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webbrain-one/webbrain-vl-2-450M", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use webbrain-one/webbrain-vl-2-450M with Docker Model Runner:
docker model run hf.co/webbrain-one/webbrain-vl-2-450M
WebBrain VL 2 450M
WebBrain VL 2 450M is a browser-GUI specialist derived from
LiquidAI/LFM2.5-VL-450M.
It turns a browser viewport screenshot into the six-section observation format
consumed by WebBrain's planning agent. This repository preserves both the
merged Transformers checkpoint and the matching LoRA adapter.
Deployed ONNX/WebGPU benchmark
The separately published
webbrain-one/webbrain-vl-2-450M-onnx
package reached 44/100 strict passes and a 76.24% mean rubric score in its
Q4-decoder/FP16-vision deployment. The WebBrain point in both charts below is
that deployed ONNX/WebGPU row, not the 36/100 merged-PyTorch row reported later.
| Model and tested runtime | Parameter class | Strict passes | Mean rubric |
|---|---|---|---|
| Qwen 3.5 4B, MLX | 4B | 55/100 | 83.4% |
| WebBrain VL 2, deployed ONNX Q4/FP16 | 450M | 44/100 | 76.2% |
| Gemma 4 E4B IT, MLX | E4B | 41/100 | 81.3% |
| Qwen 3.5 2B, MLX | 2B | 39/100 | 79.1% |
| Qwen 3.5 0.8B | 0.8B | 20/100 | 41.6% |
| LFM2.5-VL-1.6B, MLX | 1.6B | 12/100 | 44.4% |
All rows used the same 100 screenshots and production six-section prompt. The benchmark images, rubrics, runner, and committed result files are public. Gemma E4B is plotted at its effective 4B class. Latency is omitted because the rows used different machines, quantizations, and inference stacks.
Further reading:
Intended use
- Browser screenshot description for a downstream automation planner.
- Visible UI text, inputs, form state, dialogs, errors, loading indicators, consent surfaces, CAPTCHAs, overlays, and blockers.
- A compact local fallback when a larger vision model is unavailable.
This is not a general replacement for a frontier VLM. Do not treat an observation as authorization to perform an action or trust it for passwords, payments, identity, or other high-impact decisions.
Training
| Item | Value |
|---|---|
| Base model | LiquidAI/LFM2.5-VL-450M |
| Dataset | 46,879 train + 3,121 validation rows |
| Method | Supervised LoRA fine-tuning, then merge |
| LoRA | rank 16, alpha 32, dropout 0.05 |
| Selected checkpoint | step 2,929 |
| Completed training | step 2,929, one epoch |
| Effective batch size | 16 |
| Learning rate | 1e-4, cosine schedule, 3% warmup |
| Maximum image tokens | 256 |
| Precision | BF16 with gradient checkpointing |
| Hardware | one NVIDIA RTX 4090 24 GB |
| Peak VRAM | 23,272 MiB |
Validation was measured on the immutable 3,121-row validation split. The held-out 100-case WebBrain suite was not used for checkpoint selection. The table below compares the two candidate checkpoints with the same deterministic post-training evaluator. Its absolute loss scale differs from the in-training Trainer metric; the periodic Trainer loss independently improved from 0.366836 at step 500 to 0.326216 at step 2,500.
| Step | Validation loss |
|---|---|
| 2,500 | 0.326301 |
| 2,929 | 0.324976 |
The root model and adapter/ are the final one-epoch checkpoint.
Data
The public corpus is
webbrain-one/webbrain-vl-2-450M-dataset
at commit fb191a0b73e0906e6c3b9f35f6ec0dba1337b72c. It contains exactly 50,000 unique
browser screenshots:
| Source | License | Rows |
|---|---|---|
| targeted browser-GUI synthetic | CC-BY-4.0 | 33,354 |
HuggingFaceM4/WebSight |
CC-BY-4.0 | 9,561 |
Farama-Foundation/miniwob-plusplus |
MIT | 4,592 |
docling-project/screenparse |
CC-BY-4.0 | 2,493 |
Teacher labels comprise 49,634 accepted responses from
qwen/qwen3.6-35b-a3b and 366 from
Qwen/Qwen3.6-35B-A3B-Q4_K_M. Teacher outputs can contain OCR errors or
hallucinations.
The 50K mix was deliberately balanced across 16,646 legacy rows and targeted browser capabilities: multilingual OCR (8,000), forms (4,500), authentication (2,500), modals/consent (3,500), loading states (2,500), tables (3,500), dashboards (2,500), calendars (2,500), occlusion/contrast (1,500), and general browser pages (2,354).
The frozen local snapshot ID is
fb55b3afe2026634d5fadbe35dc4bae5b00602b44634459f65ca93e27f227218.
Validation confirmed zero exact or perceptual overlap with WebBrain's unchanged
100-case suite and zero train/validation leakage. A source- and category-balanced
manual audit accepted all 44 sampled records.
Evaluation
The unchanged 100-case WebBrain browser-vision suite used the production six-section prompt exactly once after checkpoint selection.
| Checkpoint | Strict passes | Mean rubric | Errors |
|---|---|---|---|
| Base LFM2.5-VL-450M | 0/100 | 4.17% | 0 |
| v1, 16,646 examples | 30/100 | 70.06% | 0 |
| v2, 50,000 examples | 36/100 | 74.99% | 0 |
Machine-readable results are in eval/. Latency is implementation- and
hardware-specific, so it is not presented as a portable speed claim.
Limitations
- Small, low-contrast, occluded, or non-Latin text can still be missed.
- UI labels and state can be hallucinated, especially around overlays.
- Focus, disabled state, exact form errors, and readiness signals need visual corroboration.
- The model inherits teacher errors and response-style biases.
- General-image regression has not been measured; evaluate separately before using this checkpoint outside browser screenshots.
- A syntactically valid six-section response does not make automation safe.
License and attribution
This derivative is distributed under the LFM Open License v1.0, subject to
its redistribution and attribution terms. Retain the included LICENSE, the
base-model attribution, and all dataset source licenses. Dataset components
retain their row-level upstream licensing recorded in the dataset repository.
Reproducibility
release-manifest.json, the training configuration and metrics, machine-readable
evaluation files, and SHA256SUMS pin the artifact provenance and released
files. Historical manifest and evaluation fields retain the repository IDs that
were current when the release was produced; the current public names are the
webbrain-vl-2-450M repositories linked in this card.
- Downloads last month
- -
Model tree for webbrain-one/webbrain-vl-2-450M
Base model
LiquidAI/LFM2.5-350M-Base
