+
    œ°³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 ^RIHtHt ^RIHt ]! R	R
7      ] ! R R]4      4       4       t] ! R R]4      4       t ! R R]P&                  4      t ! R R]P&                  4      t ! R R]P&                  4      t ! R R]P&                  4      t ! R R]P&                  4      t]! RR
7       ! R R]4      4       tRR.tR# )zPyTorch ViTMatte model.)Ú	dataclassN)Únn)Úinitialization)Úload_backbone)ÚPreTrainedModel)ÚModelOutputÚauto_docstring©ÚVitMatteConfigz4
    Class for outputs of image matting models.
    )Úcustom_introc                   ó@   a € ] tR t^t o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚImageMattingOutputa‘  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Loss.
alphas (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
    Estimated alpha values.
hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
    one for the output of each stage) of shape `(batch_size, sequence_length, hidden_size)`. Hidden-states
    (also called feature maps) of the model at the output of each stage.
Nc                óò   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   # )é   NÚlossÚalphasÚhidden_statesÚ
attentions)ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/vitmatte/modeling_vitmatte.pyÚ__annotate__ÚImageMattingOutput.__annotate__   so   ø‡ ‚ ñ$ ×
Ñ
˜dÕ
"Ñ)ñ% ñ& ×Ñ Õ$Ñ+ñ' ñ( ™×*Ñ*Õ+¨dÕ2Ñ9ñ) ñ* ‘e×'Ñ'Õ(¨4Õ/Ñ6ò+ ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s'   ø‡ € ñ	ð &*€DØ'+€FØ59€MØ26€J÷+ ƒ r   r   c                   ó‚   a a€ ] tR t^4t oRtRtRt. t]P                  ! 4       V3R lV 3R ll4       t
V3R ltRtVtV ;t# )ÚVitMattePreTrainedModelÚpixel_valuesTc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úmodule)r   ÚModule)r   r   s   "€r   r   Ú$VitMattePreTrainedModel.__annotate__=   s   ø€ ÷ 	8ñ 	8¡B§I¡Iñ 	8r   c                ó  <€ \         SV `  V4       \        V\        P                  4      '       dÙ   \
        P                  ! VP                  R V P                  P                  R7       VP                  e!   \
        P                  ! VP                  4       \        VRR4      ec   \
        P                  ! VP                  4       \
        P                  ! VP                  4       \
        P                  ! VP                   4       R# R# R# )g        )ÚmeanÚstdNÚrunning_mean)ÚsuperÚ_init_weightsÚ
isinstancer   ÚBatchNorm2dÚinitÚnormal_ÚweightÚconfigÚinitializer_rangeÚbiasÚzeros_Úgetattrr0   Úones_Úrunning_varÚnum_batches_tracked)Úselfr*   Ú	__class__s   &&€r   r2   Ú%VitMattePreTrainedModel._init_weights<   s©   ø€ ä‰Ñ˜fÔ%Ü�fœbŸn™n×-Ò-Ü�LŠL˜Ÿ™¨S°d·k±k×6SÑ6SÕTØ�{‰{Ò&Ü—’˜FŸK™KÔ(Ü�v˜~¨tÓ4Ò@Ü—’˜F×/Ñ/Ô0Ü—
’
˜6×-Ñ-Ô.Ü—’˜F×6Ñ6Ö7ñ Añ	 .r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r   r8   r	   )r   r   s   "€r   r   r,   4   s   ø‡ ‚ áÑò r   r   )Úimage)r   r   r    r!   Úmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesr   Úno_gradr2   r#   r$   r%   Ú__classcell__©rA   r   s   @@r   r'   r'   4   sB   ù‡ € ð %€OØ!ÐØ&*Ð#ØÐà
‡]‚]ƒ_÷	8ò 	8ó ð	8÷ … r   r'   c                   ó@   a a€ ] tR t^It oRtRV 3R lltR tRtVtV ;t	# )ÚVitMatteBasicConv3x3zH
Basic convolution layers including: Conv3x3, BatchNorm2d, ReLU layers.
c           	     óæ   <€ \         SV `  4        \        P                  ! VV^VVRR7      V n        \        P
                  ! W1P                  R7      V n        \        P                  ! 4       V n	        R# )é   F)Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚpaddingr:   )ÚepsN)
r1   Ú__init__r   ÚConv2dÚconvr4   Úbatch_norm_epsÚ
batch_normÚReLUÚrelu)r@   r8   rP   rQ   rS   rT   rA   s   &&&&&&€r   rV   ÚVitMatteBasicConv3x3.__init__N   sU   ø€ Ü‰ÑÔÜ—I’IØ#Ø%ØØØØô
ˆŒ	ô Ÿ.š.¨×;PÑ;PÔQˆŒÜ—G’G“IˆŽ	r   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# ©N)rX   rZ   r\   ©r@   Úhidden_states   &&r   ÚforwardÚVitMatteBasicConv3x3.forward[   s2   € Ø—y‘y Ó.ˆØ—‘ |Ó4ˆØ—y‘y Ó.ˆàÐr   )rZ   rX   r\   )r   é   ©
r   r   r    r!   r"   rV   rb   r$   r%   rJ   rK   s   @@r   rM   rM   I   s   ù‡ € ñ÷÷ò r   rM   c                   ó<   a a€ ] tR t^ct oRtV 3R ltR tRtVtV ;t	# )ÚVitMatteConvStreamz[
Simple ConvStream containing a series of basic conv3x3 layers to extract detail features.
c                óè  <€ \         SV `  4        ^pVP                  e   VP                  P                  p\	        VP
                  4      p\        P                  ! 4       V n        V.V,           V n	        \        \        V P                  4      ^,
          4       FU  pV P                  V,          pV P                  V^,           ,          pV P                  P                  \        WV4      4       KW  	  R# )é   N)r1   rV   Úbackbone_configÚnum_channelsÚlistÚconvstream_hidden_sizesr   Ú
ModuleListÚconvsÚ
conv_chansÚrangeÚlenÚappendrM   )r@   r8   rP   rQ   ÚiÚin_chan_Ú	out_chan_rA   s   &&     €r   rV   ÚVitMatteConvStream.__init__h   s´   ø€ Ü‰ÑÔð ˆØ×!Ñ!Ò-Ø ×0Ñ0×=Ñ=ˆKä˜F×:Ñ:Ó;ˆä—]’]“_ˆŒ
Ø&˜-¨,Õ6ˆŒä”s˜4Ÿ?™?Ó+¨aÕ/Ö0ˆAØ—‘ qÕ)ˆHØŸ™¨¨A­Õ.ˆIØ�J‰J×ÑÔ2°6ÀYÓOÖPó 1r   c                óÈ   € R V/pTp\        \        V P                  4      4       F9  pV P                  V,          ! V4      pR\        V^,           4      ,           pW2V&   K;  	  V# )Údetailed_feature_map_0Údetailed_feature_map_)rq   rr   ro   Ústr)r@   r(   Úout_dictÚ
embeddingsrt   Úname_s   &&    r   rb   ÚVitMatteConvStream.forward{   sZ   € Ø,¨lÐ;ˆØ!ˆ
Ü”s˜4Ÿ:™:“Ö'ˆAØŸ™ Až zÓ2ˆJØ+¬c°!°aµ%«jÕ8ˆEØ(�U‹Oñ (ð
 ˆr   )rp   ro   re   rK   s   @@r   rg   rg   c   s   ù‡ € ñõQ÷&ò r   rg   c                   ó<   a a€ ] tR t^†t oRtV 3R ltR tRtVtV ;t	# )ÚVitMatteFusionBlockzT
Simple fusion block to fuse features from ConvStream and Plain Vision Transformer.
c                óL   <€ \         SV `  4        \        WV^^R7      V n        R# )rd   )rS   rT   N)r1   rV   rM   rX   )r@   r8   rP   rQ   rA   s   &&&&€r   rV   ÚVitMatteFusionBlock.__init__‹   s"   ø€ Ü‰ÑÔÜ(¨¸lÐSTÐ^_Ô`ˆŽ	r   c                ó    € \         P                  P                  V^RRR7      p\        P                  ! W#.^R7      pV P                  V4      pV# )r   ÚbilinearF)Úscale_factorÚmodeÚalign_corners)Údim)r   Ú
functionalÚinterpolater   ÚcatrX   )r@   ÚfeaturesÚdetailed_feature_mapÚupscaled_featuresÚouts   &&&  r   rb   ÚVitMatteFusionBlock.forward�   sH   € ÜŸM™M×5Ñ5°hÈQÐU_ÐotÐ5ÓuÐÜ�iŠiÐ-ÐAÀqÔIˆØ�i‰i˜‹nˆàˆ
r   )rX   re   rK   s   @@r   r�   r�   †   s   ù‡ € ñõa÷ò r   r�   c                   ó<   a a€ ] tR t^—t oRtV 3R ltR tRtVtV ;t	# )ÚVitMatteHeadzB
Simple Matting Head, containing only conv3x3 and conv1x1 layers.
c                ó<  <€ \         SV `  4        VP                  R,          p^p\        P                  ! \        P
                  ! W#^^^R7      \        P                  ! V4      \        P                  ! R4      \        P
                  ! V^^^^ R7      4      V n        R# )rd   )rR   rS   rT   TNéÿÿÿÿ)	r1   rV   Úfusion_hidden_sizesr   Ú
SequentialrW   r4   r[   Úmatting_convs)r@   r8   rP   Úmid_channelsrA   s   &&  €r   rV   ÚVitMatteHead.__init__œ   sr   ø€ Ü‰ÑÔà×0Ñ0°Õ4ˆØˆäŸ]š]Ü�IŠI�k¸QÀqÐRSÔTÜ�NŠN˜<Ó(Ü�GŠG�D‹MÜ�IŠI�l A°1¸QÈÔJó	
ˆÖr   c                ó(   € V P                  V4      pV# r_   ©r˜   r`   s   &&r   rb   ÚVitMatteHead.forward©   s   € Ø×)Ñ)¨,Ó7ˆàÐr   rœ   re   rK   s   @@r   r“   r“   —   s   ù‡ € ñõ
÷ò r   r“   c                   ó<   a a€ ] tR t^¯t oRtV 3R ltR tRtVtV ;t	# )ÚVitMatteDetailCaptureModulez?
Simple and lightweight Detail Capture Module for ViT Matting.
c           
     óÖ  <€ \         SV `  4        \        VP                  4      \        VP                  4      ^,           8w  d   \        R4      hWn        \        V4      V n        V P                  P                  V n	        \        P                  ! 4       V n        VP                  .VP                  ,           V n        \        \        V P                  4      ^,
          4       Fs  pV P                  P!                  \#        VV P                  V,          V P                  V^,           ) ,          ,           V P                  V^,           ,          R7      4       Ku  	  \%        V4      V n        R# )rd   z_The length of fusion_hidden_sizes should be equal to the length of convstream_hidden_sizes + 1.)r8   rP   rQ   N)r1   rV   rr   r–   rm   Ú
ValueErrorr8   rg   Ú
convstreamrp   r   rn   Úfusion_blocksÚhidden_sizeÚfusion_channelsrq   rs   r�   r“   Úmatting_head)r@   r8   rt   rA   s   && €r   rV   Ú$VitMatteDetailCaptureModule.__init__´   s  ø€ Ü‰ÑÔÜˆv×)Ñ)Ó*¬c°&×2PÑ2PÓ.QÐTUÕ.UÔUÜØqóð ð ŒÜ,¨VÓ4ˆŒØŸ/™/×4Ñ4ˆŒäŸ]š]›_ˆÔØ &× 2Ñ 2Ð3°f×6PÑ6PÕPˆÔä”s˜4×/Ñ/Ó0°1Õ4Ö5ˆAØ×Ñ×%Ñ%Ü#Ø!Ø $× 4Ñ 4°QÕ 7¸$¿/¹/ÈAÐPQÍEÈ(Õ:SÕ SØ!%×!5Ñ!5°a¸!µeÕ!<ôöñ 6ô )¨Ó0ˆÖr   c                ób  € V P                  V4      p\        \        V P                  4      4       FV  pR \	        \        V P                  4      V,
          ^,
          4      ,           pV P                  V,          ! WV,          4      pKX  	  \
        P                  ! V P                  V4      4      pV# )rz   )r¢   rq   rr   r£   r{   r   Úsigmoidr¦   )r@   r�   r(   Údetail_featuresrt   Údetailed_feature_map_namer   s   &&&    r   rb   Ú#VitMatteDetailCaptureModule.forwardÍ   sŒ   € ØŸ/™/¨,Ó7ˆÜ”s˜4×-Ñ-Ó.Ö/ˆAØ(?Ä#ÄcÈ$×J\ÑJ\ÓF]Ð`aÕFaÐdeÕFeÓBfÕ(fÐ%Ø×)Ñ)¨!Ö,¨XÐG`Õ7aÓbŠHñ 0ô —’˜t×0Ñ0°Ó:Ó;ˆàˆr   )r8   rp   r¢   r£   r¥   r¦   re   rK   s   @@r   rŸ   rŸ   ¯   s   ù‡ € ñõ1÷2ò r   rŸ   zX
    ViTMatte framework leveraging any vision backbone e.g. for ADE20k, CityScapes.
    c                   óR   a a€ ] tR t^Øt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚVitMatteForImageMattingc                ó’   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        V P                  4        R # r_   )r1   rV   r8   r   ÚbackbonerŸ   ÚdecoderÚ	post_init)r@   r8   rA   s   &&€r   rV   Ú VitMatteForImageMatting.__init__Þ   s9   ø€ Ü‰Ñ˜Ô ØŒä% fÓ-ˆŒÜ2°6Ó:ˆŒð 	�‰Ör   c                ó¦   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[R,          RS[ P                  R,          RS[R,          /# )r   r(   NÚoutput_attentionsÚoutput_hidden_statesÚlabelsÚreturn_dict)r   ÚTensorÚbool)r   r   s   "€r   r   Ú$VitMatteForImageMatting.__annotate__é   sb   ø€ ÷ C
ñ C
á—l‘l TÕ)ðC
ñ   $�;ðC
ñ # T�kð	C
ñ
 —‘˜tÕ#ðC
ñ ˜D•[ñC
r   c                óæ  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pRpVe   \	        R4      hV P
                  P                  WVR7      pVP                  R,          p	V P                  W‘4      p
V'       g"   V
3VR,          ,           pVe   V3V,           # T# \        VV
VP                  VP                  R7      # )ap  
labels (`torch.LongTensor` of shape `(batch_size, height, width)`, *optional*):
    Ground truth image matting for computing the loss.

Examples:

```python
>>> from transformers import VitMatteImageProcessor, VitMatteForImageMatting
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub import hf_hub_download

>>> processor = VitMatteImageProcessor.from_pretrained("hustvl/vitmatte-small-composition-1k")
>>> model = VitMatteForImageMatting.from_pretrained("hustvl/vitmatte-small-composition-1k")

>>> filepath = hf_hub_download(
...     repo_id="hf-internal-testing/image-matting-fixtures", filename="image.png", repo_type="dataset"
... )
>>> image = Image.open(filepath).convert("RGB")
>>> filepath = hf_hub_download(
...     repo_id="hf-internal-testing/image-matting-fixtures", filename="trimap.png", repo_type="dataset"
... )
>>> trimap = Image.open(filepath).convert("L")

>>> # prepare image + trimap for the model
>>> inputs = processor(images=image, trimaps=trimap, return_tensors="pt")

>>> with torch.no_grad():
...     alphas = model(**inputs).alphas
>>> print(alphas.shape)
torch.Size([1, 1, 640, 960])
```NzTraining is not yet supported)r¶   rµ   :rd   NN)r   r   r   r   r•   )r8   r¸   r¶   rµ   ÚNotImplementedErrorr°   Úforward_with_filtered_kwargsÚfeature_mapsr±   r   r   r   )r@   r(   rµ   r¶   r·   r¸   Úkwargsr   Úoutputsr�   r   Úoutputs   &&&&&&,     r   rb   ÚVitMatteForImageMatting.forwardè   sø   € ðT &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐàˆØÒÜ%Ð&EÓFÐFà—-‘-×<Ñ<ØÐWhð =ó 
ˆð ×'Ñ'¨Õ+ˆØ—‘˜hÓ5ˆçØ�Y ¨¥Õ,ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä!ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r   )r°   r8   r±   )NNNNN)
r   r   r    r!   rV   r   rb   r$   r%   rJ   rK   s   @@r   r®   r®   Ø   s,   ù‡ € õð ÷C
ñ C
ó ÷C
ð C
r   r®   )r"   Údataclassesr   r   r   Ú r   r5   Úbackbone_utilsr   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_vitmatter
   r   r'   r+   rM   rg   r�   r“   rŸ   r®   Ú__all__r   r   r   Ú<module>rË      sõ   ðñ å !ã Ý å &Ý +Ý -ß 0Ý 2ñ ðôð
 ô7˜ó 7ó óð7ð$ ô8˜oó 8ó ð8ô(˜2Ÿ9™9ô ô4 ˜Ÿ™ô  ôF˜"Ÿ)™)ô ô"�2—9‘9ô ô0& "§)¡)ô &ñR ðôô
O
Ð5ó O
óð
O
ðd %Ð&?Ð
@‚r   