From 104e105c936e50da340800ec663a22c5b8bd1b6c Mon Sep 17 00:00:00 2001 From: tzhouam Date: Fri, 30 Jan 2026 02:43:41 +0000 Subject: [PATCH] Refactor multimodal processing imports and update configuration handling in Qwen3OmniMoeThinker - Changed the import path for multimodal processing to improve module organization. - Removed the unused multimodal configuration parameter from the Qwen3OmniMoeThinker initialization, streamlining the class definition. Signed-off-by: tzhouam --- .../models/qwen3_omni/qwen3_omni_moe_thinker.py | 3 +-- vllm_omni/worker/gpu_generation_model_runner.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/vllm_omni/model_executor/models/qwen3_omni/qwen3_omni_moe_thinker.py b/vllm_omni/model_executor/models/qwen3_omni/qwen3_omni_moe_thinker.py index 2d479062e..de706ea9a 100644 --- a/vllm_omni/model_executor/models/qwen3_omni/qwen3_omni_moe_thinker.py +++ b/vllm_omni/model_executor/models/qwen3_omni/qwen3_omni_moe_thinker.py @@ -82,7 +82,7 @@ from vllm.model_executor.models.vision import ( from vllm.multimodal import MULTIMODAL_REGISTRY from vllm.multimodal.inputs import MultiModalFeatureSpec, MultiModalKwargsItems from vllm.multimodal.parse import AudioProcessorItems, MultiModalDataItems -from vllm.multimodal.processing import ( +from vllm.multimodal.processing.processor import ( MultiModalPromptUpdates, PlaceholderFeaturesInfo, PromptReplacement, @@ -674,7 +674,6 @@ class Qwen3OmniMoeThinkerForConditionalGeneration( norm_eps=getattr(thinker_config.text_config, "rms_norm_eps", 1e-6), quant_config=quant_config, prefix=maybe_prefix(prefix, "visual"), - multimodal_config=multimodal_config, ) self.quant_config = quant_config diff --git a/vllm_omni/worker/gpu_generation_model_runner.py b/vllm_omni/worker/gpu_generation_model_runner.py index ee9fe01de..b6f122a38 100644 --- a/vllm_omni/worker/gpu_generation_model_runner.py +++ b/vllm_omni/worker/gpu_generation_model_runner.py @@ -20,7 +20,6 @@ from vllm.forward_context import set_forward_context from vllm.model_executor.layers.fused_moe.routed_experts_capturer import ( RoutedExpertsCapturer, ) -from vllm.model_executor.models.interfaces import supports_mm_encoder_only from vllm.utils.math_utils import cdiv from vllm.v1.core.sched.output import GrammarOutput, SchedulerOutput from vllm.v1.outputs import AsyncModelRunnerOutput, make_empty_encoder_model_runner_output @@ -435,7 +434,8 @@ class GPUGenerationModelRunner(OmniGPUModelRunner): remove_lora: If False, dummy LoRAs are not destroyed after the run activate_lora: If False, dummy_run is performed without LoRAs. """ - if supports_mm_encoder_only(self.model): + mm_config = self.vllm_config.model_config.multimodal_config + if mm_config and mm_config.mm_encoder_only: # The current dummy run only covers LM execution, so we can skip it. # mm encoder dummy run may need to add in the future. return torch.tensor([]), torch.tensor([])