[Multimodal] Remove processsor fallback for fused input norm params resolve (#59073)

Signed-off-by: Isotr0py <Isotr0py@outlook.com> Signed-off-by: Isotr0py <2037008807@qq.com> Co-authored-by: cjackal <44624812+cjackal@users.noreply.github.com>

Isotr0py committed Sep 29, 2026 at 11:33 UTC 07f1ba2ec66776650a490630ddfa9e3c92713c33
1 file changed +12 -26
vllm/model_executor/layers/fusion/mm_input_norm.py
+12 -26
@@ -18,14 +18,14 @@ where::
18 """
19
20 import math
21 -from typing import Any, NamedTuple
21 +from typing import NamedTuple
22
23 import torch
24 from torch import nn
25
26 from vllm.config import ModelConfig
27 from vllm.model_executor.custom_op import CustomOp
28 -from vllm.transformers_utils.processor import cached_get_processor, get_processor_config
28 +from vllm.transformers_utils.processor import get_processor_config
29 from vllm.triton_utils import tl, triton
30
31
@@ -144,33 +144,19 @@ class NormParams(NamedTuple):
144
145 def _load_norm_params(model_config: ModelConfig) -> NormParams:
146 """Resolve the per-channel affine parameters ``(image_mean, image_std,
147 - rescale_factor)`` from the processor config, falling back to the image
148 - processor object."""
149 - model = model_config.model
150 - revision = model_config.revision
151 -
152 - config = get_processor_config(model, revision=revision)
153 - # NOTE: do not use cached_image_processor_from_config here — it merges
154 - # mm_processor_kwargs, which mm_device_do_normalize poisons with
155 - # do_normalize=False.
156 - image_processor = cached_get_processor(
157 - model, revision=revision, trust_remote_code=model_config.trust_remote_code
158 - ).image_processor
159 -
160 - def resolve(key: str) -> Any:
161 - """Processor config value, falling back to the image_processor."""
162 - if (value := config.get(key)) is not None:
163 - return value
164 - return getattr(image_processor, key, None)
165 -
166 - do_rescale = bool(resolve("do_rescale"))
167 - do_normalize = bool(resolve("do_normalize"))
147 + rescale_factor)`` from the processor config."""
148 + config = get_processor_config(model_config.model, revision=model_config.revision)
149 + config = config.get("image_processor", config)
150 +
151 + has_norm_params = "image_mean" in config and "image_std" in config
152 + do_normalize = bool(config.get("do_normalize", has_norm_params))
153 + do_rescale = bool(config.get("do_rescale", has_norm_params))
154
155 # Parameters whose flag is off are unused; default them to no-ops
156 # without resolving them.
171 - rescale_factor = resolve("rescale_factor") if do_rescale else 1.0
172 - image_mean = resolve("image_mean") if do_normalize else [0.0] * 3
173 - image_std = resolve("image_std") if do_normalize else [1.0] * 3
157 + rescale_factor = config.get("rescale_factor", 1 / 255) if do_rescale else 1.0
158 + image_mean = config.get("image_mean") if do_normalize else [0.0] * 3
159 + image_std = config.get("image_std") if do_normalize else [1.0] * 3
160
161 assert rescale_factor is not None, "rescale_factor is still None after resolution."
162 assert image_mean is not None, "image_mean is still None after resolution."