+
    œ°³j‘.  ã                   óZ  € ^ RI t ^ RI Ht ^ RIHtHtHtHtHt ^RIH	t	 ^RI
Ht ^RIHtHt ^RIHt ^RIHtHtHt ^R	IHt ^R
IHt ]P2                  ! ]4      t ! R R]4      t ! R R]4      t ! R R]P<                  4      t ! R R]4      t  ! R R]4      t! ! R R]4      t". ROt#R# )é    N)Únn)ÚLlavaCausalLMOutputWithPastÚLlavaForConditionalGenerationÚ
LlavaModelÚLlavaModelOutputWithPastÚLlavaPreTrainedModel)ÚACT2FN)ÚCache)ÚBaseModelOutputWithPastÚBaseModelOutputWithPooling)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚlogging)Úcan_return_tuple©ÚVipLlavaConfigc                   ó   € ] tR t^&tRtR# )ÚVipLlavaModelOutputWithPast© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ún/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/vipllava/modular_vipllava.pyr   r   &   ó   † Ûr   r   c                   ó   € ] tR t^*tRtR# )ÚVipLlavaCausalLMOutputWithPastr   Nr   r   r   r   r!   r!   *   r   r   r!   c                   óD   a a€ ] tR t^.t oV3R lV 3R lltR tRtVtV ;t# )ÚVipLlavaMultiModalProjectorc                ó    <€ V ^8„  d   QhRS[ /# )é   Úconfigr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú(VipLlavaMultiModalProjector.__annotate__/   s   ø€ ÷ mñ m™~ñ mr   c                óp  <€ \         SV `  4        \        VP                  \        4      '       d   ^M\        VP                  4      p\        P                  ! W!P                  P                  ,          VP                  R7      V n        \        P                  ! W!P                  P                  ,          VP                  P                  RR7      V n        \        VP                   ,          V n        \        P                  ! VP                  P                  VP                  P                  RR7      V n        R# )é   )ÚepsT)ÚbiasN)ÚsuperÚ__init__Ú
isinstanceÚvision_feature_layersÚintÚlenr   Ú	LayerNormÚvision_configÚhidden_sizeÚprojector_layernorm_epsÚprojector_layernormÚLinearÚtext_configÚlinear_1r	   Úprojector_hidden_actÚactÚlinear_2)Úselfr&   Únum_feature_layersÚ	__class__s   && €r   r0   Ú$VipLlavaMultiModalProjector.__init__/   s×   ø€ Ü‰ÑÔÜ",¨V×-IÑ-IÌ3×"OÒ"O™QÔUXÐY_×YuÑYuÓUvÐÜ#%§<¢<Ø×!5Ñ!5×!AÑ!AÕAÀv×GeÑGeô$
ˆÔ ô Ÿ	š	Ø×!5Ñ!5×!AÑ!AÕAØ×Ñ×*Ñ*Øô
ˆŒô
 ˜&×5Ñ5Õ6ˆŒÜŸ	š	 &×"4Ñ"4×"@Ñ"@À&×BTÑBT×B`ÑB`ÐgkÔlˆŽr   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# ©N)r9   r<   r>   r?   )r@   Úhidden_statess   &&r   ÚforwardÚ#VipLlavaMultiModalProjector.forward>   sB   € Ø×0Ñ0°Ó?ˆØŸ™ mÓ4ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐr   )r>   r<   r?   r9   )	r   r   r   r   r0   rG   r   Ú__classdictcell__Ú__classcell__)rB   r(   s   @@r   r#   r#   .   s   ù‡ € ÷mó m÷ò r   r#   c                   ó   € ] tR t^FtRtR# )ÚVipLlavaPreTrainedModelr   Nr   r   r   r   rL   rL   F   r   r   rL   c                   ó‚   a € ] tR t^Jt o ]]! RR7      R	V 3R lR ll4       4       t]]R
V 3R lR ll4       4       tRtV t	R# )ÚVipLlavaModelzWObtains image last hidden states from the vision tower and apply multimodal projection.)Úcustom_introNc          	      ó”   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          R,          RS[S[,          RS[S[,          /# ©r%   Úpixel_valuesr2   NÚkwargsÚreturn©ÚtorchÚFloatTensorr3   Úlistr   r   Útupler   )r'   r(   s   "€r   r)   ÚVipLlavaModel.__annotate__O   sR   ø€ ÷ "ñ "á×'Ñ'ð"ñ  #¡T©#¥Y�°Õ5ð"ñ Ñ+Õ,ð	"ñ
 
Ñ+Õ	+ñ"r   c                óˆ  € Ve   TMV P                   P                  pRVR&   V P                  ! V3/ VB p\        V\        4      '       d   VP
                  V,          R,          pM@V Uu. uF  qdP
                  V,          R,          NK  	  pp\        P                  ! VRR7      pV P                  V4      pWTn	        V# u upi )á+  
pixel_values (`torch.FloatTensor` of shape `(batch_size, channels, height, width)`):
    The tensors corresponding to the input images.
vision_feature_layers (`Union[int, list[int]]`, *optional*):
    The vision feature layer, or the list of indexes of the layers to select
    the vision feature.
TÚoutput_hidden_states)Údim)ºNNN:r,   NNéÿÿÿÿ)
r&   r2   Úvision_towerr1   r3   rF   rV   ÚcatÚmulti_modal_projectorÚpooler_output)r@   rR   r2   rS   Úimage_outputsÚimage_featuresÚindexs   &&&,   r   Úget_image_featuresÚ VipLlavaModel.get_image_featuresK   sÊ   € ð$ &;Ò%FÑ!ÈDÏKÉK×LmÑLmð 	ð *.ˆÐ%Ñ&Ø×)Ò)Øñ
àñ
ˆô Ð+¬S×1Ò1Ø*×8Ñ8Ð9NÕOÐPUÕV‰Nñ VkÓkÑUjÈE×9Ñ9¸%Õ@À×GÐGÑUjˆNÐkÜ"ŸYšY ~¸2Ô>ˆNØ×3Ñ3°NÓCˆØ&4Ô#àÐùò ls   Á*"B?c                ój  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[S[S[,          ,          R,          R	S[R,          R
S[S[	,          RS[
S[,          /
# )r%   Ú	input_idsNrR   Úattention_maskÚposition_idsÚpast_key_valuesÚinputs_embedsr2   Ú	use_cacheÚ	lm_kwargsrT   )rV   Ú
LongTensorrW   ÚTensorr
   r3   rX   Úboolr   r   rY   r   )r'   r(   s   "€r   r)   rZ   u   sÅ   ø€ ÷ 5ñ 5á×#Ñ# dÕ*ð5ñ ×'Ñ'¨$Õ.ð5ñ Ÿ™ tÕ+ð	5ñ
 ×&Ñ&¨Õ-ð5ñ  �ð5ñ ×(Ñ(¨4Õ/ð5ñ  #¡T©#¥Y�°Õ5ð5ñ ˜$•;ð5ñ Ñ.Õ/ð5ñ 
Ñ,Õ	,ñ5r   c	                ó6  € Ve   TMV P                   P                  pVRJ VRJ,          '       d   \        R4      hVf   V P                  4       ! V4      pVeg   V P	                  W'R7      P
                  p
V
P                  VP                  VP                  4      p
V P                  WV
R7      pVP                  Wº4      pV P                  ! RRVRVRVRVR	V/V	B p\        VP                  VP                  VP                  VP                   Ve   X
MRR
7      pV# )z£
vision_feature_layers (`Union[int, list[int]]`, *optional*):
    The vision feature layer, or the list of indexes of the layers to select
    the vision feature.
Nz:You must specify exactly one of input_ids or inputs_embeds)rR   r2   )ro   rf   rl   rm   rn   ro   rp   )Úlast_hidden_statern   rF   Ú
attentionsÚimage_hidden_statesr   )r&   r2   Ú
ValueErrorÚget_input_embeddingsrh   rd   ÚtoÚdeviceÚdtypeÚget_placeholder_maskÚmasked_scatterÚlanguage_modelr   rv   rn   rF   rw   )r@   rk   rR   rl   rm   rn   ro   r2   rp   rq   rf   Úspecial_image_maskÚoutputsÚoutputs   &&&&&&&&&,    r   rG   ÚVipLlavaModel.forwards   sX  € ð( &;Ò%FÑ!ÈDÏKÉK×LmÑLmð 	ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×5Ñ5Ô7¸	ÓBˆMàÒ#Ø!×4Ñ4Ø)ð 5ó ç‰mð ð ,×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNØ!%×!:Ñ!:ØÀ~ð ";ó "Ðð *×8Ñ8Ð9KÓ\ˆMà+/×+>Ò+>ñ ,
Ø)ð,
à%ð,
ð ,ð,
ð (ð	,
ð
  ð,
ð ñ,
ˆô -Ø%×7Ñ7Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø2>Ò2J¡ÐPTô
ˆð ˆr   r   rE   )NNNNNNNN)
r   r   r   r   r   r   rh   rG   r   rI   ©r(   s   @r   rN   rN   J   sN   ø‡ € ØÙØnô÷"ñ "óó ð"ðH Ø÷5ñ 5ó ó ö5r   rN   c                   ój   a € ] tR t^­t o ]RV 3R lR ll4       t]]RV 3R lR ll4       4       tRtV t	R# )	Ú VipLlavaForConditionalGenerationNc          	      ó”   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          R,          RS[S[,          RS[S[,          /# rQ   rU   )r'   r(   s   "€r   r)   Ú-VipLlavaForConditionalGeneration.__annotate__¯   sR   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ  #¡T©#¥Y�°Õ5ð
ñ Ñ+Õ,ð	
ñ
 
Ñ+Õ	+ñ
r   c                óB   € V P                   P                  ! RRVRV/VB # )r\   rR   r2   r   )Úmodelrh   )r@   rR   r2   rS   s   &&&,r   rh   Ú3VipLlavaForConditionalGeneration.get_image_features®   s3   € ð �z‰z×,Ò,ñ 
Ø%ð
Ø=Rð
ØV\ñ
ð 	
r   c                ó¼  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[S[S[,          ,          R,          R	S[ P                  R,          R
S[R,          RS[S[ P                  ,          RS[S[	,          RS[
S[,          /# )r%   rk   NrR   rl   rm   rn   ro   r2   Úlabelsrp   Úlogits_to_keeprq   rT   )rV   rr   rW   rs   r
   r3   rX   rt   r   r   rY   r!   )r'   r(   s   "€r   r)   r‰   Â   sû   ø€ ÷ T
ñ T
á×#Ñ# dÕ*ðT
ñ ×'Ñ'¨$Õ.ðT
ñ Ÿ™ tÕ+ð	T
ñ
 ×&Ñ&¨Õ-ðT
ñ  �ðT
ñ ×(Ñ(¨4Õ/ðT
ñ  #¡T©#¥Y�°Õ5ðT
ñ × Ñ  4Õ'ðT
ñ ˜$•;ðT
ñ ™eŸl™lÕ*ðT
ñ Ñ.Õ/ðT
ñ 
Ñ/Õ	/ñT
r   c                ó   € Ve   TMV P                   P                  pV P                  ! RRVRVRVRVRVRVRV	R	V/VB pVP                  p\	        V
\
        4      '       d   \        V
) R4      MT
pV P                  VR
VR
3,          4      pRpVe7   V P                  ! RRVRVRV P                   P                  P                  /VB p\        VVVP                  VP                  VP                  VP                  R7      # )a  
vision_feature_layers (`Union[int, list[int]]`, *optional*):
    The vision feature layer, or the list of indexes of the layers to select
    the vision feature.
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.

Example:

```python
>>> import torch
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, VipLlavaForConditionalGeneration

>>> model = VipLlavaForConditionalGeneration.from_pretrained("llava-hf/vip-llava-7b-hf", device_map="auto", dtype=torch.float16)
>>> processor = AutoProcessor.from_pretrained("llava-hf/vip-llava-7b-hf")

>>> prompt = "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.###Human: <image>\n{}###Assistant:"
>>> question = "Can you please describe this image?"
>>> prompt = prompt.format(question)
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/compel-neg.png"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(text=text, images=image, return_tensors="pt").to(0, torch.float16)

>>> # Generate
>>> generate_ids = model.generate(**inputs, max_new_tokens=20)
>>> processor.decode(generate_ids[0][len(inputs["input_ids"][0]):], skip_special_tokens=True)
The image features a brown and white cat sitting on a green surface, with a red ball in its
```Nrk   rR   rl   rm   rn   ro   rp   r2   r_   ÚlogitsrŽ   Ú
vocab_size)Úlossr‘   rn   rF   rw   rx   r   )r&   r2   r‹   rv   r1   r3   ÚsliceÚlm_headÚloss_functionr;   r’   r!   rn   rF   rw   rx   )r@   rk   rR   rl   rm   rn   ro   r2   rŽ   rp   r�   rq   r‚   rF   Úslice_indicesr‘   r“   s   &&&&&&&&&&&,     r   rG   Ú(VipLlavaForConditionalGeneration.forwardÀ   sN  € ðj &;Ò%FÑ!ÈDÏKÉK×LmÑLmð 	ð 04¯zªzñ 
0
Øð
0
à%ð
0
ð *ð
0
ð &ð	
0
ð
 ,ð
0
ð (ð
0
ð  ð
0
ð #8ð
0
ð ñ
0
ˆð  ×1Ñ1ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_hñˆDô .ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø '× ;Ñ ;ô
ð 	
r   r   rE   )
NNNNNNNNNr   )
r   r   r   r   r   rh   r   rG   r   rI   r…   s   @r   r‡   r‡   ­   s@   ø‡ € Ø÷
ñ 
ó ð
ð" Ø÷T
ñ T
ó ó öT
r   r‡   )rN   r‡   rL   )$rV   r   Ú(transformers.models.llava.modeling_llavar   r   r   r   r   Úactivationsr	   Úcache_utilsr
   Úmodeling_outputsr   r   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   Úconfiguration_vipllavar   Ú
get_loggerr   Úloggerr   r!   ÚModuler#   rL   rN   r‡   Ú__all__r   r   r   Ú<module>r¥      s¡   ðó Ý ÷õ õ "Ý  ß SÝ &ß @Ñ @Ý -Ý 2ð 
×	Ò	˜HÓ	%€ô	Ð":ô 	ô	Ð%@ô 	ô "§)¡)ô ô0	Ð2ô 	ô`�Jô `ôFi
Ð'Dô i
òX [‚r   