+
    œ°³jd*  ã                   óÖ   € ^ RI t ^ RIt^ RIHt ^RIHt ^RIHt ^RI	H
t
Ht ^RIHtHtHtHtHt ^RIHtHt ^RIHtHt  ! R	 R
]RR7      tRR R llt] ! R R]4      4       tR.tR# )é    N)Ú
functional)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚOPENAI_CLIP_MEANÚOPENAI_CLIP_STDÚ
ImageInputÚPILImageResamplingÚSizeDict)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   ó0   a € ] tR t^"t o RtV 3R ltRtV tR# )ÚGlmgaImageProcessorKwargsa°  
patch_size (`int`, *optional*, defaults to 14):
    The spatial patch size of the vision encoder.
temporal_patch_size (`int`, *optional*, defaults to 2):
    The temporal patch size of the vision encoder.
merge_size (`int`, *optional*, defaults to 2):
    The merge size of the vision encoder to llm encoder.
patch_expand_factor (`int`, *optional*, defaults to 1):
    The patch_expand_factor of the vision encoder to llm encoder.
c                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   # )é   Ú
patch_sizeÚtemporal_patch_sizeÚ
merge_sizeÚpatch_expand_factor©Úint)ÚformatÚ__classdict__s   "€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/glmga/image_processing_glmga.pyÚ__annotate__Ú&GlmgaImageProcessorKwargs.__annotate__"   s7   ø‡ ‚ ñ �Oñ ñ Ññ ñ �Oñ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   "   s   ø‡ € ñ	÷ ƒ r    r   F)Útotalc                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\         /# )r   Ú
num_framesÚheightÚwidthÚtemporal_factorÚfactorÚ
min_pixelsÚ
max_pixelsr   )r   s   "r   r   r   4   sN   € ÷ !ñ !Üð!äð!ô ð!ô ð	!ô
 ð!ô ð!ô ñ!r    c                 óV  € W8  d   \        R V  RV 24      hW8  g   W$8  d;   \        WA,          WB,          4      p\        W,          4      p\        W',          4      p\        W4      \        W4      ,          ^È8”  d(   \        R\        W4      \        W4      ,           24      h\	        W,          4      V,          p\	        W$,          4      V,          p	\	        W,          4      V,          p
W¨,          V	,          V8”  d–   \
        P                  ! W,          V,          V,          4      p\        V\
        P                  ! W,          V,          4      V,          4      p\        V\
        P                  ! W+,          V,          4      V,          4      p	W‰3# W¨,          V	,          V8  d   \
        P                  ! WPV,          V,          ,          4      p\
        P                  ! W,          V,          4      V,          p\
        P                  ! W+,          V,          4      V,          p	W‰3# )zt:z% must be larger than temporal_factor:z4absolute aspect ratio must be smaller than 200, got )	Ú
ValueErrorÚmaxr   ÚminÚroundÚmathÚsqrtÚfloorÚceil)r,   r-   r.   r/   r0   r1   r2   ÚscaleÚh_barÚw_barÚt_barÚbetas   &&&&&&&     r   Úsmart_resizerA   4   s©  € ð Ô#Ü˜2˜j˜\Ð)NÈÐN_Ð`ÓaÐaØ„˜%œ.Ü�F•O V¥^Ó4ˆÜ�V•^Ó$ˆÜ�E•MÓ"ˆä
ˆ6ÓœC Ó.Õ.°Ô4ÜØBÄ3ÀvÓCUÔX[Ð\bÓXjÕCjÐBkÐló
ð 	
ô �&•/Ó" VÕ+€EÜ�%•.Ó! FÕ*€EÜ�*Õ.Ó/°/ÕA€Eà…}�uÕ˜zÔ)Ü�yŠy˜*Õ-°Õ5¸ÕCÓDˆÜ�FœDŸJšJ v¥}°vÕ'=Ó>ÀÕGÓHˆÜ�FœDŸJšJ u¥|°fÕ'<Ó=ÀÕFÓGˆð ˆ<Ðð 
�˜Õ	 Ô	+Ü�yŠy˜°FÕ':¸UÕ'BÕCÓDˆÜ—	’	˜&�-¨&Õ0Ó1°FÕ:ˆÜ—	’	˜%�,¨Õ/Ó0°6Õ9ˆàˆ<Ðr    c                   óú   a a€ ] tR t^Xt oRt]P                  tRRRR/tRt	Rt
RtRt]t]tRt^t^t^t]tRR.t^t]V3R lV 3R ll4       tV3R	 lV 3R
 lltV3R lR ltV3R lR ltRV3R lR lltRtVt V ;t!# )ÚGlmgaImageProcessorTÚshortest_edgeÚlongest_edgeFÚpixel_valuesÚimage_grid_thwc                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# )r   ÚimagesÚkwargsÚreturn)r
   r   r   r   )r   r   s   "€r   r   Ú GlmgaImageProcessor.__annotate__l   s)   ø€ ÷ 4ñ 4¡ð 4±vÑ>WÕ7Xð 4Ñ]iñ 4r    c                ó&   <€ \         SV `  ! V3/ VB # ©N)ÚsuperÚ
preprocess)ÚselfrI   rJ   Ú	__class__s   &&,€r   rP   ÚGlmgaImageProcessor.preprocessk   s   ø€ ä‰wÒ! &Ñ3¨FÑ3Ð3r    c                ó8   <€ V ^8„  d   QhRRRS[ RRRS[RS[RR/# )	r   rI   útorch.TensorÚsizeÚresampleú7PILImageResampling | tvF.InterpolationMode | int | Noner0   r/   rK   )r   r   )r   r   s   "€r   r   rL   o   sH   ø€ ÷ 
ñ 
àð
ñ ð
ð Lð	
ñ
 ð
ñ ð
ð 
ñ
r    c           
     ó  <€ VP                   '       d   VP                  '       g   \        RV R24      hVP                  RR w  rx\	        VVVVVVP                   VP                  R7      w  rš\
        SV `  V\        WšR7      VR7      # )z5Resize dynamically based on input image aspect ratio.zI`size` dict must contain 'shortest_edge' and 'longest_edge' keys but got Ú.N)r-   r.   r,   r0   r/   r1   r2   )r-   r.   )ÚimagerV   rW   éþÿÿÿ)rD   rE   r4   ÚshaperA   rO   Úresizer   )rQ   rI   rV   rW   r0   r/   rJ   r-   r.   Úresized_heightÚresized_widthrR   s   &&&&&&,    €r   r^   ÚGlmgaImageProcessor.resizeo   sš   ø€ ð ×!×!Ð!¨×):×):Ð):ÜÐhÐimÐhnÐnoÐpÓqÐqàŸ™ R SÐ)‰ˆÜ(4ØØØ&ØØ+Ø×)Ñ)Ø×(Ñ(ô)
Ñ%ˆô ‰w‰~ØÜ ÔEØð ó 
ð 	
r    c                óN   <€ V ^8„  d   QhRRRS[ RS[ RS[ RS[RS[ S[ 3,          /# )r   rI   rU   r   r   r   rK   )r   Útuple)r   r   s   "€r   r   rL   Œ   sI   ø€ ÷ /ñ /àð/ñ ð/ñ ð	/ñ
 !ð/ñ 
ˆ~™s¡CÐ'Õ	(ñ/r    c                ód  € VP                   w  rVrxWr,          W‚,          r©VP                  VVW“,          VVW£,          VV4      pVP                  ^ ^^^^^^^4      pVP                  ^4      P	                  RRRRRRVRR4	      P                  VWš,          Wd,          V,          V,          4      pWÉV
3# )ztPatchifies each image into flat layout of shape (`seq_len`, `patch_dim`) so we can concat dynamically shaped pixels.éÿÿÿÿ)r]   ÚreshapeÚpermuteÚ	unsqueezeÚexpand)rQ   rI   r   r   r   Ú
batch_sizeÚchannelr_   r`   Úgrid_hÚgrid_wÚpatchesÚflatten_patchess   &&&&&        r   ÚpatchifyÚGlmgaImageProcessor.patchifyŒ   sÇ   € ð >D¿\¹\Ñ:ˆ
˜^Ø'Õ5°}Õ7R�Ø—.‘.ØØØÕ ØØØÕ ØØó	
ˆð —/‘/ ! Q¨¨1¨a°°A°qÓ9ˆà×Ñ˜aÓ ß‰V�B˜˜B  B¨Ð,?ÀÀRÓHß‰WØØ•ØÕ-°
Õ:¸ZÕGóð 	ð ¨Ð.Ð.r    c                 ó  <€ V ^8„  d   QhRS[ R,          RS[RS[RRRS[RS[R	S[R
S[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[RS[RS[RS[RS[R,          RS[S[,          R,          RS[/# )r   rI   rU   Ú	do_resizerV   rW   rX   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdr   r   r   r   Údisable_groupingÚreturn_tensorsrK   )ÚlistÚboolr   Úfloatr   Ústrr   r   )r   r   s   "€r   r   rL   ¬   sÛ   ø€ ÷ ?
ñ ?
á�^Õ$ð?
ñ ð?
ñ ð	?
ð
 Lð?
ñ ð?
ñ ð?
ñ ð?
ñ ™D¡�KÕ'¨$Õ.ð?
ñ ™4¡�;Õ&¨Õ-ð?
ñ ð?
ñ !ð?
ñ ð?
ñ !ð?
ñ  �+ð?
ñ  ™jÕ(¨4Õ/ð!?
ñ$ 
ñ%?
r    c           	     ó¢  € \        WR7      w  pp/ pVP                  4        F6  w  ppV'       d$   V P                  VVVW¬,          V,          VR7      pVVV&   K8  	  \        VV4      p\        VVR7      w  pp/ p/ pVP                  4        FQ  w  ppV P	                  VWVWxV	4      pV P                  VV
VVR7      w  pppVVV&   ^VV..\        V4      ,          VV&   KS  	  \        VV4      p\        VV4      p\        V4      ^8X  d
   V^ ,          M\        P                  ! V^ R7      p\        P                  ! V4      p\        RVRV/VR7      # )z)
Preprocess an image or batch of images.
)ry   )rI   rV   rW   r0   r/   )r   r   r   )ÚdimrF   rG   )ÚdataÚtensor_type)r   Úitemsr^   r   Úrescale_and_normalizerp   ÚlenÚtorchÚcatÚtensorr   )rQ   rI   rs   rV   rW   rt   ru   rv   rw   rx   r   r   r   r   ry   rz   rJ   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedr]   Ústacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_gridsrn   rl   rm   Úprocessed_imagesrF   rG   s   &&&&&&&&&&&&&&&&,              r   Ú_preprocessÚGlmgaImageProcessor._preprocess¬   s‘  € ô. 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡Ø)ØØ%Ø%Õ2Ð5HÕHØ$7ð "-ó "�ð -;Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆä/DÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Øˆà%3×%9Ñ%9Ö%;Ñ!ˆE�>Ø!×7Ñ7Ø 
¸LÐV_óˆNð '+§m¡mØØ%Ø%Ø$7ð	 '4ó 'Ñ#ˆG�V˜Vð /6Ð$ UÑ+Ø'(¨&°&Ð&9Ð%:¼SÀÓ=PÕ%PˆO˜EÓ"ñ &<ô *Ð*BÐDXÓYÐÜ(¨Ð:NÓOˆä.1Ð2BÓ.CÀqÔ.HÐ'¨Ö*ÌeÏiÊiÐXhÐnoÔNpˆÜŸš oÓ6ˆäØ  ,Ð0@À.ÐQÐ_mô
ð 	
r    c                ó@   <€ V ^8„  d   QhRS[ RS[ RS[R,          RS[ /# )r   r-   r.   Úimages_kwargsNrK   )r   Údict)r   r   s   "€r   r   rL   í   s1   ø€ ÷ ñ ±#ð ¹cð ÑRVÐY]ÕR]ð Ñilñ r    c           
     ól  € T;'       g    / pVP                  RV P                  4      pVP                  RV P                  4      pVP                  RV P                  4      pWE,          p\	        V P
                  VVVVR,          VR,          V P
                  R7      w  r‰W„,          W”,          rºW«,          # )aY  
A utility that returns number of image patches for a given image size.

Args:
    height (`int`):
        Height of the input image.
    width (`int`):
        Width of the input image.
    images_kwargs (`dict`, *optional*)
        Any kwargs to override defaults of the image processor.
Returns:
    `int`: Number of image patches per image.
r   r   rV   rD   rE   )r,   r-   r.   r0   r1   r2   r/   )Úgetr   r   rV   rA   r   )rQ   r-   r.   r”   r   r   rV   r0   r_   r`   rl   rm   s   &&&&        r   Úget_number_of_image_patchesÚ/GlmgaImageProcessor.get_number_of_image_patchesí   sª   € ð &×+Ð+¨ˆØ"×&Ñ& |°T·_±_ÓEˆ
Ø"×&Ñ& |°T·_±_ÓEˆ
Ø× Ñ  ¨¯©Ó3ˆàÕ(ˆÜ(4Ø×/Ñ/ØØØØ˜OÕ,Ø˜NÕ+Ø ×4Ñ4ô)
Ñ%ˆð (Õ5°}Õ7R�Ø�Ðr    r!   é 1  i€q³ gp?rN   )"r"   r#   r$   r%   rs   r   ÚBICUBICrW   rV   Údefault_to_squarert   ru   rv   r   rw   r	   rx   Údo_convert_rgbr   r   r   r   Úvalid_kwargsÚmodel_input_namesr   r   rP   r^   rp   r‘   r˜   r(   r)   Ú__classcell__)rR   r   s   @@r   rC   rC   X   s´   ù‡ € à€IØ!×)Ñ)€HØ˜Y¨¸ÐH€DØÐØ€JØ€NØ€LØ!€JØ€IØ€NØ€JØÐØ€JØ,€LØ'Ð)9Ð:ÐØÐà÷4ò 4ó ð4÷
ó 
÷:/ð /÷@?
ð ?
÷B÷ ò r    rC   )r   é   rš   i  “ )r8   r†   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr   r	   r
   r   r   Úprocessing_utilsr   r   Úutilsr   r   r   rA   rC   Ú__all__r!   r    r   Ú<module>r«      sc   ðó* ã Ý 7å ;Ý 2ß Eß fÕ fß 4ß /ô °Eõ ÷$!ðH ôrÐ,ó ró ðrðj !Ð
!‚r    