Skip to content

[Bug Fix] 本地模式 image token 替换错误导致推理失败 #33

Description

@Holmose

问题描述

在 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_vlmprepare_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中的代码就修复了这个问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions