Fix Qwen3-VL M-RoPE on the Transformers modeling backend (grids + compile) (#49292)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

Aritra Roy Gosthipaty committed Jul 21, 2026 at 23:58 UTC 33178f90063e5eec7d3e2a6288f3ca43d39ae8d3
1 file changed +3 -7
vllm/model_executor/models/transformers/multimodal.py
+3 -7
@@ -337,7 +337,7 @@ class MultiModalMixin(SupportsMultiModal, SupportsMRoPE):
337 # Positions shape handling for MRoPE models
338 if self.model_config.uses_mrope:
339 # [3, seq_len] -> [3, 1, seq_len]
340 - positions = positions[:, None]
340 + positions = positions[:, None].contiguous()
341 model_output = super().forward(
342 input_ids, positions, intermediate_tensors, inputs_embeds
343 )
@@ -481,12 +481,8 @@ class MultiModalMixin(SupportsMultiModal, SupportsMRoPE):
481 image_grid_thw = kwargs.get("image_grid_thw", [])
482 video_grid_thw = kwargs.get("video_grid_thw", [])
483
484 - image_grid_thw = (torch.stack if image_grid_thw else torch.tensor)(
485 - image_grid_thw
486 - )
487 - video_grid_thw = (torch.stack if video_grid_thw else torch.tensor)(
488 - video_grid_thw
489 - )
484 + image_grid_thw = torch.stack(image_grid_thw) if image_grid_thw else None
485 + video_grid_thw = torch.stack(video_grid_thw) if video_grid_thw else None
486
487 # `get_rope_index` doesn't always accept arbitrary `kwargs`
488 kwargs = {}