疑难排查 · opencode

opencode 提示 This Model Does Not Support Image Input 的解决方法

当模型的 modalities 没有声明时,opencode 会悄悄把附加的图片替换成一条备注。一行 opencode.json 声明即可开启图片输入。

你看到的报错

this model does not support image input

为什么会发生

  • 自定义提供商的模型不在 models.dev 目录里,opencode 会给它们分配纯文本的默认能力——无论模型实际能做什么。
  • 在纯文本能力下,opencode 会把附加的图片替换成一条内嵌的 "this model does not support image input" 备注;提供商根本收不到图片。
  • modalities 声明了,但之后没有重启 opencode。

如何解决

  • 在 opencode.json 中为该模型显式声明图片模态,然后重启 opencode。
  • 一旦 "image" 进入 modalities.input,粘贴和附加的图片就会以标准 Chat Completions 图片分块发出,本网关接受这种格式。

为模型声明图片输入

{
  "provider": {
    "apitoken": {
      "models": {
        "gpt-5.6-sol": {
          "name": "GPT-5.6 Sol",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          }
        }
      }
    }
  }
}

相关搜索

  • opencode image not sent
  • opencode attachment ignored

常见问题

为什么模型的回答像是从没看到我的图片?+
它确实没看到。没有声明图片模态时,opencode 会剥离附件并用一条文本备注代替——到达提供商的请求是纯文本的。
这是提供商的限制吗?+
不是——这是客户端侧的能力门控。同一个模型在 opencode.json 里声明模态后立刻就能接收图片。
其他工具也需要这个声明吗?+
只有带能力门控的客户端需要。线上契约就是普通的 Chat Completions 图片分块,所以像 OpenAI SDK 这类无门控的客户端什么都不用加。

跳过折腾坏掉的配置

apiToken.sale 提供标准的 Anthropic API——同样的模型、同样的 SDK、一个预付余额。把你工具的 base URL 指向它,本页的配置即可原样生效。