[Bugfix] MiniCPM-V 4.6: fix grid rows/cols swap in placeholder generation (#45918)

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

tc-mb committed Jun 30, 2026 at 23:12 UTC 7cf7cbcd9500028f230deff5d194da2f00a2728b
1 file changed +2 -2
vllm/model_executor/models/minicpmv4_6.py
+2 -2
@@ -140,7 +140,7 @@ class MiniCPMV4_6MultiModalProcessor(MiniCPMVMultiModalProcessor):
140 per_frame = image_start + video_token * source_tokens + image_end
141 if grids[0] > 0 and grids[1] > 0 and patch_tokens > 0:
142 slice_ph = slice_start + video_token * patch_tokens + slice_end
143 - rows = [slice_ph * grids[0] for _ in range(grids[1])]
143 + rows = [slice_ph * grids[1] for _ in range(grids[0])]
144 per_frame += "\n".join(rows)
145
146 body = per_frame * num_frames
@@ -596,7 +596,7 @@ class MiniCPMV4_6ProcessingInfo(MiniCPMVProcessingInfo):
596 if use_image_id:
597 placeholder = f"{id_start}{image_idx}{id_end}" + placeholder
598
599 - num_cols, num_rows = grids[0], grids[1]
599 + num_rows, num_cols = grids[0], grids[1]
600 if num_cols > 0 and num_rows > 0 and patch_tokens > 0:
601 slice_ph = slice_start + image_token * patch_tokens + slice_end
602 slices = [slice_ph * num_cols for _ in range(num_rows)]