|
Download README.md from inclusionAI/LLaDA-UI: direct link, hf CLI and curl.
- Browser
- Download file 7.99 kB
-
https://huggingface.co/inclusionAI/LLaDA-UI/resolve/main/README.md
- Command line
-
hf download hf://inclusionAI/LLaDA-UI/README.md
-
curl -L -o README.md https://huggingface.co/inclusionAI/LLaDA-UI/resolve/main/README.md
7.99 kB
| pipeline_tag: image-text-to-text | |
| tags: | |
| - multimodal | |
| - vision-language | |
| - gui-agent | |
| - diffusion-language-model | |
| - mixture-of-experts | |
| - block-diffusion | |
| <h1 align="center">LLaDA-UI</h1> | |
| <h3 align="center">Bringing Block-wise Diffusion to Vision-Language GUI Agents</h3> | |
| <p align="center"> | |
| <a href="https://arxiv.org/abs/2609.13287"><img src="https://img.shields.io/badge/Paper-arXiv-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white" alt="Paper"></a> | |
| <a href="https://www.inclusion-ai.org/LLaDA-UI/"><img src="https://img.shields.io/badge/Project-Page-4C8BF5?style=for-the-badge&logo=googlechrome&logoColor=white" alt="Project Page"></a> | |
| <a href="https://huggingface.co/inclusionAI/LLaDA-UI"><img src="https://img.shields.io/badge/%F0%9F%A4%97-Model-FFD21E?style=for-the-badge" alt="Hugging Face Model"></a> | |
| <a href="https://github.com/inclusionAI/LLaDA-UI"><img src="https://img.shields.io/badge/GitHub-Code-181717?style=for-the-badge&logo=github" alt="GitHub Code"></a> | |
| </p> | |
| <p align="center"> | |
| <a href="#highlights"><img src="https://img.shields.io/badge/Diffusion-Model-7B61FF" alt="Diffusion Model"></a> | |
| <a href="#highlights"><img src="https://img.shields.io/badge/Multimodal-LLM-00A67E" alt="Multimodal LLM"></a> | |
| <a href="#highlights"><img src="https://img.shields.io/badge/GUI-Agent-EA4AAA" alt="GUI Agent"></a> | |
| <a href="#highlights"><img src="https://img.shields.io/badge/Mixture--of--Experts-MoE-2F80ED" alt="Mixture of Experts"></a> | |
| </p> | |
| LLaDA-UI is an MoE-based, block-wise diffusion vision-language GUI agent. It | |
| understands screenshots at their native aspect ratio and produces grounded | |
| coordinates or structured actions for mobile, desktop, and web interfaces. | |
| This repository contains the model weights. The inference code, example | |
| requests, and SGLang serving instructions are available in the | |
| [LLaDA-UI code repository](https://github.com/inclusionAI/LLaDA-UI). | |
| <p align="center"> | |
| <img src="assets/figure1_overview_animated.gif" width="100%" alt="LLaDA-UI GUI-agent benchmark comparison and animated qualitative diffusion decoding"> | |
| </p> | |
| <p align="center"><em>Figure 1. LLaDA-UI GUI-agent performance and qualitative block-wise diffusion decoding. The radar chart and GUI observation remain static while the model output is progressively denoised.</em></p> | |
| ## Highlights | |
| - **Diffusion-native GUI agent:** reasons about screenshots and generates GUI | |
| actions with block-wise diffusion decoding rather than autoregressive | |
| token-by-token decoding. | |
| - **Mixture-of-Experts architecture:** approximately 16.7B total parameters. | |
| - **Native-resolution vision:** preserves the aspect ratio and visual details | |
| of mobile, desktop, and web screenshots. | |
| - **Cross-platform interaction:** supports GUI grounding and agent tasks on | |
| mobile, desktop, and web interfaces. | |
| - **Structured output:** emits normalized coordinates or tagged reasoning and | |
| executable actions. | |
| ## Model Details | |
| | Item | Description | | |
| |---|---| | |
| | Model type | MoE block-wise diffusion vision-language GUI agent | | |
| | Total parameters | Approximately 16.7B | | |
| | Language backbone | LLaDA2.0-mini-base | | |
| | Vision encoder | Native-resolution ViT initialized from SigLIP, with 2D RoPE | | |
| | Output | Grounded coordinates, text reasoning, and structured GUI actions | | |
| | Coordinate convention | Integer coordinates normalized to `[0, 999]` | | |
| | Supported domains | GUI grounding, mobile, desktop, and web | | |
| | Weight format | BF16 Safetensors | | |
| ## Inference Pipeline | |
| <p align="center"> | |
| <img src="assets/figure2_inference_pipeline.png" width="100%" alt="LLaDA-UI multimodal block-wise diffusion inference pipeline"> | |
| </p> | |
| <p align="center"><em>GUI observations from web, mobile, and desktop environments are encoded at native resolution and combined with task and interaction-history tokens. The LLaDA2.0 decoder progressively denoises the model output into reasoning and executable actions.</em></p> | |
| ## Benchmark Results | |
| <p align="center"> | |
| <img src="assets/gui_agent_evaluation.png" width="100%" alt="LLaDA-UI GUI-agent benchmark results"> | |
| </p> | |
| <p align="center"><em>GUI-agent evaluation reproduced from the technical report. See the code repository for evaluation details and the latest result artifacts.</em></p> | |
| ## Quick Start | |
| ### 1. Clone the inference code | |
| ```bash | |
| git clone https://github.com/inclusionAI/LLaDA-UI.git | |
| cd LLaDA-UI | |
| ``` | |
| ### 2. Create an environment | |
| The standalone Hugging Face inference path has been tested with Python 3.10, | |
| PyTorch 2.5.1, Transformers 4.51.0, and FlashAttention 2.7.4.post1. | |
| ```bash | |
| conda create -n llada-ui python=3.10 -y | |
| conda activate llada-ui | |
| pip install torch==2.5.1 torchvision \ | |
| --index-url https://download.pytorch.org/whl/cu124 | |
| pip install transformers==4.51.0 Pillow numpy einops accelerate \ | |
| sentencepiece protobuf safetensors | |
| pip install ninja | |
| pip install flash-attn==2.7.4.post1 --no-build-isolation --no-cache-dir | |
| ``` | |
| FlashAttention must be built against a compatible CUDA and PyTorch setup. The | |
| checkpoint is about 32 GB in BF16; additional GPU memory is required for model | |
| execution and visual tokens. | |
| ### 3. Run single-image grounding | |
| The following command downloads the checkpoint from Hugging Face on first use | |
| and returns the center point of the requested UI element: | |
| ```bash | |
| CUDA_VISIBLE_DEVICES=0 IMAGE_MAX_PIXELS=12845056 \ | |
| python -u inference/inference_hf.py \ | |
| --ckpt inclusionAI/LLaDA-UI \ | |
| --image /path/to/screenshot.png \ | |
| --prompt "click the search button" \ | |
| --gen-length 32 \ | |
| --steps 32 \ | |
| --block-length 32 | |
| ``` | |
| Example output: | |
| ```text | |
| GENERATION: [742,186] | |
| POINT(0~1): [0.742, 0.186] | |
| ``` | |
| The raw model coordinate is normalized to `[0, 999]`. The inference script | |
| also prints the corresponding `[0, 1]` coordinate. To convert it to screen | |
| pixels for an image of width `W` and height `H`, use `(x * W, y * H)` with the | |
| `[0, 1]` values. | |
| Large screenshots may also require increasing `--max-length` beyond its | |
| default value of 8192. | |
| ## SGLang Serving | |
| For agent evaluation or an OpenAI-compatible endpoint, follow the | |
| [SGLang server guide](https://github.com/inclusionAI/LLaDA-UI/tree/main/inference/sglang_server). | |
| The server uses LLaDA-UI-specific multimodal diffusion patches and cannot be | |
| started from a stock SGLang installation alone. | |
| After installing the documented serving environment, launch it with: | |
| ```bash | |
| huggingface-cli download inclusionAI/LLaDA-UI \ | |
| --local-dir /path/to/LLaDA-UI-checkpoint | |
| CUDA_VISIBLE_DEVICES=0,1 SGLANG_DP_SIZE=2 \ | |
| bash serve_llada_ui.sh /path/to/LLaDA-UI-checkpoint | |
| ``` | |
| Then run one of the packaged requests: | |
| ```bash | |
| export SGLANG_BASE_URL=http://127.0.0.1:30000/v1 | |
| export SGLANG_MODEL=LLaDA-UI | |
| python3 inference/sglang_client.py --example mobile | |
| python3 inference/sglang_client.py --example desktop | |
| python3 inference/sglang_client.py --example web | |
| ``` | |
| ## Output Format | |
| For GUI navigation, a typical response contains tagged reasoning followed by | |
| a structured action: | |
| ```text | |
| <think>Reasoning grounded in the current GUI state.</think> | |
| <action>Click(box=(x,y))</action> | |
| ``` | |
| Here, `x` and `y` are integer-normalized to `[0, 999]`. Despite the field name | |
| `box`, point-based actions contain one interaction coordinate rather than a | |
| rectangular bounding box. | |
| For GUI grounding, the model directly returns `[x,y]`. It returns `[-1,-1]` | |
| when the requested target is infeasible or unrelated to the screenshot. | |
| ## Citation | |
| ```bibtex | |
| @misc{gu2026lladauibringingblockwisediffusion, | |
| title={LLaDA-UI: Bringing Block-wise Diffusion to Vision-Language GUI Agents}, | |
| author={Zhangxuan Gu and Haoxing Chen and Qi Qin and Yi Xin and Kai Gan and Lin Liu and Long Cui and Xiaomei Wang and Beitong Zhou and Yunzhu Zhang and Zhengwen Zeng and Changlong Gao and Weizhi Chen and Rongchao Zhang and Haoyuan Wu and Shuheng Shen and Changhua Meng and Weiqiang Wang and Jianguo Li and Zhenzhong Lan}, | |
| year={2026}, | |
| eprint={2609.13287}, | |
| archivePrefix={arXiv}, | |
| primaryClass={cs.CV}, | |
| url={https://arxiv.org/abs/2609.13287}, | |
| } | |
| ``` | |