问题描述
在 macOS 26.5.1 + Apple M4 环境下,使用 --local 参数运行 mano-cua 时,第一步推理正常,第二步开始出现 GPU 崩溃或图片特征不匹配错误。
错误信息
Image features and image tokens do not match: tokens: 0, features 880
[METAL] Command buffer execution failed: Caused GPU Hang Error
根本原因
visual/agents/local.py 第 276-286 行的 image token 替换逻辑错误:
# 当前代码(错误)
org_placeholder = "<image>"
new_placeholder = "<|vision_start|>鬏<|vision_end|>" # vision_start + vision_end (IDs 151652, 151653)
mlx_vlm 的 prepare_inputs() 期望 prompt 中包含 墕(image_token, ID 151655)来正确插入图片特征。使用 墕墕 会导致模型找不到图片占位符。
修复方案
# 修复后
org_placeholder = "<image>"
new_placeholder = processor.image_token # 正确的 image_token (墕)
或更简单:删除第 276-286 行的替换逻辑,让 prepare_inputs() 自动处理 <image> 占位符。
环境信息
- macOS: 26.5.1
- 芯片: Apple M4
- 内存: 32GB
- mano-cua: 1.1.4
- MLX: 0.31.2
- mlx-vlm: 0.6.3
验证结果
修复后测试通过:
- Step 1: 8.5s ✅
- Step 2: 11.1s ✅
- 任务成功完成
附加说明
初次使用本地模式时需要授予以下权限:
- 系统偏好设置 → 隐私与安全 → 屏幕录制
- 系统偏好设置 → 隐私与安全 → 辅助功能
我的解决方式是把整个仓库克隆下来,然后让hermes帮我进行修复分析的,他对比了mano-skill中的代码就修复了这个问题。
问题描述
在 macOS 26.5.1 + Apple M4 环境下,使用
--local参数运行 mano-cua 时,第一步推理正常,第二步开始出现 GPU 崩溃或图片特征不匹配错误。错误信息
根本原因
visual/agents/local.py第 276-286 行的 image token 替换逻辑错误:mlx_vlm的prepare_inputs()期望 prompt 中包含墕(image_token, ID 151655)来正确插入图片特征。使用墕墕会导致模型找不到图片占位符。修复方案
或更简单:删除第 276-286 行的替换逻辑,让
prepare_inputs()自动处理<image>占位符。环境信息
验证结果
修复后测试通过:
附加说明
初次使用本地模式时需要授予以下权限:
我的解决方式是把整个仓库克隆下来,然后让hermes帮我进行修复分析的,他对比了mano-skill中的代码就修复了这个问题。