Skip to content

Commit fae536b

Browse files
Isotr0pylulmer
authored andcommitted
[Bugfix] Fix qwen2.5-vl image processor (vllm-project#13286)
Signed-off-by: Louis Ulmer <ulmerlouis@gmail.com>
1 parent 626f7ba commit fae536b

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

vllm/model_executor/models/qwen2_5_vl.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@
3333
import torch.nn.functional as F
3434
from einops import rearrange
3535
from transformers import BatchFeature
36-
from transformers.models.qwen2_5_vl import (Qwen2_5_VLImageProcessor,
37-
Qwen2_5_VLProcessor)
36+
from transformers.models.qwen2_5_vl import Qwen2_5_VLProcessor
3837
from transformers.models.qwen2_5_vl.configuration_qwen2_5_vl import (
3938
Qwen2_5_VLConfig, Qwen2_5_VLVisionConfig)
39+
from transformers.models.qwen2_vl import (Qwen2VLImageProcessor,
40+
Qwen2VLImageProcessorFast)
4041

4142
from vllm.attention import AttentionMetadata
4243
from vllm.config import VllmConfig
@@ -693,7 +694,8 @@ def get_hf_processor(
693694
) -> Qwen2_5_VLProcessor:
694695
hf_processor = self.ctx.get_hf_processor(Qwen2_5_VLProcessor)
695696
image_processor = hf_processor.image_processor # type: ignore
696-
assert isinstance(image_processor, Qwen2_5_VLImageProcessor)
697+
assert isinstance(image_processor,
698+
(Qwen2VLImageProcessor, Qwen2VLImageProcessorFast))
697699

698700
if min_pixels:
699701
image_processor.min_pixels = min_pixels
@@ -713,14 +715,15 @@ def get_image_processor(
713715
min_pixels: Optional[int] = None,
714716
max_pixels: Optional[int] = None,
715717
fps: Optional[float] = 2.0,
716-
) -> Qwen2_5_VLImageProcessor:
718+
) -> Union[Qwen2VLImageProcessor, Qwen2VLImageProcessorFast]:
717719
hf_processor = self.get_hf_processor(
718720
min_pixels=min_pixels,
719721
max_pixels=max_pixels,
720722
fps=fps,
721723
)
722724
image_processor = hf_processor.image_processor # type: ignore
723-
assert isinstance(image_processor, Qwen2_5_VLImageProcessor)
725+
assert isinstance(image_processor,
726+
(Qwen2VLImageProcessor, Qwen2VLImageProcessorFast))
724727
return image_processor
725728

726729

vllm/model_executor/models/qwen2_vl.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
import torch.nn as nn
3232
import torch.nn.functional as F
3333
from einops import rearrange, repeat
34+
from packaging.version import Version
3435
from transformers import BatchFeature
36+
from transformers import __version__ as TRANSFORMERS_VERSION
3537
from transformers.models.qwen2_vl import (Qwen2VLImageProcessor,
3638
Qwen2VLProcessor)
3739
from transformers.models.qwen2_vl.configuration_qwen2_vl import (
@@ -746,7 +748,13 @@ def get_image_processor(
746748
hf_processor = self.get_hf_processor(min_pixels=min_pixels,
747749
max_pixels=max_pixels)
748750
image_processor = hf_processor.image_processor # type: ignore
749-
assert isinstance(image_processor, Qwen2VLImageProcessor)
751+
if Version(TRANSFORMERS_VERSION) >= Version("4.49"):
752+
from transformers.models.qwen2_vl import Qwen2VLImageProcessorFast
753+
assert isinstance(
754+
image_processor,
755+
(Qwen2VLImageProcessor, Qwen2VLImageProcessorFast))
756+
else:
757+
assert isinstance(image_processor, Qwen2VLImageProcessor)
750758
return image_processor
751759

752760
def get_supported_mm_limits(self) -> Mapping[str, Optional[int]]:

0 commit comments

Comments
 (0)