+
    œ°³j!  ã                   ó²   € ^ RI t ^ RIt^RIHt ^RIHtHt ^RIH	t	H
t
HtHt ^RIHtHt ^RIHt ^RIHt  ! R R	]
R
R7      t] ! R R]4      4       tR.tR# )é    N)ÚBatchFeature)Ú
ImageInputÚconcatenate_list)ÚMultiModalDataÚProcessingKwargsÚProcessorMixinÚUnpack)ÚPreTokenizedInputÚ	TextInput)Úauto_docstring)Ú
VideoInputc                   ó6   € ] tR t^tRRRRR/RRR/R	R
R//tRtR# )ÚInternVLProcessorKwargsÚtext_kwargsÚpadding_sideÚleftÚreturn_mm_token_type_idsFÚimages_kwargsÚcrop_to_patchesTÚvideos_kwargsÚreturn_tensorsÚpt© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	_defaultsÚ__static_attributes__r   ó    Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/internvl/processing_internvl.pyr   r      s9   † àØ˜FØ&¨ð
ð 	Ø˜tð
ð 	Ø˜dð
ð„Ir    r   F)Útotalc                   óâ   a a€ ] tR t^*t o]tRV3R lV 3R lllt]V3R lR l4       t]	RV3R lV 3R lll4       t
RV3R lV 3R llltV3R	 lR
 ltV3R lR ltRR lt]R 4       tRtVtV ;t# )ÚInternVLProcessorc                ó    <€ V ^8„  d   QhRS[ /# )é   Úimage_seq_length)Úint)ÚformatÚ__classdict__s   "€r!   Ú__annotate__ÚInternVLProcessor.__annotate__.   s   ø€ ÷ 
ñ 
ñ
 ñ
r    c                óæ  <€ \         SV `  ! WV3RV/VB  W@n        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n        \        P                  ! R\        P                  ! V P                  4       R\        P                  ! V P                  4       R24      V n        R# )zè
image_seq_length (`int`, *optional*, defaults to 256):
    The number of image token to use per image patch. it should be set so that:
    image_seq_length = (config.image_size // config.patch_size) ** 2 * (config.scale_factor**2)
Úchat_templatez
(?P<image>z)|(?P<video>Ú)N)ÚsuperÚ__init__r'   Ústart_image_tokenÚend_image_tokenÚstart_image_token_idÚend_image_token_idÚcontext_image_tokenÚimage_tokenÚvideo_tokenÚcontext_image_token_idÚimage_token_idÚreÚcompileÚescapeÚmultimodal_pattern)ÚselfÚimage_processorÚ	tokenizerÚvideo_processorr'   r.   ÚkwargsÚ	__class__s   &&&&&&,€r!   r1   ÚInternVLProcessor.__init__.   sÌ   ø€ ô 	‰Ò˜°_ÑlÐTaÐlÐekÒlà 0ÔØ!*×!<Ñ!<ˆÔØ(×8Ñ8ˆÔØ$-×$BÑ$BˆÔ!Ø"+×">Ñ">ˆÔØ$×8Ñ8ˆÔØ$×0Ñ0ˆÔØ'×>Ñ>ˆÔÜ"$§*¢*ØœŸš 4×#3Ñ#3Ó4Ð5°\Ä"Ç)Â)ÈD×L\ÑL\ÓB]ÐA^Ð^_Ð`ó#
ˆÖr    c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r&   Úreturn)Úlistr(   )r)   r*   s   "€r!   r+   r,   K   s   ø€ ÷ Yñ Y¡¡c¥ñ Yr    c                óH   € V P                   V P                  V P                  .# ©N)r:   r4   r5   )r?   s   &r!   Úimage_token_idsÚ!InternVLProcessor.image_token_idsJ   s!   € à×#Ñ# T×%>Ñ%>À×@WÑ@WÐXÐXr    c          
      óÂ   <€ V ^8„  d   QhRS[ R,          RS[S[,          S[S[,          ,          S[S[,          ,          R,          RS[R,          RS[S[,          RS[/# )r&   ÚimagesNÚtextÚvideosrC   rG   )r   r   r
   rH   r   r	   r   r   )r)   r*   s   "€r!   r+   r,   O   st   ø€ ÷ 6Kñ 6Ká˜TÕ!ð6Kñ Ñ+Õ+©d±9­oÕ=ÁÑEVÕ@WÕWÐZ^Õ^ð6Kñ ˜TÕ!ð	6Kñ
 Ñ0Õ1ð6Kñ 
ñ6Kr    c           	     óö  <€ V P                   ! \        3RV P                  P                  /VB pVR,          P	                  R4      p\        V\        4      '       d   V.MTpV UUu. uF6  p\        P                  ! V P                  V4       F  qˆP                  NK  	  K8  	  p	pp\        SV `0  ! RRVRVRV/VB p
Ve&   \        P                  ! V
P                  R4      4      pVeW   V
P                  R4      pVP                   vrÞpVP#                  ^ ^4      p\        P$                  ! Wí,          ^,           VR	7      p^ ;pp. pV	 Fˆ  pVR
8X  dI   V^ 8”  d   XV^,
          ,          M^ pXV,          pVP'                  V
R,          VV 4       V^,          pKR  XV,          pVV^,           ,          pVP'                  XVV 4       V^,          pKŠ  	  V'       d   \)        V4      V
R&   \+        W¦R7      # u uppi )a  
Returns:
    [`BatchFeature`]: A [`BatchFeature`] with the following fields:

    - **input_ids** -- List of token ids to be fed to a model. Returned when `text` is not `None`.
    - **attention_mask** -- List of indices specifying which tokens should be attended to by the model (when
      `return_attention_mask=True` or if *"attention_mask"* is in `self.model_input_names` and if `text` is not
      `None`).
    - **pixel_values** -- Pixel values to be fed to a model. Returned when `images` is not `None`.
Útokenizer_init_kwargsr   r   rN   rO   rP   Únum_patchesÚpixel_values_videos)ÚstepÚimageÚpixel_values)ÚdataÚtensor_typer   )Ú_merge_kwargsr   rA   Úinit_kwargsÚgetÚ
isinstanceÚstrr;   Úfinditerr>   Ú	lastgroupr0   Ú__call__ÚnpÚcumsumÚpopÚshapeÚflattenÚarangeÚappendr   r   )r?   rN   rO   rP   rC   Úoutput_kwargsr   ÚsampleÚmatchÚvisuals_orderÚmodel_inputsÚimage_num_patches_indicesÚvideo_pixel_valuesÚ
batch_sizeÚ
num_framesÚ_Úvideo_patch_indicesÚimage_indexÚvideo_indexÚimage_video_patchesÚvision_typeÚstart_indexÚ	end_indexrD   s   &&&&,                  €r!   ra   ÚInternVLProcessor.__call__N   sõ  ø€ ð$ ×*Ò*Ü#ñ
à"&§.¡.×"<Ñ"<ð
ð ñ
ˆð
 ' }Õ5×9Ñ9Ð:JÓKˆô $ D¬#×.Ò.�‰v°DˆÙ7;Ôv±t¨VÌÏÊÐUY×UlÑUlÐntÖIuÀŸœÑIu™±tˆÑvÜ‘wÒ'Ña¨vÐa¸DÐaÈÐaÐS`Ñaˆð ÒÜ(*¯	ª	°,×2BÑ2BÀ=Ó2QÓ(RÐ%ØÒØ!-×!1Ñ!1Ð2GÓ!HÐØ);×)AÑ)AÐ&ˆJ QØ!3×!;Ñ!;¸A¸qÓ!AÐÜ"$§)¢)¨JÕ,CÀaÕ,GÈjÔ"YÐà$%Ð%ˆ�kØ ÐÛ(ˆKØ˜gÔ%ØLWÐZ[ÌOÐ7¸Àa½ÖHÐab�Ø5°kÕB�	Ø#×*Ñ*¨<¸Õ+GÈÐT]Ð+^Ô_Ø˜qÕ ’à1°+Õ>�Ø/°¸aµÕ@�	Ø#×*Ñ*Ð+=¸kÈ)Ð+TÔUØ˜qÕ ’ñ )÷ Ü+;Ð<OÓ+PˆL˜Ñ(Ü ÔJÐJùó9 ws   Á'<G5c          	      ó¼   <€ V ^8„  d   QhRS[ R,          RS[S[,          S[S[,          ,          S[S[,          ,          R,          RS[R,          RS[S[,          /# )r&   rN   NrO   rP   rC   )r   r   r
   rH   r   r	   r   )r)   r*   s   "€r!   r+   r,   ‡   sc   ø€ ÷ 	:ñ 	:á˜TÕ!ð	:ñ Ñ+Õ+©d±9­oÕ=ÁÑEVÕ@WÕWÐZ^Õ^ð	:ñ ˜TÕ!ð		:ñ
 Ñ0Õ1ñ	:r    c           	     óR   <€ \         SV `  ! RR VRVRV/VB  Vf   \        R4      hR# )rN   rO   rP   NzYou have to specify text.r   )r0   Úvalidate_inputsÚ
ValueError)r?   rN   rO   rP   rC   rD   s   &&&&,€r!   r}   Ú!InternVLProcessor.validate_inputs‡   s:   ø€ ô 	‰ÒÑR vÐR°DÐRÀÐRÈ6ÒRØŠ<ÜÐ8Ó9Ð9ñ r    c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r&   Úimage_inputsÚ	image_idxrG   ©Údictr(   r^   )r)   r*   s   "€r!   r+   r,   ’   s(   ø€ ÷ Jñ J±ð JÁð JÑSVñ Jr    c                óœ   € VR ,          pV P                    V P                  V P                  ,          WB,          ,           V P                   2# )rS   ©r2   r7   r'   r3   )r?   r�   r‚   rC   Úimage_num_patchess   &&&, r!   Úreplace_image_tokenÚ%InternVLProcessor.replace_image_token’   s\   € Ø(¨Õ7ÐØ×(Ñ(Ð)¨$×*:Ñ*:¸T×=RÑ=RÕ*RÐUfÕUqÕ*qÐ)rÐsw÷  tHñ  tHð  sIð  Jð  	Jr    c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r&   Úvideo_inputsÚ	video_idxrG   rƒ   )r)   r*   s   "€r!   r+   r,   –   s#   ø€ ÷ 
ñ 
±ð 
Áð 
ÑSVñ 
r    c                óŽ   a € VR ,          V,          P                   ^ ,          pRP                  V 3R l\        V4       4       4      # )rT   Ú
c              3   ó¨   <"  € T FG  pR V^,            RSP                    SP                  SP                  ,           SP                   2x € KI  	  R# 5i)ÚFramez: Nr†   )Ú.0Úir?   s   & €r!   Ú	<genexpr>Ú8InternVLProcessor.replace_video_token.<locals>.<genexpr>˜   sR   øé € ð 
á&�ð �A˜•E�7˜"˜T×3Ñ3Ð4°T×5EÑ5EÈ×H]ÑH]Õ5]Ð4^Ð_c×_sÑ_sÐ^tÕuÛ&ùs   ƒAA)re   ÚjoinÚrange)r?   r‹   rŒ   rC   rq   s   f&&, r!   Úreplace_video_tokenÚ%InternVLProcessor.replace_video_token–   sA   ø€ Ø!Ð"7Õ8¸ÕC×IÑIÈ!ÕLˆ
Ø�y‰yô 
ä˜:Ô&ó
ó 
ð 	
r    c                ór  € / pVež   \         P                  P                  R/ 4      pVP                  V4       V Uu. uF"  pV P                  P
                  ! . VOVN5!  NK$  	  ppV Uu. uF  p^V P                  V,          ,           NK  	  ppVP                  RVRV/4       \        R/ VB # u upi u upi )a{  
Computes the number of placeholder tokens needed for multimodal inputs with the given sizes.

Args:
    image_sizes (`list[list[int]]`, *optional*):
        The input sizes formatted as (height, width) per each image.

Returns:
    `MultiModalData`: A `MultiModalData` object holding number of tokens per each of the provided
    input modalities, along with other useful data.
r   Únum_image_tokensÚnum_image_patchesr   )r   r   r\   Úupdater@   Úget_number_of_image_patchesr'   r   )	r?   Úimage_sizesrC   Úvision_datar   Ú
image_sizer›   rS   rš   s	   &&,      r!   Ú_get_num_multimodal_tokensÚ,InternVLProcessor._get_num_multimodal_tokens�   sÓ   € ð ˆØÒ"Ü3×=Ñ=×AÑAÀ/ÐSUÓVˆMØ× Ñ  Ô(ñ #.ó!á"-�Jð ×$Ñ$×@Ò@Ð\À*Ð\ÈmÖ\Ù"-ð ð !ñ
 ^oÓoÑ]nÈk  T×%:Ñ%:¸[Õ%H× IÐ IÑ]nÐÐoØ×ÑÐ 2Ð4DÐFYÐ[lÐmÔnäÑ, Ñ,Ð,ùò!ùò
  ps   ¼(B/Á*#B4c                ój   € V P                   P                  pV P                  P                  pW,           # rJ   )rA   Úmodel_input_namesr@   )r?   Útokenizer_input_namesÚimage_processor_input_namess   &  r!   r¤   Ú#InternVLProcessor.model_input_names¹   s/   € ð !%§¡× @Ñ @ÐØ&*×&:Ñ&:×&LÑ&LÐ#Ø$ÕBÐBr    )	r3   r5   r'   r7   r:   r>   r2   r4   r8   )NNNé   N)NNNrJ   )r   r   r   r   r   Úvalid_processor_kwargsr1   ÚpropertyrK   r   ra   r}   rˆ   r—   r¡   r¤   r   Ú__classdictcell__Ú__classcell__)rD   r*   s   @@r!   r$   r$   *   s‰   ù‡ € à4Ð÷
õ 
ð8 ÷Yó ðYð ÷6Kô 6Kó ð6K÷p	:õ 	:÷Jð J÷
ð 
ô-ð8 ñCó ÷Cð Cr    r$   )r;   Únumpyrb   Úimage_processing_utilsr   Úimage_utilsr   r   Úprocessing_utilsr   r   r   r	   Útokenization_utils_baser
   r   Úutilsr   Úvideo_utilsr   r   r$   Ú__all__r   r    r!   Ú<module>rµ      s]   ðó 
ã å 2ß 7ß XÓ Xß CÝ #Ý %ôÐ.°eõ ð ôSC˜ó SCó ðSCðl Ð
‚r    