ShowUI
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你只需要对AI说一句"帮我把浏览器里的搜索栏移到屏幕左边",AI就能精准地识别出搜索栏的位置、自动拖动它——就像一个真实的人类用户在操作一样。这不是科幻,ShowUI 正在让这件事变成现实。
要让AI真正替代人类操作电脑,需要跨越三道坎:看得懂界面(视觉理解)、理解人类意图(语言推理)、精准执行动作(动作生成)。传统的GUI智能体方案要么依赖OCR+坐标的粗暴方式,要么需要大量人工标注数据,泛化能力极差——换一个APP、一个网页布局,模型就"瞎"了。
ShowUI 由新加坡国立大学(NUS)Show Lab团队与微软联合开发,于CVPR 2025正式发表,并在NeurIPS 2024 Open-World Agents workshop荣获Outstanding Paper Award。它基于Qwen2-VL架构,引入创新的UI引导Token选择机制,以仅2B参数的轻量级规模实现了与闭源模型抗衡的GUI操控能力。
图1:ShowUI视觉-语言-动作模型架构概览
ShowUI的核心创新在于UI-Guided Token Selection。传统的视觉语言模型在处理GUI截图时,会将整张图片压缩为固定数量的视觉Token——这导致小按钮、图标等关键UI元素在压缩过程中信息大量丢失。
ShowUI的做法是:先通过视觉感知模块识别出UI组件(如按钮、输入框)的位置和边界,然后针对性地对高密度UI区域分配更多的视觉Token,对背景区域则压缩处理。这就像给相机的镜头加了一个"智能眼镜",让模型能够重点"看"最重要的交互元素。
ShowUI统一处理三类GUI任务:
Grounding(定位):给定截图和文字指令,模型输出目标元素的精确坐标 [x, y]。例如输入"点击搜索按钮",模型返回 [0.73, 0.21]——即截图上该按钮的相对位置。这也是ShowUI区别于传统多模态模型的核心能力。
Navigation(导航):在Mind2Web、AITW等真实网页/APP导航数据集上,ShowUI能够理解任务指令、观察当前界面、推理下一步操作(点击、输入、滚动),形成完整的"观察→推理→动作→反馈"闭环。
Computer Use(计算机操控):集成到OOTB(Out-of-the-Box)框架后,ShowUI可以接管真实电脑,响应"帮我打开Chrome并搜索今天天气"这类复杂指令,在真实操作系统环境中执行多步骤任务。
图2:UI引导Token选择效果——(a) 无UI引导时需要处理1296个视觉patch;(b) 使用UI-graph后仅需处理167个UI组件,大幅提升效率和精度
ShowUI继承并扩展了Qwen2-VL的视觉编码器架构,核心文件位于 model/showui/ 模块:
modeling_showui.py(约98KB):完整的VLA模型实现,包含视觉编码器、投影层、语言解码器的整合,以及ShowUICausalLMOutputWithPast输出结构。原生支持FlashAttention2加速推理。configuration_showui.py:Qwen2VLConfig配置类,定义了视觉编码器与语言模型的融合参数。processing_showui.py / image_processing_showui.py:图像预处理与批处理逻辑。基座模型为showlab/ShowUI-2B(约4GB),发布于HuggingFace,支持Int8/Int4量化,消费级GPU即可运行。同时支持Qwen2.5-VL等最新基座模型的微调与推理。
ShowUI的训练数据来自多个公开数据集的融合:
| 数据集 | 类型 | 用途 |
|---|---|---|
| Mind2Web | 网页导航 | 多步骤任务规划 |
| AITW | Android APP | 跨平台泛化 |
| Miniwob | 简化Web环境 | 细粒度动作控制 |
| ScreenSpot | 屏幕定位 | Grounding精度 |
| ShowUI-desktop | 桌面环境 | 真实GUI操作 |
训练框架支持DeepSpeed ZeRO-3分布式训练、BF16精度、QLoRA高效微调、FlashAttention2/SDPA混合注意力。代码位于 train.py 和 main/trainer.py,通过WandB监控训练过程。数据预处理流程在 data/ 和 prepare/ 目录中实现。
项目方提供了免费的HuggingFace Spaces在线Demo,无需任何安装,直接上传截图即可体验Grounding能力。API调用模式(python3 api.py)同样无需本地GPU,基于HuggingFace Gradio Client调用远程API。
git clone https://github.com/showlab/ShowUI.git
cd ShowUI && pip install -r requirements.txt
python app.py # 启动Gradio Web界面
硬件需求:推荐NVIDIA GPU,8GB+显存(Int8量化可降至6GB),Python >= 3.10,CUDA >= 11.8。首次运行会自动从HuggingFace下载约4GB模型权重。
详见TRAIN.md,支持混合多个数据集进行多任务联合训练。使用DeepSpeed多卡多节点分布式训练,通过LoRA/QLoRA进行参数高效微调。
图3:浏览器界面定位示例——模型精准识别并点击目标元素
ShowUI并非完美,理解其局限性对于正确评估和使用至关重要:
视觉分辨率受限:尽管有UI引导Token选择策略,但模型对超高分辩率屏幕(如4K显示器)的处理能力仍有限,超出训练分布的界面密度可能导致定位精度下降。
复杂推理链弱:在需要多步骤、跨应用协作的任务中(如"打开邮箱找到老板发的PPT,复制到桌面"),ShowUI的成功率会显著下降,目前主要验证于单页/单应用场景。
安全边界模糊:Computer Use模式下模型具有操控真实系统的权限,在开放环境中部署存在误操作风险。官方OOTB集成虽然加入了沙箱机制,但边界仍需使用者自行评估。
依赖视觉质量:截图模糊、UI元素被遮挡、或使用非标准界面主题时,模型表现会大幅退化。
ShowUI的意义远超一个算法模型——它代表了一条开源VLA(视觉-语言-动作)智能体的技术路线。
从数据层面看,ShowUI团队发布的ShowUI-desktop数据集(基于GPT-4o重新标注)填补了桌面GUI数据集的空白,配套的 recaption.ipynb 工具让研究者可以低成本生成高质量GUI标注数据。
从生态层面看,ShowUI与OOTB框架的集成意味着用户可以在本地环境中运行完整的"AI操控电脑"能力,无需依赖任何闭源API。项目还与OpenBayes等国内算力平台合作提供了免费在线Demo,降低了体验门槛。
2025年12月,团队进一步发布了ShowUI-Aloha(人类演示工作流)和ShowUI-pi(GUI拖拽增强),并在2026年CVPR发表ShowUI-pi,持续拓展技术边界。
如果你在构建AI助手、RPA自动化、UI自动化测试、或者无障碍辅助工具,ShowUI是当前最值得关注的基础模型之一。
图4:ShowUI跨平台理解能力——从Safari浏览器到iOS设置,覆盖网页、安卓、iOS多端界面