+
    œ°³j¢  ã                   óÎ   € R t ^ RIH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]4      4       tR.tR# )z#Image processor class for ViTMatte.)ÚUnionN)Ú
functional)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_STANDARD_MEANÚIMAGENET_STANDARD_STDÚChannelDimensionÚ
ImageInputÚget_image_size)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   ó0   a € ] tR t^#t o RtV 3R ltRtV tR# )ÚVitMatteImageProcessorKwargsz™
size_divisor (`int`, *optional*, defaults to `self.size_divisor`):
    The width and height of the image will be padded to be divisible by this number.
c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )é   Úsize_divisor©Úint)ÚformatÚ__classdict__s   "€Úw/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/vitmatte/image_processing_vitmatte.pyÚ__annotate__Ú)VitMatteImageProcessorKwargs.__annotate__#   s   ø‡ ‚ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   #   s   ø‡ € ñ÷ ƒ r   r   F)Útotalc                   ó¾   a a€ ] tR t^,t oRtRtRt]t]	t
Rt^ t]tV3R lV 3R lltRV3R lR llt]V3R lV 3R ll4       tRV3R lR	 lltV3R
 lR ltRtVtV ;t# )ÚVitMatteImageProcessorTc                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r   ÚkwargsÚreturnN)r   r   )r   r   s   "€r   r   Ú#VitMatteImageProcessor.__annotate__7   s!   ø€ ÷ #ñ #¡Ñ(DÕ!Eð #È$ñ #r   c                óx   <€ VP                  R R4      pVe   VP                  RV4       \        SV `  ! R/ VB  R# )Úsize_divisibilityNr   r   )ÚpopÚ
setdefaultÚsuperÚ__init__)Úselfr+   r/   Ú	__class__s   &, €r   r3   ÚVitMatteImageProcessor.__init__7   s<   ø€ à"ŸJ™JÐ':¸DÓAÐØÒ(Ø×Ñ˜nÐ.?Ô@Ü‰ÒÑ"˜6Ô"r   c                ó(   <€ V ^8„  d   QhRRRS[ RR/# )r   Úimagesútorch.Tensorr   r,   r   )r   r   s   "€r   r   r-   >   s)   ø€ ÷ ñ àðñ ðð 
ñ	r   c                ó  € \        V\        P                  R7      w  r4W2,          ^ 8X  d   ^ MW#V,          ,
          pWB,          ^ 8X  d   ^ MW$V,          ,
          pWe,           ^ 8”  d   ^ ^ We3p\        P                  ! W4      pV# )a,  
Pads an image or batched images constantly so that width and height are divisible by size_divisor

Args:
    images (`torch.Tensor`):
        Image to pad.
    size_divisor (`int`, *optional*, defaults to 32):
        The width and height of the image will be padded to be divisible by this number.
)Úchannel_dim)r   r
   ÚFIRSTÚtvFÚpad)r4   r8   r   ÚheightÚwidthÚ
pad_heightÚ	pad_widthÚpaddings   &&&     r   Ú
_pad_imageÚ!VitMatteImageProcessor._pad_image>   sv   € ô ' vÔ;K×;QÑ;QÔR‰ˆà Õ/°1Ô4‘Q¸,ÐR^ÕI^Õ:^ˆ
ØÕ-°Ô2‘A¸È|ÕG[Õ8[ˆ	àÕ! AÔ%Ø˜!˜YÐ3ˆGÜ—W’W˜VÓ-ˆFàˆr   c                óB   <€ V ^8„  d   QhRS[ RS[ RS[S[,          RS[/# )r   r8   Útrimapsr+   r,   )r   r   r   r   )r   r   s   "€r   r   r-   X   s9   ø€ ÷ 
=ñ 
=áð
=ñ ð
=ñ Ñ5Õ6ð	
=ñ
 
ñ
=r   c                ó&   <€ \         SV `  ! W3/ VB # )z8
trimaps (`ImageInput`):
    The trimaps to preprocess.
)r2   Ú
preprocess)r4   r8   rG   r+   r5   s   &&&,€r   rI   Ú!VitMatteImageProcessor.preprocessW   s   ø€ ô ‰wÒ! &Ñ<°VÑ<Ð<r   c                óv   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[S[R3,          R,          RS[S[,          R	S[/# )
r   r8   rG   Údo_convert_rgbÚinput_data_formatÚdeviceztorch.deviceNr+   r,   )r   Úboolr
   r   Ústrr   r   r   )r   r   s   "€r   r   r-   d   sf   ø€ ÷ ;ñ ;áð;ñ ð;ñ ð	;ñ
 ,ð;ñ ‘c˜>Ð)Õ*¨TÕ1ð;ñ Ñ5Õ6ð;ñ 
ñ;r   c                óv   € V P                  WWER7      pV P                  V^VR7      pV P                  ! W3/ VB # )z
Preprocess image-like inputs.
)r8   rL   rM   rN   )r8   Úexpected_ndimsrN   )Ú_prepare_image_like_inputsÚ_preprocess)r4   r8   rG   rL   rM   rN   r+   s   &&&&&&,r   Ú_preprocess_image_like_inputsÚ4VitMatteImageProcessor._preprocess_image_like_inputsd   sP   € ð ×0Ñ0ØÐL]ð 1ó 
ˆð ×1Ñ1¸ÐQRÐ[aÐ1Óbˆà×Ò Ñ:°6Ñ:Ð:r   c                ó"  <€ V ^8„  d   QhRS[ R,          RS[ R,          RS[RS[RS[RS[S[ S[,          ,          R,          R	S[S[ S[,          ,          R,          R
S[R,          RS[R,          RS[R,          RS[S[,          R,          RS[/# )r   r8   r9   rG   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdo_padr   Údisable_groupingÚreturn_tensorsr,   )ÚlistrO   Úfloatr   rP   r   r   )r   r   s   "€r   r   r-   w   sÍ   ø€ ÷ #añ #aá�^Õ$ð#añ �nÕ%ð#añ ð	#añ
 ð#añ ð#añ ™D¡�KÕ'¨$Õ.ð#añ ™4¡�;Õ&¨Õ-ð#añ �t•ð#añ ˜D•jð#añ  �+ð#añ ™jÕ(¨4Õ/ð#añ 
ñ#ar   c           	     ón  € \        WR 7      w  rÞ\        W*R 7      w  pp/ pV Fv  pVV,          pVV,          pV P                  VW4WVV4      pV P                  VW4RWg4      p\        P                  ! VV.^R7      pV'       d   V P	                  VV	4      pVVV&   Kx  	  \        VV4      p\        RV/VR7      # ))r^   F)ÚdimÚpixel_values)ÚdataÚtensor_type)r   Úrescale_and_normalizeÚtorchÚcatrD   r   r   )r4   r8   rG   rX   rY   rZ   r[   r\   r]   r   r^   r_   r+   Úgrouped_imagesÚgrouped_images_indexÚgrouped_trimapsÚgrouped_trimaps_indexÚprocessed_images_groupedÚshapeÚstacked_imagesÚstacked_trimapsÚprocessed_imagess   &&&&&&&&&&&&,         r   rT   Ú"VitMatteImageProcessor._preprocessw   sÕ   € ô 0EÀVÔ/oÑ,ˆÜ1FÀwÔ1rÑ.ˆÐ.Ø#%Ð Û#ˆEØ+¨EÕ2ˆNØ-¨eÕ4ˆOà!×7Ñ7Ø 
¸LÐV_óˆNð #×8Ñ8Ø ¸UÀJóˆOô #ŸYšY¨¸Ð'HÈaÔPˆNßØ!%§¡°ÀÓ!N�Ø.<Ð$ UÓ+ñ $ô *Ð*BÐDXÓYÐä .Ð2BÐ!CÐQ_Ô`Ð`r   r   gp?)é    )N)r   r    r!   r"   rX   rY   rZ   r   r[   r	   r\   r]   r   r   Úvalid_kwargsr3   rD   r   rI   rU   rT   r%   r&   Ú__classcell__)r5   r   s   @@r   r)   r)   ,   sv   ù‡ € à€JØ€NØ€LØ'€JØ%€IØ€FØ€LØ/€L÷#ó #÷ò ð2 ÷
=ò 
=ó ð
=÷;ò ;÷&#a÷ #að #ar   r)   )r#   Útypingr   rh   Útorchvision.transforms.v2r   r=   Úimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr   r	   r
   r   r   Úprocessing_utilsr   r   Úutilsr   r   r   r)   Ú__all__r   r   r   Ú<module>r€      si   ðñ *å ã Ý 7å ;Ý 2ß E÷õ ÷ 5ß /ô <°uõ ð ômaÐ/ó maó ðmað` $Ð
$‚r   