DEV Community

boluo
boluo

Posted on

MiMo-V2.6-Flash vs V2.5: How to Actually Send Images, Video, and Audio to the API

MiMo-V2.6-Flash cover

Xiaomi open-sourced MiMo-V2.6-Flash on 2026-09-22. The single most important change for developers versus the previous V2.5-Pro is simple: V2.5 was text-only, V2.6-Flash is natively multimodal — one endpoint now accepts text, images, video, and audio and returns text. Here is what the request actually looks like.

The one-line difference

V2.5-Pro V2.6-Flash
Input modalities Text only Text, image, video, audio
Output Text Text
Params (total / active) 1.02T / 42B 309B / 15B
API price ¥1 / ¥2 per M tok Unchanged
Status API retired 2026-10-21 Live

If your code today only sends strings, you are leaving the model's biggest new capability on the table.

Migration is tiny: it's OpenAI-compatible

The API speaks both the OpenAI and Anthropic protocols. Moving from V2.5 (or any compatible model) means changing base_url and model — no new SDK.

MiMo-V2.6-Flash architecture

Sending an image + prompt

The multimodal input rides the standard OpenAI messages format. Content parts carry image_url entries; the model reads the image and answers against it.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.crazyrouter.com/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="mimo-v2.6-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/board.png"}},
                {"type": "text", "text": "Summarize the bugs visible in this screenshot and propose a fix."},
            ],
        }
    ],
)
print(resp.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

The same shape works for video and audio frames: pass them as additional content parts (or the provider's documented media field) and keep the text instruction in the same message.

Sending audio

For audio, attach the clip as a media content part alongside the transcript request:

resp = client.chat.completions.create(
    model="mimo-v2.6-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
                {"type": "text", "text": "Transcribe this call and list the action items."},
            ],
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

Why this matters beyond "it can see"

  • One model instead of a pipeline. You no longer stitch a vision model + a language model. Upload a screenshot, a clip, or a recording and get analysis, code, or a written plan back in one call.
  • Price did not move. Input/output stay at roughly ¥1 / ¥2 per million tokens (with up to 99% context-cache discount). Multimodal is effectively free relative to the old text-only price.
  • Still text out. It understands audio/video but currently returns text — pair it with a generation model if you need media output.

When to switch

If you are on V2.5 today, point your client at V2.6-Flash: coverage is a superset, multimodal is new, and price is unchanged. Reserve V2.6-Pro for the highest open-source ceiling or the 20× UltraSpeed mode. For the strongest raw intelligence overall, closed models still lead — but for open-weight + multimodal + low cost, this family is the practical pick.

References

Figures and pricing are drawn from Xiaomi's official model page, release notes, and public technical report; no subjective scoring is applied. Because models iterate quickly, confirm exact numbers against the official latest page.

Top comments (0)