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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions