+
    œ°³j{)  ã                   óÖ   € ^ 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# )ÚGlm46VImageProcessorKwargsa6  
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.
c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )é   Ú
patch_sizeÚtemporal_patch_sizeÚ
merge_size©Úint)ÚformatÚ__classdict__s   "€Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/glm46v/image_processing_glm46v.pyÚ__annotate__Ú'Glm46VImageProcessorKwargs.__annotate__"   s*   ø‡ ‚ ñ �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   1   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.   r/   r0   r1   ÚscaleÚh_barÚw_barÚt_barÚbetas   &&&&&&&     r   Úsmart_resizer@   1   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^Ut 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]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 # )ÚGlm46VImageProcessorTÚ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   Ú!Glm46VImageProcessor.__annotate__h   s)   ø€ ÷ 4ñ 4¡ð 4±vÑ>XÕ7Yð 4Ñ^jñ 4r   c                ó&   <€ \         SV `  ! V3/ VB # ©N)ÚsuperÚ
preprocess)ÚselfrH   rI   Ú	__class__s   &&,€r   rO   ÚGlm46VImageProcessor.preprocessg   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   rH   útorch.TensorÚsizeÚresampleú7PILImageResampling | tvF.InterpolationMode | int | Noner/   r.   rJ   )r   r   )r   r   s   "€r   r   rK   k   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+   r/   r.   r0   r1   )r,   r-   )ÚimagerU   rV   éþÿÿÿ)rC   rD   r3   Úshaper@   rN   Úresizer   )rP   rH   rU   rV   r/   r.   rI   r,   r-   Úresized_heightÚresized_widthrQ   s   &&&&&&,    €r   r]   ÚGlm46VImageProcessor.resizek   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   rH   rT   r   r   r   rJ   )r   Útuple)r   r   s   "€r   r   rK   ˆ   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)rP   rH   r   r   r   Ú
batch_sizeÚchannelr^   r_   Úgrid_hÚgrid_wÚpatchesÚflatten_patchess   &&&&&        r   ÚpatchifyÚGlm46VImageProcessor.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,          RS[S[,          R,          RS[/# )r   rH   rT   Ú	do_resizerU   rV   rW   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdr   r   r   Údisable_groupingÚreturn_tensorsrJ   )ÚlistÚboolr   Úfloatr   Ústrr   r   )r   r   s   "€r   r   rK   ¨   sâ   ø€ ÷ @
ñ @
á�^Õ$ð@
ñ ð@
ñ ð	@
ð
 Lð@
ñ ð@
ñ ð@
ñ ð@
ñ ™D¡�KÕ'¨$Õ.ð@
ñ ™4¡�;Õ&¨Õ-ð@
ñ ð@
ñ !ð@
ñ ð@
ñ  �+ð@
ñ ™jÕ(¨4Õ/ð@
ñ" 
ñ#@
r   c           	     ó”  € \        WR7      w  pp/ pVP                  4        F/  w  ppV'       d   V P                  VVVW¬,          VR7      pVVV&   K1  	  \        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.
)rx   )rH   rU   rV   r/   r.   )r   r   r   )ÚdimrE   rF   )ÚdataÚtensor_type)r   Úitemsr]   r   Úrescale_and_normalizero   ÚlenÚtorchÚcatÚtensorr   )rP   rH   rr   rU   rV   rs   rt   ru   rv   rw   r   r   r   rx   ry   rI   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedr\   Ústacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_gridsrm   rk   rl   Úprocessed_imagesrE   rF   s   &&&&&&&&&&&&&&&,              r   Ú_preprocessÚ Glm46VImageProcessor._preprocess¨   s‹  € ô, 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡Ø)ØØ%Ø%Õ2Ø$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_kwargsNrJ   )r   Údict)r   r   s   "€r   r   rK   ê   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   rU   rC   rD   )r+   r,   r-   r/   r0   r1   r.   )Úgetr   r   rU   r@   r   )rP   r,   r-   r“   r   r   rU   r/   r^   r_   rk   rl   s   &&&&        r   Úget_number_of_image_patchesÚ0Glm46VImageProcessor.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?rM   )!r!   r"   r#   r$   rr   r   ÚBICUBICrV   rU   Údefault_to_squarers   rt   ru   r   rv   r	   rw   Údo_convert_rgbr   r   r   r   Úvalid_kwargsÚmodel_input_namesr   rO   r]   ro   r�   r—   r'   r(   Ú__classcell__)rQ   r   s   @@r   rB   rB   U   s°   ù‡ € à€IØ!×)Ñ)€HØ˜Y¨¸ÐH€DØÐØ€JØ€NØ€LØ!€JØ€IØ€NØ€JØÐØ€JØ-€LØ'Ð)9Ð:Ðà÷4ò 4ó ð4÷
ó 
÷:/ð /÷@@
ð @
÷D÷ ò r   rB   )r   é   r™   i  “ )r7   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   r@   rB   Ú__all__r    r   r   Ú<module>rª      sc   ðó* ã Ý 7å ;Ý 2ß Eß fÕ fß 4ß /ô °Uõ ÷!ðH ôrÐ-ó ró ðrðj "Ð
"‚r   