news 2026/9/15 18:09:48

UI-TARS 本地部署与推理实战:从截图到脚本一次跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UI-TARS 本地部署与推理实战:从截图到脚本一次跑通

UI-TARS 本地部署与推理实战:从截图到脚本一次跑通

【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS

云端推理服务排队时,一次 GUI 操作指令往往要等好几秒。UI-TARS 本地部署把视觉语言模型的截图理解与脚本生成搬回本机,UI-TARS 本地推理从此不依赖外网。本文基于仓库codes/目录,走通环境搭建、权重准备、坐标转换到 pyautogui 脚本生成的完整链路,全程以最小可运行示例为主。

上图给出 UI-TARS 的闭环:模型观察截图,输出 Thought 与 Action,再由执行端落回界面。下面按"先跑通、再讲清"的顺序拆成四步。

三分钟跑通环境:克隆与依赖安装

先确认硬件与软件基线。CPU 侧建议 8GB 内存起步,接了支持 CUDA 的 NVIDIA 显卡能明显缩短单轮推理时间;软件侧需要 Python 3.10+、Git,以及 pip 或 uv 任一。

git clone https://gitcode.com/GitHub_Trending/ui/UI-TARS cd UI-TARS/codes pip install . uv run python -m unittest discover tests

最后一条是仓库自带的解析单元测试,专门验证 codes/ui_tars/action_parser.py 里坐标解析与代码生成这两条链路是否可用。

实践小贴士:先让这条测试绿了,再去接真实模型输出。环境有问题时,测试脚本能比主流程更快把原因暴露出来。

模型权重准备与首次本地推理验证

模型权重不在仓库里,需自行从模型平台下载,放到一个本地目录,例如codes/models/(该目录需手动创建)。这里仓库只读,权重与截图都放在工作区,不动仓库内文件。

验证"能不能跑",不必等真实模型。仓库data/下有一张现成的桌面截图,配合一条写死的模型输出,就能走完一次本地推理的解析侧:

uv run python codes/tests/inference_test.py

该脚本会打印缩放前后的尺寸,并画出一张带红点的结果图。红点落在哪里,代表模型坐标还原后真正会点的位置。

坐标偏移的 3 个排查点与缩放原理

坐标偏移几乎都出在这三处,先记住再动手:一是原图尺寸拿错了,二是喂给模型的缩放后尺寸(origin_resized_height/width)与实际不一致,三是factor与模型训练时的取值对不上。

原理上,smart_resize会把图像缩到"两边都是 28 的整数倍、且总像素落在100*28*2816384*28*28区间"的尺寸,返回(新高, 新宽)。模型是在这张缩放图上出坐标的,所以要还原,就必须知道这张图的尺寸。

from PIL import Image from ui_tars.action_parser import smart_resize, parse_action_to_structure_output shot = Image.open("data/coordinate_process_image.png") orig_w, orig_h = shot.size new_h, new_w = smart_resize(orig_h, orig_w) # 对齐 28 的倍数 resp = "Thought: 点击设置\nAction: click(start_box='(197,525)')" out = parse_action_to_structure_output( resp, factor=1000, origin_resized_height=new_h, origin_resized_width=new_w, model_type="qwen25vl") print(out[0]["action_inputs"]["start_box"]) # 得到 0~1 相对坐标

model_type="qwen25vl"时,模型给的是缩放图上的绝对像素,函数内部用它除以new_h/new_w归一到 0~1;换成qwen2vl这类相对坐标模型,则改用factor(常取 1000)去缩放。两条路径最终都收敛到同一份 0~1 的相对坐标,这是后面任意分辨率都能复用的关键。

把模型输出转成 pyautogui 可执行代码

拿到 0~1 坐标后,parsing_response_to_pyautogui_code负责乘回当前截图的image_width/image_height,并映射成clicktypedraghotkey等具体调用:

from ui_tars.action_parser import parsing_response_to_pyautogui_code script = parsing_response_to_pyautogui_code( responses=out, image_height=orig_h, image_width=orig_w, ) print(script) # 输出形如: # pyautogui.click(x=..., y=..., button='left')

把打印结果另存为.py文件即可执行。点击、输入、拖拽、快捷键这些分支都已内置,想确认边界行为时,可对照 codes/tests/action_parser_test.py 里的三个用例,它分别覆盖parse_action、结构化解析与代码生成。

常见坑位:Windows 缩放与依赖冲突

  • 坐标偏移:核对原图尺寸、origin_resized_*是否等于真实喂入尺寸、factor是否匹配模型。三者只要有一处对不上,红点就会整体偏移。
  • 依赖冲突:uv 重装一次通常能解决大部分版本打架问题。
  • Windows 显示缩放:缩放比例不是 100% 时,pyautogui 的物理像素与截图坐标会差一个倍数,建议先统一到 100% 再排查其他项。
uv pip install --force-reinstall .

实践小贴士:怀疑缩放问题时,先用系统"显示设置"把比例调回 100% 复测一次,比反复改解析参数更省事。

跑通这条链路后,下一步可以接上真实的"截图—推理—执行"循环,让模型自主读回结果图;或在换一张不同分辨率的截图上复跑,验证相对坐标的通用性;也可把每次生成的脚本纳入批量测试,形成可回归的 GUI 自动化用例集。

【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 18:08:01

2026最新无锡做网站优化哪家好,避开备案坑只需这3招

2026最新无锡做网站优化哪家好,避开备案坑只需这3招 备案号还没下来,服务器IP就被拦截了?这是很多无锡中小企业老板最头疼的事。在2026年的网络环境下,备案流程比前几年复杂得多,ICP备案、公安联网备案、SSL证书部署,每一步都可能卡住进度。别急,咱们今天不聊虚的,直接拆解无锡本地建站服务的底层…

作者头像 李华
网站建设 2026/9/15 18:07:22

生存分析必修:Cox模型残差检验与PH假设验证

残差检验:Cox比例风险模型的假设检验条件做生存分析的同学应该都听过一句话:跑一个 Cox 模型很简单,但模型的两个前提假设有没有满足,才是真正见功力的时候。这个系列讲到第三十讲,前面我们把 Cox 模型的基本原理、HR …

作者头像 李华
网站建设 2026/9/15 18:06:52

无感织网与全域复刻:摆脱人脸依赖的跨镜头三维连续追踪实战 技术白皮书(移民局限定区域专用)

摘要移民管制限定区域具有人员流动密集、行进路径复杂、遮挡频繁、逆光弱光多发、人员口罩遮挡、无法依赖人脸识别等典型场景特征。传统安防追踪体系高度依赖人脸抓拍、特征比对、单镜头二维轨迹拼接,存在无脸失效、跨镜头断链、遮挡丢失、轨迹平面失真、无法还原真…

作者头像 李华
网站建设 2026/9/15 18:05:36

网络与IO故障排查实战:从TCP重传到连接超时

排查网络与IO问题,是每个后端开发者和运维都绕不开的硬仗。我做了十多年一线运维和架构,回头去看,线上那些最磨人的故障,十有七八都出在这两条路上——网络在悄悄丢包,或者磁盘、连接在某个瞬间堵住了。更麻烦的是&…

作者头像 李华