From 5632b78b3d44e6c10c73c393b4da6fb2490bbed3 Mon Sep 17 00:00:00 2001 From: Baoyuan Qi Date: Fri, 24 Apr 2026 13:55:58 +0800 Subject: [PATCH] [Feature] XiaomiMiMo/MiMo-V2.5-ASR support (#3089) Signed-off-by: Baoyuan Qi --- docs/models/supported_models.md | 3 ++- examples/offline_inference/mimo_audio/end2end.py | 7 +++++-- vllm_omni/model_executor/models/mimo_audio/pipeline.py | 2 +- vllm_omni/model_executor/models/registry.py | 5 +++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/models/supported_models.md b/docs/models/supported_models.md index 8ece14f9c..feea969e5 100644 --- a/docs/models/supported_models.md +++ b/docs/models/supported_models.md @@ -56,7 +56,8 @@ th { | `Qwen3TTSForConditionalGeneration` | Qwen3-TTS-12Hz-1.7B-VoiceDesign | `Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign` | ✅︎ | ✅︎ | ✅︎ | ✅︎ | | `Qwen3TTSForConditionalGeneration` | Qwen3-TTS-12Hz-1.7B-Base | `Qwen/Qwen3-TTS-12Hz-0.6B-Base` | ✅︎ | ✅︎ | ✅︎ | ✅︎ | | `NextStep11Pipeline` | NextStep-1.1 | `stepfun-ai/NextStep-1.1` | ✅︎ | ✅︎ | | ✅︎ | -| `MiMoAudioForConditionalGeneration` | MiMo-Audio-7B-Instruct | `XiaomiMiMo/MiMo-Audio-7B-Instruct` | ✅︎ | ✅︎ | | | +| `MiMoAudioModel` | MiMo-Audio-7B-Instruct | `XiaomiMiMo/MiMo-Audio-7B-Instruct` | ✅︎ | ✅︎ | | | +| `MiMoV2ASRForCausalLM` | MiMo-V2.5-ASR | `XiaomiMiMo/MiMo-V2.5-ASR` | ✅︎ | ✅︎ | | | | `Flux2Pipeline` | FLUX.2-dev | `black-forest-labs/FLUX.2-dev` | ✅︎ | ✅︎ | | | | `FishSpeechSlowARForConditionalGeneration` | Fish Speech S2 Pro | `fishaudio/s2-pro` | ✅︎ | ✅︎ | | | | `DreamIDOmniPipeline` | DreamID-Omni | `XuGuo699/DreamID-Omni` | ✅︎ | ✅︎ | | | diff --git a/examples/offline_inference/mimo_audio/end2end.py b/examples/offline_inference/mimo_audio/end2end.py index 2c67d66fa..9c652fe2b 100644 --- a/examples/offline_inference/mimo_audio/end2end.py +++ b/examples/offline_inference/mimo_audio/end2end.py @@ -309,7 +309,10 @@ def main(args): lines.append("Prompt:\n") lines.append(str(prompt_text) + "\n") lines.append("vllm_text_output:\n") - lines.append(str(text_output).strip() + "\n") + output_text = str(text_output) + if "" in output_text or "" in output_text: + output_text = output_text.replace("", "").replace("", "").strip() + lines.append(output_text + "\n") try: with open(out_txt, "w", encoding="utf-8") as f: print("lines", lines) @@ -351,7 +354,7 @@ def parse_args(): "--text", "-t", type=str, - default="The weather is so nice today.", + default="", help="input text", ) parser.add_argument( diff --git a/vllm_omni/model_executor/models/mimo_audio/pipeline.py b/vllm_omni/model_executor/models/mimo_audio/pipeline.py index 33e78a172..1cc15af50 100644 --- a/vllm_omni/model_executor/models/mimo_audio/pipeline.py +++ b/vllm_omni/model_executor/models/mimo_audio/pipeline.py @@ -25,7 +25,7 @@ MIMO_AUDIO_PIPELINE = PipelineConfig( # ``model_executor/models/registry.py``; it resolves to the internal # class ``MiMoAudioForConditionalGeneration`` in ``mimo_audio.py``. model_arch="MiMoAudioModel", - hf_architectures=("MiMoAudioModel",), + hf_architectures=("MiMoAudioModel", "MiMoV2ASRForCausalLM"), stages=( StagePipelineConfig( stage_id=0, diff --git a/vllm_omni/model_executor/models/registry.py b/vllm_omni/model_executor/models/registry.py index 71a3ac70a..0cbe60610 100644 --- a/vllm_omni/model_executor/models/registry.py +++ b/vllm_omni/model_executor/models/registry.py @@ -108,6 +108,11 @@ _OMNI_MODELS = { "mimo_audio", "MiMoAudioForConditionalGeneration", ), + "MiMoV2ASRForCausalLM": ( + "mimo_audio", + "mimo_audio", + "MiMoAudioForConditionalGeneration", + ), "MiMoAudioLLMModel": ( "mimo_audio", "mimo_audio_llm",