OmniParser README

The project's README from github.com/microsoft/OmniParser. As one markdown file: README.md.

OmniParser: Screen Parsing tool for Pure Vision Based GUI Agent

Logo

arXiv License

📢 [Project Page] [V2 Blog Post] [Models V2] [Models V1.5] [HuggingFace Space Demo]

OmniParser is a comprehensive method for parsing user interface screenshots into structured and easy-to-understand elements, which significantly enhances the ability of GPT-4V to generate actions that can be accurately grounded in the corresponding regions of the interface.

News

Install

First clone the repo, and then install environment:

cd OmniParser
conda create -n "omni" python==3.12
conda activate omni
pip install -r requirements.txt

Until Hugging Face PR #37 is merged, download the latest YOLOv9-E detector from the PR:

huggingface-cli download microsoft/OmniParser-v2.0 icon_detect_v3/model.pt \
  --revision refs/pr/37 --local-dir weights

OmniParser prefers this local weight. After the PR is merged, it will download the same weight automatically on first use. Download the caption weights into the weights folder:

   for f in icon_caption/{config.json,generation_config.json,model.safetensors}; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights; done
   mv weights/icon_caption weights/icon_caption_florence

Examples:

We put together a few simple examples in the demo.ipynb.

Gradio Demo

To run gradio demo, simply run:

python gradio_demo.py

Model Weights License

icon_detect_v3 is based on the MIT-licensed YOLOv9 implementation. Earlier Ultralytics-based icon detectors retain their original AGPL license. The caption models are under the MIT license.

📚 Citation

Our technical report can be found here. If you find our work useful, please consider citing our work:

@misc{lu2024omniparserpurevisionbased,
      title={OmniParser for Pure Vision Based GUI Agent}, 
      author={Yadong Lu and Jianwei Yang and Yelong Shen and Ahmed Awadallah},
      year={2024},
      eprint={2408.00203},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2408.00203}, 
}

OmniParser (microsoft/OmniParser)

gpt-4
Searching Database…

What is this?OmniParser parses GUI screenshots into structured, labeled elements (icons, text, interactable regions) so a vision model like GPT-4V can accurately decide what to click or type on a screen.
Is this a ready-made agent app, or a toolkit I plug into my own agent?It is a perception toolkit (a YOLOv9-based region detector plus an icon captioning model) that you call from a notebook, a Gradio demo, or 'OmniTool' which wires it up to a vision model to drive a VM.
How do I get it running?Clone the repo, install the environment, then download the detector and caption weights into the weights folder; a Gradio demo and demo.ipynb are included as examples.
Which vision models can I pair it with via OmniTool?OmniTool works out of the box with OpenAI (4o/o1/o3-mini), DeepSeek (R1), Qwen (2.5VL), or Anthropic Computer Use.
Any licensing gotchas with the model weights?Yes: the newer icondetectv3 detector and caption models are MIT, but earlier Ultralytics-based icon detectors keep their original AGPL license, so check which weight version you pull.
What is new in OmniParser V2?V2 adds finer small-icon detection and predicts whether each UI element is interactable, and it set a new state of the art of 39.5% on the Screen Spot Pro grounding benchmark.
What is OmniTool?OmniTool is a companion app that lets you control a Windows 11 VM using OmniParser's screen parsing combined with a vision model of your choice, such as GPT-4o or Claude Computer Use.
What benchmark results back this up?OmniParser topped the Windows Agent Arena leaderboard and achieved 39.5% on the newer Screen Spot Pro grounding benchmark with V2.
Creator
microsoft
Size
50.8 MB
Stars
25.5K
Age
2y
Commits · 90 Days