Fix duplicate HunyuanVL image boundary tokens (#49691)

Co-authored-by: Jiazhi Mi <jiazhimi@tencent.com>

Mi Jiazhi committed Jul 31, 2026 at 15:20 UTC 3ee2bd13211e830b1b170d146d551c253801d3d1
1 file changed +10 -3
vllm/model_executor/models/hunyuan_vision.py
+10 -3
@@ -698,9 +698,12 @@ class HunYuanVLDummyInputsBuilder(BaseDummyInputsBuilder[HunYuanVLProcessingInfo
698 num_images = mm_counts.get("image", 0)
699
700 hf_processor = self.info.get_hf_processor(typ=HunYuanVLProcessor)
701 - image_token: str = hf_processor.image_token
701 + image_placeholder = (
702 + f"{hf_processor.image_start_token}{hf_processor.image_token}"
703 + f"{hf_processor.image_end_token}"
704 + )
705
703 - return image_token * num_images
706 + return image_placeholder * num_images
707
708 def get_dummy_mm_data(
709 self,
@@ -779,7 +782,11 @@ class HunYuanVLMultiModalProcessor(BaseMultiModalProcessor[HunYuanVLProcessingIn
782 return [
783 PromptReplacement(
784 modality=modality,
782 - target=[token_ids[modality]],
785 + target=[
786 + token_ids[f"{modality}_start"],
787 + token_ids[modality],
788 + token_ids[f"{modality}_end"],
789 + ],
790 replacement=partial(get_replacement_hunyuan_vl, modality=modality),
791 )
792 for modality in ("image",)