Install any skill in seconds. Free to start, no credit card required.
Get Started Free →为纯文本主模型提供多模态能力:识别图片、视频、音频,并生成图片、视频、音频。遇到图片路径、截图、UI/网页截图、图表、错误弹窗、OCR、音频/视频理解、文生图/文生视频/TTS 或任何需要多模态能力的任务时自动启用。
.claude/skills/hashgraph-online-omnimodal/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -54% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 168% | 0% |
| case-10 | ✓→✓ | = Same ✓ | 8% | 0% |
主模型使用纯文本模型时,只要任务需要看媒体、听媒体或生成媒体,就自动调用 omnimodal_* MCP 工具,不要等用户手动开启,也不要自行假设媒体内容。
omnimodal_recognize_image(image, task, mode)。image 支持本地路径、data: URL 和可解码的 base64。omnimodal_recognize_images_batch(images, task, mode, max_workers)。omnimodal_recognize_video(video, task, mode)。omnimodal_recognize_videos_batch(videos, task, mode, max_workers)。omnimodal_recognize_audio(audio, task, mode),长音频自动走 ASR 转写。omnimodal_recognize_audios_batch(audios, task, mode, max_workers)。omnimodal_read_clipboard_image(task, mode)。omnimodal_read_dragged_image / omnimodal_read_dragged_video / omnimodal_read_dragged_audio。网页动态内容先调用 omnimodal_capture_page(url, actions, viewport, output_dir),再把截图路径交给批量识别。Windows 全屏、主屏或指定窗口截图先调用 omnimodal_list_windows(),再调用 omnimodal_capture_windows(mode, window, output_dir)。
omnimodal_generate_image(prompt, tier, size, n, wait, confirm):文生图。omnimodal_generate_video(prompt, tier, duration, resolution, wait, confirm):文生视频。omnimodal_generate_video_from_image(image, prompt, tier, duration, resolution, wait, confirm):图生视频。omnimodal_edit_video(video, prompt, tier, duration, resolution, reference_image, wait, confirm):视频编辑。omnimodal_generate_audio(text, voice, tier, kind, preview_text, wait, confirm):TTS、声音克隆、声音设计、音乐生成。omnimodal_get_task_result(task_id):查询异步任务。费用确认是强制规则:生成工具必须在调用时传 confirm=true;否则返回预计费用且不实际调用付费接口。不要绕过确认。
生成后不要自动识别验证:用户要求生成图片、视频或音频时,只调用对应生成工具并直接返回结果路径;不要为了“检查生成效果”再自动调用识别工具。只有用户明确要求检查生成结果、或生成结果明显异常时才允许追加识别。
识别档位统一为:
ocr:仅图片文字提取。quick:快速识别,关闭思考,短输出。standard:标准提取,默认。full:完整提取,不限制输出。quick_analysis / balanced_analysis / deep_analysis:逐步加强的分析档。档位可通过插件目录 config/profiles.json 覆盖;本机私有覆盖写在 config/local.json,不会进入 Git。
API Key 只写在插件根目录 .env:
powershellOMNIMODAL_API_KEY=你的千问或DashScope API Key OMNIMODAL_PROVIDER=dashscope OMNIMODAL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 OMNIMODAL_IMAGE_MODEL=qwen3.7-flash OMNIMODAL_VIDEO_MODEL=qwen3.7-flash OMNIMODAL_AUDIO_MODEL_STANDARD=qwen3.5-omni-flash OMNIMODAL_AUDIO_MODEL_PRO=qwen3.5-omni-plus
可切换厂商:
OMNIMODAL_PROVIDER=zai:GLM 图片/视频/音频理解、GLM 文生图、GLM 文生视频和 GLM ASR。OMNIMODAL_PROVIDER=openai_compatible:识别和 OpenAI Images 风格图片生成;视频/音频生成会返回明确的不支持提示。模型目录、档位、超时、输出目录等默认值位于 config/model_catalog.json 和 config/profiles.json,均可用 config/local.json 覆盖。
Claude 桌面端跨窗口拖入的媒体不落盘。图片复制进剪贴板后调用 omnimodal_read_clipboard_image;视频和音频请用户保存为文件后提供明确路径。禁止扫描 Temp、按时间戳猜文件,或输出“很可能/可能是你刚粘贴的图片”。
powershelluv run --project <插件根目录> omnimodal-recognize --image <图片路径> --task "<任务>" --mode standard uv run --project <插件根目录> omnimodal-recognize --video <视频路径> --task "<任务>" --mode standard uv run --project <插件根目录> omnimodal-recognize --audio <音频路径> --task "<任务>" --mode standard
生成服务仅支持 stdio MCP 模式;异步任务超时后返回 task_id,可稍后查询。
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,679 | 19,544 | +102% | 1 | 1 | 0% | 645 | 1,869 | +190% | 0 | 0 | — |
case-02 | fail→fail | 10,717 | 15,896 | +48% | 1 | 1 | 0% | 436 | 1,779 | +308% | 0 | 0 | — |
case-03 | fail→fail | 3,216 | 13,186 | +310% | 1 | 1 | 0% | 416 | 1,791 | +331% | 0 | 0 | — |
case-04 | fail→fail | 22,127 | 10,611 | -52% | 1 | 1 | 0% | 3,124 | 1,722 | -45% | 0 | 0 | — |
case-05 | fail→fail | 15,618 | 12,400 | -21% | 1 | 1 | 0% | 188 | 1,734 | +822% | 0 | 0 | — |
case-06 | fail→fail | 5,307 | 10,178 | +92% | 1 | 1 | 0% | 775 | 2,213 | +186% | 0 | 0 | — |
case-07 | fail→fail | 76,517 | 12,848 | -83% | 1 | 1 | 0% | 5,856 | 1,780 | -70% | 0 | 0 | — |
case-08 | fail→fail | 12,006 | 15,055 | +25% | 1 | 1 | 0% | 1,526 | 2,078 | +36% | 0 | 0 | — |
case-09 | fail→pass | 23,123 | 2,706 | -88% | 1 | 1 | 0% | 4,064 | 1,873 | -54% | 0 | 0 | — |
case-10 | pass→pass | 15,703 | 8,800 | -44% | 1 | 1 | 0% | 1,933 | 2,081 | +8% | 0 | 0 | — |
case-11 | fail→pass | 9,367 | 8,443 | -10% | 1 | 1 | 0% | 1,638 | 2,028 | +24% | 0 | 0 | — |
case-12 | fail→pass | 11,666 | 3,232 | -72% | 1 | 1 | 0% | 1,231 | 1,905 | +55% | 0 | 0 | — |
case-13 | fail→pass | 10,745 | 3,702 | -66% | 1 | 1 | 0% | 748 | 2,003 | +168% | 0 | 0 | — |
case-14 | fail→fail | 3,132 | 5,303 | +69% | 1 | 1 | 0% | 464 | 1,707 | +268% | 0 | 0 | — |
case-15 | fail→fail | 5,560 | 3,743 | -33% | 1 | 1 | 0% | 822 | 1,635 | +99% | 0 | 0 | — |
case-16 | fail→fail | 8,392 | 11,455 | +36% | 1 | 1 | 0% | 1,400 | 2,163 | +55% | 0 | 0 | — |
case-17 | fail→fail | 12,899 | 11,975 | -7% | 1 | 1 | 0% | 2,583 | 1,930 | -25% | 0 | 0 | — |
case-18 | pass→pass | 9,704 | 8,877 | -9% | 1 | 1 | 0% | 1,322 | 2,849 | +116% | 0 | 0 | — |
case-19 | pass→pass | 8,503 | 5,820 | -32% | 1 | 1 | 0% | 1,340 | 2,443 | +82% | 0 | 0 | — |
case-20 | pass→pass | 7,515 | 10,350 | +38% | 1 | 1 | 0% | 1,467 | 3,085 | +110% | 0 | 0 | — |
case-21 | fail→fail | 14,200 | 13,895 | -2% | 1 | 1 | 0% | 2,331 | 3,235 | +39% | 0 | 0 | — |
case-22 | fail→fail | 3,642 | 5,967 | +64% | 1 | 1 | 0% | 379 | 1,764 | +365% | 0 | 0 | — |
case-23 | fail→fail | 4,085 | 6,927 | +70% | 1 | 1 | 0% | 641 | 1,834 | +186% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 9 counted toward the lift figure. The other 14 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +17 percentage points is the difference between those two pass rates over the 9 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.