Skip to content

Commit 032e4b3

Browse files
authored
fix(qwen3_vl): apply pixel limits via processor size (#159)
1 parent 7ecbc69 commit 032e4b3

5 files changed

Lines changed: 25 additions & 32 deletions

File tree

src/lmms_engine/datasets/processor/base_qwen2_5_processor.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,23 @@ class BaseQwen2_5_DataProcessor(AeroDataProcessor):
1616
def _build_processor(self):
1717
raise NotImplementedError("This method should be implemented in subclasses.")
1818

19+
@staticmethod
20+
def _set_vision_processor_size(processor, min_pixels=None, max_pixels=None):
21+
if processor is None or (min_pixels is None and max_pixels is None):
22+
return
23+
24+
size = getattr(processor, "size", None) or {}
25+
if hasattr(size, "to_dict"):
26+
size = size.to_dict()
27+
else:
28+
size = dict(size)
29+
30+
if min_pixels is not None:
31+
size["shortest_edge"] = min_pixels
32+
if max_pixels is not None:
33+
size["longest_edge"] = max_pixels
34+
processor.size = size
35+
1936
def process(
2037
self,
2138
images: List[Image.Image],

src/lmms_engine/datasets/processor/qwen2_5_omni_processor.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,12 @@ def _build_processor(self):
2222
# Set image processor parameters
2323
image_max_pixels = self.config.extra_kwargs.get("image_max_pixels", None)
2424
image_min_pixels = self.config.extra_kwargs.get("image_min_pixels", None)
25-
if image_max_pixels:
26-
processor.image_processor.max_pixels = image_max_pixels
27-
if image_min_pixels:
28-
processor.image_processor.min_pixels = image_min_pixels
25+
self._set_vision_processor_size(processor.image_processor, image_min_pixels, image_max_pixels)
2926

3027
# Set video processor parameters
3128
video_max_pixels = self.config.extra_kwargs.get("video_max_pixels", None)
3229
video_min_pixels = self.config.extra_kwargs.get("video_min_pixels", None)
33-
if video_max_pixels:
34-
processor.video_processor.max_pixels = video_max_pixels
35-
if video_min_pixels:
36-
processor.video_processor.min_pixels = video_min_pixels
30+
self._set_vision_processor_size(processor.video_processor, video_min_pixels, video_max_pixels)
3731

3832
# Set audio processor parameters
3933
audio_max_length = self.config.extra_kwargs.get("audio_max_length", None)

src/lmms_engine/datasets/processor/qwen2_5_vl_processor.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,12 @@ def _build_processor(self):
1717
# Set image processor parameters
1818
image_max_pixels = self.config.extra_kwargs.get("image_max_pixels", None)
1919
image_min_pixels = self.config.extra_kwargs.get("image_min_pixels", None)
20-
if image_max_pixels:
21-
processor.image_processor.max_pixels = image_max_pixels
22-
if image_min_pixels:
23-
processor.image_processor.min_pixels = image_min_pixels
20+
self._set_vision_processor_size(processor.image_processor, image_min_pixels, image_max_pixels)
2421

2522
# Set video processor parameters
2623
video_max_pixels = self.config.extra_kwargs.get("video_max_pixels", None)
2724
video_min_pixels = self.config.extra_kwargs.get("video_min_pixels", None)
28-
if video_max_pixels:
29-
processor.video_processor.max_pixels = video_max_pixels
30-
if video_min_pixels:
31-
processor.video_processor.min_pixels = video_min_pixels
25+
self._set_vision_processor_size(processor.video_processor, video_min_pixels, video_max_pixels)
3226
return processor
3327

3428
def process(

src/lmms_engine/datasets/processor/qwen3_omni_moe_processor.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,12 @@ def _build_processor(self):
2121
# Set image processor parameters
2222
image_max_pixels = self.config.extra_kwargs.get("image_max_pixels", None)
2323
image_min_pixels = self.config.extra_kwargs.get("image_min_pixels", None)
24-
if image_max_pixels:
25-
processor.image_processor.max_pixels = image_max_pixels
26-
if image_min_pixels:
27-
processor.image_processor.min_pixels = image_min_pixels
24+
self._set_vision_processor_size(processor.image_processor, image_min_pixels, image_max_pixels)
2825

2926
# Set video processor parameters
3027
video_max_pixels = self.config.extra_kwargs.get("video_max_pixels", None)
3128
video_min_pixels = self.config.extra_kwargs.get("video_min_pixels", None)
32-
if video_max_pixels:
33-
processor.video_processor.max_pixels = video_max_pixels
34-
if video_min_pixels:
35-
processor.video_processor.min_pixels = video_min_pixels
29+
self._set_vision_processor_size(processor.video_processor, video_min_pixels, video_max_pixels)
3630

3731
# Set audio processor parameters
3832
audio_max_length = self.config.extra_kwargs.get("audio_max_length", None)

src/lmms_engine/datasets/processor/qwen3_vl_processor.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,12 @@ def _build_processor(self):
2020
# Set image processor parameters
2121
image_max_pixels = self.config.extra_kwargs.get("image_max_pixels", None)
2222
image_min_pixels = self.config.extra_kwargs.get("image_min_pixels", None)
23-
if image_max_pixels:
24-
processor.image_processor.max_pixels = image_max_pixels
25-
if image_min_pixels:
26-
processor.image_processor.min_pixels = image_min_pixels
23+
self._set_vision_processor_size(processor.image_processor, image_min_pixels, image_max_pixels)
2724

2825
# Set video processor parameters
2926
video_max_pixels = self.config.extra_kwargs.get("video_max_pixels", None)
3027
video_min_pixels = self.config.extra_kwargs.get("video_min_pixels", None)
31-
if video_max_pixels:
32-
processor.video_processor.max_pixels = video_max_pixels
33-
if video_min_pixels:
34-
processor.video_processor.min_pixels = video_min_pixels
28+
self._set_vision_processor_size(processor.video_processor, video_min_pixels, video_max_pixels)
3529
return processor
3630

3731
def process(

0 commit comments

Comments
 (0)