From 3045adf0ba6f57e1a051529c4ea84b2556556f0f Mon Sep 17 00:00:00 2001 From: xxddccaa <137712826@qq.com> Date: Tue, 10 Mar 2026 19:36:41 +0800 Subject: [PATCH] [fix] fallback to audio_processor when feature_extractor is missing (#10267) Co-authored-by: kevin <742971636@qq.com> --- src/llamafactory/data/mm_plugin.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/llamafactory/data/mm_plugin.py b/src/llamafactory/data/mm_plugin.py index fca092cb8..430fa885b 100644 --- a/src/llamafactory/data/mm_plugin.py +++ b/src/llamafactory/data/mm_plugin.py @@ -161,7 +161,9 @@ class MMPluginMixin: video_processor: BaseImageProcessor = getattr( processor, "video_processor", getattr(processor, "image_processor", None) ) - feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) + feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) or getattr( + processor, "audio_processor", None + ) if len(images) != 0 and self.image_token is None: raise ValueError( "This model does not support image input. Please check whether the correct `template` is used." @@ -390,7 +392,9 @@ class MMPluginMixin: mm_inputs.update(video_processor(videos, return_tensors="pt")) if len(audios) != 0: - feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) + feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) or getattr( + processor, "audio_processor", None + ) audios = self._regularize_audios( audios, sampling_rate=getattr(processor, "audio_sampling_rate", 16000), @@ -1876,7 +1880,9 @@ class Qwen2OmniPlugin(Qwen2VLPlugin): ) -> dict[str, "torch.Tensor"]: image_processor: BaseImageProcessor = getattr(processor, "image_processor", None) video_processor: BaseVideoProcessor = getattr(processor, "video_processor", None) - feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) + feature_extractor: SequenceFeatureExtractor = getattr(processor, "feature_extractor", None) or getattr( + processor, "audio_processor", None + ) mm_inputs = {} if len(images) != 0: images = self._regularize_images(