[Bugfix] Qwen3-VL/Qwen-Omni: honor max_pixels/min_pixels for video prompts (#49015)
SYLAR committed
Jul 19, 2026 at 01:29 UTC
7c2acd38b72de4a4177f2a4c2b80b216da7d55b0
2 files changed
+30
vllm/model_executor/models/qwen2_5_omni_thinker.py
+17
@@ -509,6 +509,23 @@ class Qwen2_5OmniThinkerMultiModalProcessor(
509
**mm_kwargs,
510
)
511
512
+ merged = self.info.ctx.get_merged_mm_kwargs(mm_kwargs)
513
+ if mm_data.get("videos") and (
514
+ merged.keys() & {"size", "min_pixels", "max_pixels"}
515
+ ):
516
+ mm_kwargs = dict(mm_kwargs)
517
+ video_size = dict(self.info.get_hf_processor().video_processor.size)
518
+ size_override = merged.get("size")
519
+ if size_override is not None:
520
+ video_size = video_size | size_override
521
+ min_pixels = merged.get("min_pixels")
522
+ if min_pixels is not None:
523
+ video_size["shortest_edge"] = min_pixels
524
+ max_pixels = merged.get("max_pixels")
525
+ if max_pixels is not None:
526
+ video_size["longest_edge"] = max_pixels
527
+ mm_kwargs["size"] = video_size
528
+
529
hf_inputs = super()._call_hf_processor(
530
prompt=prompt,
531
mm_data=mm_data,
vllm/model_executor/models/qwen3_vl.py
+13
@@ -1272,6 +1272,19 @@ class Qwen3VLMultiModalProcessor(BaseMultiModalProcessor[Qwen3VLProcessingInfo])
1272
# NOTE: a copy of is created to update do_sample_frames,
1273
# otherwise mm_hash for the object will be incorrect.
1274
video_mm_kwargs = dict(**mm_kwargs)
1275
+ merged = self.info.ctx.get_merged_mm_kwargs(mm_kwargs)
1276
+ if merged.keys() & {"size", "min_pixels", "max_pixels"}:
1277
+ video_size = dict(self.info.get_video_processor().size)
1278
+ size_override = merged.get("size")
1279
+ if size_override is not None:
1280
+ video_size = video_size | size_override
1281
+ min_pixels = merged.get("min_pixels")
1282
+ if min_pixels is not None:
1283
+ video_size["shortest_edge"] = min_pixels
1284
+ max_pixels = merged.get("max_pixels")
1285
+ if max_pixels is not None:
1286
+ video_size["longest_edge"] = max_pixels
1287
+ video_mm_kwargs["size"] = video_size
1288
sampled_fps = video_mm_kwargs.get("fps")
1289
if is_list_of(sampled_fps, float):
1290
video_mm_kwargs["fps"] = sampled_fps[item_idx]