[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."