alt.freeweights.text / OmniParser-v2.0
From: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.textSubject:

OmniParser-v2.0

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

Model. Safetensors weights, 1.41 GB in all. Published by microsoft under MIT.

text1.41GBOmniParser-v2.0safetensorspermissive
FactsParamsnot statedSize1.41 GBFormatssafetensorsTasknot taggedLicenseMITFrom sourcepermissive
$ fw get microsoft/OmniParser-v2.0
# manifest sha256 6d20dd120b4a… · 1.41 GB · 15 files
$ fw verify ./OmniParser-v2.0 microsoft/OmniParser-v2.0
From sourceHosted (signed)microsoft/OmniParser-v2.0Last check: 2026-11-15 03:22 UTC

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

Overview

Size
1.41 GB
Weights
1.08 GB (safetensors)
Parameters
not stated
Formats
safetensors
Task
not tagged
License
MIT (permissive)
Files
15, each with a sha256
Publisher
microsoft
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

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 03:22 UTCpassed

Model card

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

📢 [GitHub Repo] [OmniParser V2 Blog Post] Huggingface demo

Model Summary#

OmniParser is a general screen parsing tool, which interprets/converts UI screenshot to structured format, to improve existing LLM based UI agent. Training Datasets include: 1) an interactable icon detection dataset, which was curated from popular web pages and automatically annotated to highlight clickable and actionable regions, and 2) an icon description dataset, designed to associate each UI element with its corresponding function.

This model hub includes a finetuned version of YOLOv8 and a finetuned Florence-2 base model on the above dataset respectively. It additionally includes icon_detect_v3, an MIT licensed interactable region detector finetuned from YOLOv9-E using the MIT licensed MultimediaTechLab/YOLO implementation (see New: MIT licensed detector weights). For more details of the models used and finetuning, please refer to the paper.

What's new in V2?#

  • Larger and cleaner set of icon caption + grounding dataset
  • 60% improvement in latency compared to V1. Avg latency: 0.6s/frame on A100, 0.8s on single 4090.
  • Strong performance: 39.6 average accuracy on ScreenSpot Pro
  • Your agent only need one tool: OmniTool. Control a Windows 11 VM with OmniParser + your vision model of choice. OmniTool supports out of the box the following large language models - OpenAI (4o/o1/o3-mini), DeepSeek (R1), Qwen (2.5VL) or Anthropic Computer Use. Check out our github repo for details.

New: MIT licensed detector weights (icon_detect_v3)#

The original icon_detect weights are finetuned from YOLOv8 and are therefore distributed under the AGPL-3.0 license, which is a blocker for many downstream users. We now additionally release icon_detect_v3/model.pt, an interactable region detector finetuned from YOLOv9-E on the same detection data and released under the MIT license (see icon_detect_v3/LICENSE).

The model is finetuned from YOLOv9-E using the MultimediaTechLab/YOLO implementation, which is MIT licensed. This is what makes the permissive relicensing possible: unlike the Ultralytics YOLOv8 codebase behind icon_detect, neither the training code nor the resulting weights carry AGPL-3.0 obligations.

Pairing icon_detect_v3 with icon_caption gives a fully MIT licensed OmniParser pipeline. icon_detect is still available and unchanged for users who are fine with AGPL-3.0.

The weights are shipped as a self-contained TorchScript module, so inference only requires torch (no ultralytics and no AGPL licensed code at runtime):

import numpy as np
import torch
from PIL import Image
from torchvision.ops import nms

IMGSZ = 1280
STRIDES = (8, 16, 32)
CONF_THRESHOLD = 0.05
IOU_THRESHOLD = 0.45

model = torch.jit.load("icon_detect_v3/model.pt", map_location="cpu").eval()

# Letterbox the screenshot into a square IMGSZ canvas, keeping the aspect ratio.
image = Image.open("screenshot.png").convert("RGB")
width, height = image.size
scale = min(IMGSZ / width, IMGSZ / height)
resized = image.resize((round(width * scale), round(height * scale)), Image.BILINEAR)
canvas = Image.new("RGB", (IMGSZ, IMGSZ), (114, 114, 114))
canvas.paste(resized, (0, 0))
x = torch.from_numpy(np.array(canvas)).permute(2, 0, 1).float()[None] / 255.0

with torch.no_grad():
    outputs = model(x)  # (cls_logits, box_ltrb) per stride, in that order

# Decode the raw heads: class logits need a sigmoid, and the 4 box channels are
# left/top/right/bottom distances from each grid cell center, in grid units.
boxes, scores = [], []
for i, stride in enumerate(STRIDES):
    cls = outputs[2 * i].sigmoid()[0, 0]
    ltrb = outputs[2 * i + 1][0]
    grid = cls.shape[-1]
    gy, gx = torch.meshgrid(
        torch.arange(grid, dtype=torch.float32),
        torch.arange(grid, dtype=torch.float32),
        indexing="ij",
    )
    cx, cy = gx + 0.5, gy + 0.5
    left, top, right, bottom = ltrb
    boxes.append(
        torch.stack(
            [(cx - left) * stride, (cy - top) * stride,
             (cx + right) * stride, (cy + bottom) * stride], dim=-1
        ).reshape(-1, 4)
    )
    scores.append(cls.reshape(-1))

boxes, scores = torch.cat(boxes), torch.cat(scores)
keep = scores > CONF_THRESHOLD
boxes, scores = boxes[keep], scores[keep]
keep = nms(boxes, scores, IOU_THRESHOLD)
boxes, scores = boxes[keep], scores[keep]

# Map the boxes from the letterboxed canvas back to original image coordinates.
boxes = boxes / scale
boxes[:, 0::2] = boxes[:, 0::2].clamp(0, width)
boxes[:, 1::2] = boxes[:, 1::2].clamp(0, height)
# boxes: (N, 4) xyxy in original pixels, scores: (N,) confidence

Notes:

  • The model is single class (interactable region), so cls has one channel per scale.
  • CONF_THRESHOLD defaults to 0.05 to match the box_threshold that OmniParser uses with icon_detect. The detector is deliberately low confidence on small UI elements, so raising this much above 0.1 starts dropping real elements (icons, toolbar buttons, footer links) rather than just filtering noise. Tune CONF_THRESHOLD / IOU_THRESHOLD for your screenshots the same way you would tune box_threshold / iou_threshold for icon_detect.
  • The letterbox padding above is top-left anchored, which keeps the coordinate mapping to a single scale division. If you center the padding instead, subtract the pad offsets before dividing.

Responsible AI Considerations#

Intended Use#

  • OmniParser is designed to be able to convert unstructured screenshot image into structured list of elements including interactable regions location and captions of icons on its potential functionality.
  • OmniParser is intended to be used in settings where users are already trained on responsible analytic approaches and critical reasoning is expected. OmniParser is capable of providing extracted information from the screenshot, however human judgement is needed for the output of OmniParser.
  • OmniParser is intended to be used on various screenshots, which includes both PC and Phone, and also on various applications.

limitations#

  • OmniParser is designed to faithfully convert screenshot image into structured elements of interactable regions and semantics of the screen, while it does not detect harmful content in its input (like users have freedom to decide the input of any LLMs), users are expected to provide input to the OmniParser that is not harmful.
  • While OmniParser only converts screenshot image into texts, it can be used to construct an GUI agent based on LLMs that is actionable. When developing and operating the agent using OmniParser, the developers need to be responsible and follow common safety standard.

License#

Licenses differ per model folder, please refer to the LICENSE file in the folder of each model:

FolderModelLicense
icon_detectYOLOv8 based interactable region detector (Ultralytics)AGPL-3.0
icon_detect_v3YOLOv9-E based interactable region detector (MultimediaTechLab/YOLO, MIT)MIT
icon_captionFlorence-2 based icon captionerMIT

Using icon_detect_v3 together with icon_caption yields an OmniParser pipeline that is entirely MIT licensed.

Files

15 files · 1.41 GBWeights 1.08 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 15 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md7.82 KB6ae154d65bfc2755703440be02acf63a37b741a1101b7c42b666da93a4ed2310
config.json0 Be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
handler.py21.7 KB3a7f3dc39de8041193fb4d9d875277cbf6eba58502d02b30cd3efab2c9d1f10f
icon_caption/LICENSE1.14 KBd9a1b1e30d633d5732ea18e3cba9538d293ebc53e1a9e4e96ab739e0c5c4f1cb
icon_caption/config.json5.75 KB1c3c63bb16910b8fa7f3b74fb7ae4c8ffefbe7b008847e2e0b21be6aa807593b
icon_caption/generation_config.json292 Ba2ef03e814a7ecbf6fcfe7479afd3e7385c6800202fcede1dc1bc01849375464
icon_caption/model.safetensors1.08 GB01b934b0fe2d07b181e2d07752f16ae27c9d0ea88ddffe13a9a003aa9680f233
icon_detect/LICENSE34.5 KB4df3c306dddaaf4baffdff5ca820cc679ac8cd6dc263c6a74517783e42fa7a3b
icon_detect/model.pt40.6 MBdab3d4351ad00b035db829909a4db98354d5a90f6990e4ac00222a9a95d4bf57
icon_detect/model.yaml1.14 KB0edced8dfb9c619ca187cf0f84139d63b4cff9011890a9bc1e9bd6bb08f43b8a
icon_detect/train_args.yaml1.69 KB6acc8dcdc8a38ccfafc47ccfdb0087b8545eab6f9d9a373c0504bbb5a45a0277
icon_detect_v3/LICENSE1.07 KB646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2
icon_detect_v3/model.pt281 MB11c6cbb77f22569fab22d86c76407a83ec81ab89dbfe28279854822d6e3fb00c
requirements.txt104 Bf4600c588dbf69d6de3f70e715ad8dd0b1de5c63271cbd993b7ce95e9903cded
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
f55d0750e5 pinned now2026-11-15 03:22 UTC15 files · 1.41 GB

Use it

$ fw get microsoft/OmniParser-v2.0
# manifest sha256 6d20dd120b4a… · 1.41 GB · 15 files
$ fw verify ./OmniParser-v2.0 microsoft/OmniParser-v2.0
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/microsoft/OmniParser-v2.0.json --dir ./OmniParser-v2.0 $ python3 fw.py verify ./OmniParser-v2.0 ./microsoft__OmniParser-v2.0.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/OmniParser-v2.0 --revision f55d0750e5b94db2125ef0b45b0fa4a85ddc59b4 --local-dir ./OmniParser-v2.0

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
6ae154d65bfc2755703440be02acf63a37b741a1101b7c42b666da93a4ed2310
Terms gate
No extra terms beyond 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: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.textSubject: OmniParser-v2.0Date: 2026-11-15Commit: f55d075Signed: 2DC28CC7B26A283B ✓
Upstream
microsoft/OmniParser-v2.0
Pinned commit
f55d0750e5b94db2125ef0b45b0fa4a85ddc59b4
Manifest
OmniParser-v2.0.json · .minisig
Manifest sha256
6d20dd120b4a1fb0a0778b831cb6c37a22a15d8cf2150cb5d77ed548c75242c2
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:22 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/microsoft/OmniParser-v2.0.json $ curl -O https://freeweights.allternit.com/manifests/microsoft/OmniParser-v2.0.json.minisig $ minisign -Vm OmniParser-v2.0.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

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/OmniParser-v2.0
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. OmniParser-v2.0.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B