Signed-off-by: Yuekai Zhang <zhangyuekai@foxmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
129 lines
4.5 KiB
Python
129 lines
4.5 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""Central declarative registry of all vllm-omni pipelines.
|
|
|
|
Mirrors the pattern in ``vllm/model_executor/models/registry.py``: each entry
|
|
is ``model_type -> (module_path, variable_name)``, and the module is imported
|
|
lazily on first lookup (see ``_LazyPipelineRegistry`` in
|
|
``vllm_omni/config/stage_config.py``). Keeping every pipeline declared in one
|
|
file makes it easy to spot a missing registration, which was the original
|
|
motivation in https://github.com/vllm-project/vllm-omni/issues/2887 (item 4).
|
|
|
|
Per-model ``pipeline.py`` modules still define the ``PipelineConfig`` instance;
|
|
they just no longer need to self-register via ``register_pipeline(...)``.
|
|
|
|
Adding a new pipeline:
|
|
1. Define the ``PipelineConfig`` instance as a module-level variable in
|
|
``vllm_omni/.../pipeline.py``.
|
|
2. Add one line to ``_OMNI_PIPELINES`` below.
|
|
|
|
Single-stage diffusion models continue to use the
|
|
``_create_default_diffusion_stage_cfg`` fallback in
|
|
``async_omni_engine.py`` — they don't need a registry entry. The empty
|
|
``_DIFFUSION_PIPELINES`` placeholder previously here (#2915) was removed
|
|
once #2987 (which would have populated it) was deferred.
|
|
|
|
``register_pipeline(config)`` in ``stage_config`` is still supported for
|
|
out-of-tree plugins and tests that create pipelines at runtime; those override
|
|
the entries declared here.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
# --- Multi-stage omni pipelines (LLM-centric; audio / video I/O) ---
|
|
_OMNI_PIPELINES: dict[str, tuple[str, str]] = {
|
|
# model_type -> (module_path, variable_name)
|
|
"qwen2_5_omni": (
|
|
"vllm_omni.model_executor.models.qwen2_5_omni.pipeline",
|
|
"QWEN2_5_OMNI_PIPELINE",
|
|
),
|
|
"qwen2_5_omni_thinker_only": (
|
|
"vllm_omni.model_executor.models.qwen2_5_omni.pipeline",
|
|
"QWEN2_5_OMNI_THINKER_ONLY_PIPELINE",
|
|
),
|
|
"qwen3_omni_moe": (
|
|
"vllm_omni.model_executor.models.qwen3_omni.pipeline",
|
|
"QWEN3_OMNI_PIPELINE",
|
|
),
|
|
"qwen3_tts": (
|
|
"vllm_omni.model_executor.models.qwen3_tts.pipeline",
|
|
"QWEN3_TTS_PIPELINE",
|
|
),
|
|
"covo_audio": (
|
|
"vllm_omni.model_executor.models.covo_audio.pipeline",
|
|
"COVO_AUDIO_PIPELINE",
|
|
),
|
|
"bagel": (
|
|
"vllm_omni.model_executor.models.bagel.pipeline",
|
|
"BAGEL_PIPELINE",
|
|
),
|
|
"bagel_think": (
|
|
"vllm_omni.model_executor.models.bagel.pipeline",
|
|
"BAGEL_THINK_PIPELINE",
|
|
),
|
|
"bagel_single_stage": (
|
|
"vllm_omni.model_executor.models.bagel.pipeline",
|
|
"BAGEL_SINGLE_STAGE_PIPELINE",
|
|
),
|
|
"glm_image": (
|
|
"vllm_omni.model_executor.models.glm_image.pipeline",
|
|
"GLM_IMAGE_PIPELINE",
|
|
),
|
|
"hunyuan_image_3_moe": (
|
|
"vllm_omni.model_executor.models.hunyuan_image3.pipeline",
|
|
"HUNYUAN_IMAGE3_PIPELINE",
|
|
),
|
|
"hunyuan_image3_ar": (
|
|
"vllm_omni.model_executor.models.hunyuan_image3.pipeline",
|
|
"HUNYUAN_IMAGE3_AR_PIPELINE",
|
|
),
|
|
"hunyuan_image3_dit": (
|
|
"vllm_omni.model_executor.models.hunyuan_image3.pipeline",
|
|
"HUNYUAN_IMAGE3_DIT_PIPELINE",
|
|
),
|
|
"voxcpm2": (
|
|
"vllm_omni.model_executor.models.voxcpm2.pipeline",
|
|
"VOXCPM2_PIPELINE",
|
|
),
|
|
"cosyvoice3": (
|
|
"vllm_omni.model_executor.models.cosyvoice3.pipeline",
|
|
"COSYVOICE3_PIPELINE",
|
|
),
|
|
"mimo_audio": (
|
|
"vllm_omni.model_executor.models.mimo_audio.pipeline",
|
|
"MIMO_AUDIO_PIPELINE",
|
|
),
|
|
"voxtral_tts": (
|
|
"vllm_omni.model_executor.models.voxtral_tts.pipeline",
|
|
"VOXTRAL_TTS_PIPELINE",
|
|
),
|
|
"glm_tts": (
|
|
"vllm_omni.model_executor.models.glm_tts.pipeline",
|
|
"GLM_TTS_PIPELINE",
|
|
),
|
|
"fish_qwen3_omni": (
|
|
"vllm_omni.model_executor.models.fish_speech.pipeline",
|
|
"FISH_SPEECH_PIPELINE",
|
|
),
|
|
"ming_flash_omni": (
|
|
"vllm_omni.model_executor.models.ming_flash_omni.pipeline",
|
|
"MING_FLASH_OMNI_PIPELINE",
|
|
),
|
|
"ming_flash_omni_tts": (
|
|
"vllm_omni.model_executor.models.ming_flash_omni.pipeline",
|
|
"MING_FLASH_OMNI_TTS_PIPELINE",
|
|
),
|
|
"ming_flash_omni_thinker_only": (
|
|
"vllm_omni.model_executor.models.ming_flash_omni.pipeline",
|
|
"MING_FLASH_OMNI_THINKER_ONLY_PIPELINE",
|
|
),
|
|
"moss_tts_nano": (
|
|
"vllm_omni.model_executor.models.moss_tts_nano.pipeline",
|
|
"MOSS_TTS_NANO_PIPELINE",
|
|
),
|
|
"higgs_audio_v2": (
|
|
"vllm_omni.model_executor.models.higgs_audio_v2.pipeline",
|
|
"HIGGS_AUDIO_V2_PIPELINE",
|
|
),
|
|
}
|