From 783a4a1e2f5d5d5f72f3da2b305cec5b4b88abba Mon Sep 17 00:00:00 2001 From: zyddnys Date: Fri, 20 Sep 2024 18:48:32 -0400 Subject: [PATCH] [Bugfix] Fix incorrect llava next feature size calculation (#8496) --- vllm/model_executor/models/llava_next.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/vllm/model_executor/models/llava_next.py b/vllm/model_executor/models/llava_next.py index c6bd46dd7eda9..d550a249ee822 100644 --- a/vllm/model_executor/models/llava_next.py +++ b/vllm/model_executor/models/llava_next.py @@ -87,17 +87,19 @@ def _get_llava_next_num_unpadded_features( current_height = npatches * num_patch_height current_width = npatches * num_patch_width - aspect_ratio = original_width / original_height + original_aspect_ratio = original_width / original_height current_aspect_ratio = current_width / current_height - if aspect_ratio > current_aspect_ratio: - new_height = (original_height * current_width) // original_width + if original_aspect_ratio > current_aspect_ratio: + scale_factor = current_width / original_width + new_height = int(original_height * scale_factor) padding = (current_height - new_height) // 2 - current_height -= padding * 2 + current_height -= 2 * padding else: - new_width = (original_width * current_height) // original_height + scale_factor = current_height / original_height + new_width = int(original_width * scale_factor) padding = (current_width - new_width) // 2 - current_width -= padding * 2 + current_width -= 2 * padding unpadded_features = current_height * current_width newline_features = current_height