Image-Text-to-Text
Transformers
Safetensors
lfm2_vl
browser-automation
gui-understanding
vision-language-model
webbrain
conversational
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)# pip install -U transformers accelerate # 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=256) 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
Move benchmark charts near the top of the card
Browse files- README.md +31 -31
- SHA256SUMS +1 -1
README.md
CHANGED
|
@@ -21,6 +21,37 @@ It turns a browser viewport screenshot into the six-section observation format
|
|
| 21 |
consumed by WebBrain's planning agent. This repository preserves both the
|
| 22 |
merged Transformers checkpoint and the matching LoRA adapter.
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
## Intended use
|
| 25 |
|
| 26 |
- Browser screenshot description for a downstream automation planner.
|
|
@@ -108,37 +139,6 @@ six-section prompt exactly once after checkpoint selection.
|
|
| 108 |
Machine-readable results are in `eval/`. Latency is implementation- and
|
| 109 |
hardware-specific, so it is not presented as a portable speed claim.
|
| 110 |
|
| 111 |
-
## Deployed ONNX/WebGPU comparison
|
| 112 |
-
|
| 113 |
-
The separately published
|
| 114 |
-
[`webbrain-one/webbrain-vl-2-450M-onnx`](https://huggingface.co/webbrain-one/webbrain-vl-2-450M-onnx)
|
| 115 |
-
package reached **44/100 strict passes** and a **76.24% mean rubric score** in its
|
| 116 |
-
Q4-decoder/FP16-vision deployment. The WebBrain point in both charts below is
|
| 117 |
-
that deployed ONNX/WebGPU row, not the 36/100 merged-PyTorch row above.
|
| 118 |
-
|
| 119 |
-

|
| 120 |
-
|
| 121 |
-

|
| 122 |
-
|
| 123 |
-
| Model and tested runtime | Parameter class | Strict passes | Mean rubric |
|
| 124 |
-
| --- | ---: | ---: | ---: |
|
| 125 |
-
| Qwen 3.5 4B, MLX | 4B | 55/100 | 83.4% |
|
| 126 |
-
| **WebBrain VL 2, deployed ONNX Q4/FP16** | **450M** | **44/100** | 76.2% |
|
| 127 |
-
| Gemma 4 E4B IT, MLX | E4B | 41/100 | 81.3% |
|
| 128 |
-
| Qwen 3.5 2B, MLX | 2B | 39/100 | 79.1% |
|
| 129 |
-
| Qwen 3.5 0.8B | 0.8B | 20/100 | 41.6% |
|
| 130 |
-
| LFM2.5-VL-1.6B, MLX | 1.6B | 12/100 | 44.4% |
|
| 131 |
-
|
| 132 |
-
All rows used the same 100 screenshots and production six-section prompt. The
|
| 133 |
-
[benchmark images, rubrics, runner, and committed result files](https://github.com/esokullu/webbrain/tree/main/test/vision)
|
| 134 |
-
are public. Gemma E4B is plotted at its effective 4B class. Latency is omitted
|
| 135 |
-
because the rows used different machines, quantizations, and inference stacks.
|
| 136 |
-
|
| 137 |
-
Further reading:
|
| 138 |
-
|
| 139 |
-
- [Tiny Vision Models Compared II](https://webbrain.one/blog/tiny-vision-models-compared-ii/)
|
| 140 |
-
- [From 16K to 50K Browser Screenshots](https://webbrain.one/blog/fine-tuning-lfm25-vl-450m-for-browser-tasks/)
|
| 141 |
-
|
| 142 |
## Limitations
|
| 143 |
|
| 144 |
- Small, low-contrast, occluded, or non-Latin text can still be missed.
|
|
|
|
| 21 |
consumed by WebBrain's planning agent. This repository preserves both the
|
| 22 |
merged Transformers checkpoint and the matching LoRA adapter.
|
| 23 |
|
| 24 |
+
## Deployed ONNX/WebGPU benchmark
|
| 25 |
+
|
| 26 |
+
The separately published
|
| 27 |
+
[`webbrain-one/webbrain-vl-2-450M-onnx`](https://huggingface.co/webbrain-one/webbrain-vl-2-450M-onnx)
|
| 28 |
+
package reached **44/100 strict passes** and a **76.24% mean rubric score** in its
|
| 29 |
+
Q4-decoder/FP16-vision deployment. The WebBrain point in both charts below is
|
| 30 |
+
that deployed ONNX/WebGPU row, not the 36/100 merged-PyTorch row reported later.
|
| 31 |
+
|
| 32 |
+

|
| 33 |
+
|
| 34 |
+

|
| 35 |
+
|
| 36 |
+
| Model and tested runtime | Parameter class | Strict passes | Mean rubric |
|
| 37 |
+
| --- | ---: | ---: | ---: |
|
| 38 |
+
| Qwen 3.5 4B, MLX | 4B | 55/100 | 83.4% |
|
| 39 |
+
| **WebBrain VL 2, deployed ONNX Q4/FP16** | **450M** | **44/100** | 76.2% |
|
| 40 |
+
| Gemma 4 E4B IT, MLX | E4B | 41/100 | 81.3% |
|
| 41 |
+
| Qwen 3.5 2B, MLX | 2B | 39/100 | 79.1% |
|
| 42 |
+
| Qwen 3.5 0.8B | 0.8B | 20/100 | 41.6% |
|
| 43 |
+
| LFM2.5-VL-1.6B, MLX | 1.6B | 12/100 | 44.4% |
|
| 44 |
+
|
| 45 |
+
All rows used the same 100 screenshots and production six-section prompt. The
|
| 46 |
+
[benchmark images, rubrics, runner, and committed result files](https://github.com/esokullu/webbrain/tree/main/test/vision)
|
| 47 |
+
are public. Gemma E4B is plotted at its effective 4B class. Latency is omitted
|
| 48 |
+
because the rows used different machines, quantizations, and inference stacks.
|
| 49 |
+
|
| 50 |
+
Further reading:
|
| 51 |
+
|
| 52 |
+
- [Tiny Vision Models Compared II](https://webbrain.one/blog/tiny-vision-models-compared-ii/)
|
| 53 |
+
- [From 16K to 50K Browser Screenshots](https://webbrain.one/blog/fine-tuning-lfm25-vl-450m-for-browser-tasks/)
|
| 54 |
+
|
| 55 |
## Intended use
|
| 56 |
|
| 57 |
- Browser screenshot description for a downstream automation planner.
|
|
|
|
| 139 |
Machine-readable results are in `eval/`. Latency is implementation- and
|
| 140 |
hardware-specific, so it is not presented as a portable speed claim.
|
| 141 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
## Limitations
|
| 143 |
|
| 144 |
- Small, low-contrast, occluded, or non-Latin text can still be missed.
|
SHA256SUMS
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c LICENSE
|
| 2 |
-
|
| 3 |
2af924baa6fa3c8bbe6242393b7b689594802312e27a8d834f5df978d15eb2a2 assets/browser-vision-benchmark-strict-passes.png
|
| 4 |
fb47d96d673c04d1ea747de2dca4e8d0ad81f8708508dc508b79236199c8b4d9 assets/browser-vision-performance-vs-size.png
|
| 5 |
117e4eff25a5b8c8bc06044de386033edc69dc1b51f56852bd649286e6f7facd adapter/README.md
|
|
|
|
| 1 |
4d28ca14dedc0b3d0fcc2b3339f0e79931faa33874f3d24f522183a8fc70068c LICENSE
|
| 2 |
+
94ba0cd8a83eb01ad3d7e7c27f979ae61f17af8001a731a8af2567784d590398 README.md
|
| 3 |
2af924baa6fa3c8bbe6242393b7b689594802312e27a8d834f5df978d15eb2a2 assets/browser-vision-benchmark-strict-passes.png
|
| 4 |
fb47d96d673c04d1ea747de2dca4e8d0ad81f8708508dc508b79236199c8b4d9 assets/browser-vision-performance-vs-size.png
|
| 5 |
117e4eff25a5b8c8bc06044de386033edc69dc1b51f56852bd649286e6f7facd adapter/README.md
|