Skip to main content

Add visual understanding capabilities

Some models supported by Token Plan (qwen3.8-max, qwen3.7-plus, etc.) natively support visual understanding and can process image inputs directly. For text-only models such as glm-5.2 and deepseek-v4-pro, you can add visual capabilities by configuring a local Skill.

Running the image understanding Skill consumes Token Plan Credits. No additional charges apply.

Prerequisites

  1. You have subscribed to Token Plan (Personal or Team).
  2. You have completed the integration configuration in an AI tool and can chat normally. For details, see Clients and Developer Tools.

Vision support

For whether each model supports visual understanding, see the supported model tables in Token Plan Personal Edition overview and Token Plan Team Edition overview. qwen3.7-plus and other models have visual understanding capabilities. If you frequently need to process images, switching to one of these models is the simplest and recommended approach.

Tool

How to switch models

Claude Code

/model qwen3.8-max or /model qwen3.8-flash or /model qwen3.7-plus

OpenCode

/models then search and select qwen3.8-max or qwen3.8-flash or qwen3.7-plus

Qwen Code

/model then select qwen3.8-max or qwen3.8-flash or qwen3.7-plus

For more information about switching models in other coding tools, see Clients and Developer Tools. After switching, you can reference image paths directly in your conversation, or drag-and-drop/paste images.

Method 2: Add visual capabilities via Skill or Agent

If you need to use text-only models such as glm-5.2 or deepseek-v4-pro for image processing, you can configure a Skill or Agent to enable visual capabilities.
  • Claude Code
  • OpenCode
  1. Add the Skill Create an .claude folder in your project directory, then create an skills/image-analyzer directory inside it:
mkdir -p .claude/skills/image-analyzer
Create a SKILL.md file in that directory with the following content:
---
name: image-analyzer
description: Helps models without vision capabilities understand images. Use this skill when you need to analyze image content, extract information, text, or UI elements from images, or understand screenshots, charts, architecture diagrams, or any visual content. Simply pass in the image path to get a description.
model: qwen3.7-plus
---
qwen3.7-plus has visual understanding capabilities. Use qwen3.7-plus directly for image understanding.
The resulting directory structure is as follows:
.claude/
└── skills/
    └── image-analyzer/
        └── SKILL.md
  1. Get started
    1. Run claude in your project directory to start Claude Code, then run /model deepseek-v4-pro to switch to the deepseek-v4-pro model.
    2. Download alibabacloud.png to your project directory, then ask: Load image-analyzer skill and describe the information displayed at the alibabacloud.png banner location. You will receive a response similar to the following: The alibabacloud.png is a screenshot of the Alibaba Cloud homepage. The banner area title is Coding Plan now supports Qwen3.5, and the text introduces that Alibaba Cloud Model Studio supports models such as Qwen3.5, Kimi-k2.5, and GLM-4.7, with new customers getting the first month for only 7.9 yuan. The page provides Subscribe now and Online consultation entry points.

FAQ

Cause: OpenCode does not enable a model's vision capabilities by default. You must explicitly declare the modalities parameter in the configuration file.Solution: Add a modalities field to the model definition in your OpenCode configuration file, and set input to ["text", "image"], as shown below:
Replace sk-sp-xxx with your Token Plan API Key.
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "bailian-token-plan": {
      "npm": "@ai-sdk/anthropic",
      "name": "Model Studio Token Plan",
      "options": {
        "baseURL": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
        "apiKey": "sk-sp-xxx"
      },
      "models": {
        "qwen3.6-plus": {
          "name": "Qwen3.6 Plus",
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "options": {
            "thinking": {
              "type": "enabled",
              "budgetTokens": 1024
            }
          }
        },
        "qwen3.8-flash": {
          "name": "Qwen3.8 Flash",
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "options": {
            "thinking": {
              "type": "enabled",
              "budgetTokens": 1024
            }
          }
        },
        "kimi-k2.5": {
          "name": "Kimi K2.5",
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "options": {
            "thinking": {
              "type": "enabled",
              "budgetTokens": 1024
            }
          }
        }
      }
    }
  }
}
Cause: OpenClaw requires the input field in the configuration file to determine whether a model supports vision capabilities.Solution:
  1. In the ~/.openclaw/openclaw.json configuration file, ensure the model definition includes the "input": ["text", "image"] field.
{
  "models": {
    "mode": "merge",
    "providers": {
      "bailian": {
        "baseUrl": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
        "apiKey": "YOUR_API_KEY",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen3.6-plus",
            "name": "qwen3.6-plus",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "contextWindow": 1000000,
            "maxTokens": 65536
          },
          {
            "id": "qwen3.8-flash",
            "name": "qwen3.8-flash",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "contextWindow": 1000000,
            "maxTokens": 65536
          },
          {
            "id": "kimi-k2.5",
            "name": "kimi-k2.5",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "contextWindow": 262144,
            "maxTokens": 32768
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "bailian/qwen3.6-plus"
      },
      "models": {
        "bailian/qwen3.6-plus": {},
        "bailian/qwen3.8-flash": {},
        "bailian/kimi-k2.5": {}
      }
    }
  },
  "gateway": {
    "mode": "local"
  }
}
  1. After modifying the configuration, you must clear the OpenClaw model cache and restart. Otherwise, the old configuration will remain in effect.
rm ~/.openclaw/agents/main/agent/models.json
openclaw gateway restart
Model Playground
  • Audio generation
  • Music generation
Statistics and Monitoring
Asset Center
Support