| 1 | # SPDX-License-Identifier: Apache-2.0 |
| 2 | # SPDX-FileCopyrightText: Copyright contributors to the vLLM project |
| 3 | """Multi-modal processors may be defined in this directory for the following |
| 4 | reasons: |
| 5 | |
| 6 | - There is no processing file defined by HF Hub or Transformers library. |
| 7 | - There is a need to override the existing processor to support vLLM. |
| 8 | """ |
| 9 | |
| 10 | import importlib |
| 11 | |
| 12 | __all__ = [ |
| 13 | "BagelProcessor", |
| 14 | "CohereASRProcessor", |
| 15 | "Cosmos3EdgeProcessor", |
| 16 | "DeepseekVLV2Processor", |
| 17 | "FireRedASR2Processor", |
| 18 | "FunASRProcessor", |
| 19 | "GLM4VProcessor", |
| 20 | "Granite4VisionProcessor", |
| 21 | "H2OVLProcessor", |
| 22 | "Moondream3Processor", |
| 23 | "InternVLProcessor", |
| 24 | "IsaacProcessor", |
| 25 | "KimiAudioProcessor", |
| 26 | "KimiK25Processor", |
| 27 | "KimiK3Processor", |
| 28 | "MiMoOmniProcessor", |
| 29 | "MiniCPMOProcessor", |
| 30 | "MiniCPMVProcessor", |
| 31 | "MiniMaxM3VLImageProcessor", |
| 32 | "MiniMaxM3VLVideoProcessor", |
| 33 | "MiniMaxVLProcessor", |
| 34 | "MistralCommonPixtralProcessor", |
| 35 | "MistralCommonVoxtralProcessor", |
| 36 | "NanoNemotronVLProcessor", |
| 37 | "NemotronVLProcessor", |
| 38 | "LlamaNemotronVLEmbedProcessor", |
| 39 | "NVLMProcessor", |
| 40 | "OpenVLAProcessor", |
| 41 | "OvisProcessor", |
| 42 | "Ovis2_5Processor", |
| 43 | "Qwen3ASRProcessor", |
| 44 | "Step3VLProcessor", |
| 45 | "InklingProcessor", |
| 46 | "InklingImageProcessor", |
| 47 | "InklingAudioFeatureExtractor", |
| 48 | ] |
| 49 | |
| 50 | _CLASS_TO_MODULE: dict[str, str] = { |
| 51 | "BagelProcessor": "vllm.transformers_utils.processors.bagel", |
| 52 | "CohereASRProcessor": "vllm.transformers_utils.processors.cohere_asr", |
| 53 | "Cosmos3EdgeProcessor": "vllm.transformers_utils.processors.cosmos3_edge", |
| 54 | "DeepseekVLV2Processor": "vllm.transformers_utils.processors.deepseek_vl2", |
| 55 | "FireRedASR2Processor": "vllm.transformers_utils.processors.fireredasr2", |
| 56 | "FunASRProcessor": "vllm.transformers_utils.processors.funasr", |
| 57 | "GLM4VProcessor": "vllm.transformers_utils.processors.glm4v", |
| 58 | "Granite4VisionProcessor": "vllm.transformers_utils.processors.granite4_vision", |
| 59 | "H2OVLProcessor": "vllm.transformers_utils.processors.h2ovl", |
| 60 | "InternVLProcessor": "vllm.transformers_utils.processors.internvl", |
| 61 | "IsaacProcessor": "vllm.transformers_utils.processors.isaac", |
| 62 | "KimiAudioProcessor": "vllm.transformers_utils.processors.kimi_audio", |
| 63 | "KimiK25Processor": "vllm.transformers_utils.processors.kimi_k25", |
| 64 | "KimiK3Processor": "vllm.transformers_utils.processors.kimi_k3", |
| 65 | "MiMoOmniProcessor": "vllm.transformers_utils.processors.mimo_v2_omni", |
| 66 | "MiniCPMOProcessor": "vllm.transformers_utils.processors.minicpmo", |
| 67 | "MiniCPMVProcessor": "vllm.transformers_utils.processors.minicpmv", |
| 68 | "MiniMaxM3VLImageProcessor": "vllm.transformers_utils.processors.minimax_m3", |
| 69 | "MiniMaxM3VLVideoProcessor": "vllm.transformers_utils.processors.minimax_m3", |
| 70 | "MiniMaxVLProcessor": "vllm.transformers_utils.processors.minimax_m3", |
| 71 | "MistralCommonPixtralProcessor": "vllm.transformers_utils.processors.pixtral", |
| 72 | "MistralCommonVoxtralProcessor": "vllm.transformers_utils.processors.voxtral", |
| 73 | "Moondream3Processor": "vllm.transformers_utils.processors.moondream3", |
| 74 | "NanoNemotronVLProcessor": "vllm.transformers_utils.processors.nano_nemotron_vl", |
| 75 | "NemotronVLProcessor": "vllm.transformers_utils.processors.nemotron_vl", |
| 76 | "LlamaNemotronVLEmbedProcessor": "vllm.transformers_utils.processors.nemotron_vl", |
| 77 | "NVLMProcessor": "vllm.transformers_utils.processors.nvlm_d", |
| 78 | "OpenVLAProcessor": "vllm.transformers_utils.processors.openvla", |
| 79 | "OvisProcessor": "vllm.transformers_utils.processors.ovis", |
| 80 | "Ovis2_5Processor": "vllm.transformers_utils.processors.ovis2_5", |
| 81 | "Qwen3ASRProcessor": "vllm.transformers_utils.processors.qwen3_asr", |
| 82 | "Step3VLProcessor": "vllm.transformers_utils.processors.step3_vl", |
| 83 | "InklingProcessor": "vllm.transformers_utils.processors.inkling", |
| 84 | "InklingImageProcessor": "vllm.transformers_utils.processors.inkling", |
| 85 | "InklingAudioFeatureExtractor": "vllm.transformers_utils.processors.inkling", |
| 86 | } |
| 87 | |
| 88 | |
| 89 | def __getattr__(name: str): |
| 90 | if name in _CLASS_TO_MODULE: |
| 91 | module_name = _CLASS_TO_MODULE[name] |
| 92 | module = importlib.import_module(module_name) |
| 93 | return getattr(module, name) |
| 94 | |
| 95 | raise AttributeError(f"module 'processors' has no attribute '{name}'") |
| 96 | |
| 97 | |
| 98 | def __dir__(): |
| 99 | return sorted(list(__all__)) |