+
    œ°³j¼$  ã                   ó|  € R t ^ RIt^ RIHt ^RIH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
IHtHt ^RIHtHtHt ^RIHtHtHtHtH t H!t!H"t"H#t# ]! RR7      ] ! R R]4      4       4       t$]! RR7      ] ! R R]4      4       4       t%]! RR7      ] ! R R]4      4       4       t&]! RR7      ] ! R R]4      4       4       t' ! R R]4      t( ! R R]"4      t) ! R R]4      t* ! R R]!4      t+ ! R R ]4      t,] ! R! R"] 4      4       t-]! R#R$7       ! R% R&]#4      4       t. ! R' R(]4      t/. R)Ot0R# )*zPyTorch SAM 2 model.N)Ústrict)Úinitialization)ÚPreTrainedConfig)ÚPreTrainedModel)ÚUnpack)Úauto_docstring)ÚTransformersKwargsÚmerge_with_config_defaults)Úcapture_outputs)ÚCONFIG_MAPPINGÚ
AutoConfig)Ú
Sam2ConfigÚSam2MaskDecoderConfigÚSam2PromptEncoderConfig)ÚSam2AttentionÚSam2FeedForwardÚSam2LayerNormÚ	Sam2ModelÚSam2PreTrainedModelÚSam2TwoWayAttentionBlockÚSam2VisionEncoderOutputÚSam2VisionModelzyonigozlan/EdgeTAM-hf)Ú
checkpointc                   ó‚   a a€ ] tR t^(t oRtRtRtR]/tRt	Rt
RtRt^t^t^ tRt^tRtRtR	tV 3R
 ltV3R ltRtVtV ;t# )ÚEdgeTamVisionConfigaš  
backbone_channel_list (`List[int]`, *optional*, defaults to `[384, 192, 96, 48]`):
    The list of channel dimensions for the backbone.
backbone_feature_sizes (`List[List[int]]`, *optional*, defaults to `[[256, 256], [128, 128], [64, 64]]`):
    The spatial sizes of the feature maps from the backbone.
fpn_hidden_size (`int`, *optional*, defaults to 256):
    The hidden dimension of the FPN.
fpn_kernel_size (`int`, *optional*, defaults to 1):
    The kernel size for the convolutions in the neck.
fpn_stride (`int`, *optional*, defaults to 1):
    The stride for the convolutions in the neck.
fpn_padding (`int`, *optional*, defaults to 0):
    The padding for the convolutions in the neck.
fpn_top_down_levels (`List[int]`, *optional*, defaults to `[2, 3]`):
    The levels for the top-down FPN connections.
num_feature_levels (`int`, *optional*, defaults to 3):
    The number of feature levels from the FPN to use.
Úvision_configÚedgetam_vision_modelÚbackbone_configNé   Úgelug�íµ ÷Æ°>g{®Gáz”?c           
     óh  <€ V P                   f   . R
OMV P                   V n         V P                  f   RR.^€^€.^@^@..MV P                  V n        V P                  f   ^^.MV P                  V n        \        V P                  \
        4      '       d^   V P                  P                  RR4      V P                  R&   \        V P                  R,          ,          ! R/ V P                  B V n        M3V P                  f&   \        P                  ! RR^RRR. RO/R	7      V n        \        SV `,  ! R/ VB  R # )Nr   Ú
model_typeÚtimm_wrapperztimm/repvit_m1.dist_in1kÚin_chansÚfeatures_onlyTÚout_indices)Ú
model_args)i€  éÀ   é`   é0   © )é    é   é   é   )Úbackbone_channel_listÚbackbone_feature_sizesÚfpn_top_down_levelsÚ
isinstancer   ÚdictÚgetr   r   Úfrom_pretrainedÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s   &,€Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/edgetam/modular_edgetam.pyr7   Ú!EdgeTamVisionConfig.__post_init__Q   s  ø€ à"&×"<Ñ"<Ò"DÓÈ$×JdÑJdð 	Ô"ð 37×2MÑ2MÒ2Uˆc�3ˆZ˜#˜s˜ b¨" XÑ.Ð[_×[vÑ[vð 	Ô#ð .2×-EÑ-EÒ-M A q¡6ÐSW×SkÑSkˆÔ ä�d×*Ñ*¬D×1Ò1Ø15×1EÑ1E×1IÑ1IÈ,ÐXfÓ1gˆD× Ñ  Ñ.Ü#1°$×2FÑ2FÀ|Õ2TÖ#UÑ#mÐX\×XlÑXlÑ#mˆDÕ Ø×!Ñ!Ò)Ü#-×#=Ò#=Ø*Ø&¨¨?¸DÀ-ÒQ]Ð^ô$ˆDÔ ô 	‰ÒÑ' Ô'ó    c                ó  <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   S[S[,          R,          ;R&   S[R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          R,          ;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   # )r-   Nr   r/   r0   Úfpn_hidden_sizeÚfpn_kernel_sizeÚ
fpn_strideÚfpn_paddingr1   Únum_feature_levelsÚ
hidden_actÚlayer_norm_epsÚinitializer_range)r3   r   ÚlistÚintÚstrÚfloat)ÚformatÚ__classdict__s   "€r;   Ú__annotate__Ú EdgeTamVisionConfig.__annotate__(   sÒ   ø‡ ‚ ñ8 Ñ,Õ,¨tÕ3Ñ:ñ9 ñ:  ¡�9 tÕ+Ñ2ñ; ñ< ! 4�KÑ.ñ= ñ> Ññ? ñ@ ÑñA ñB ÑñC ñD ÑñE ñF ™c� TÕ)Ñ0ñG ñH ÑñI ñJ ÑñK ñL Ñ ñM ñN Ñ#òO r=   )r/   r   r0   r1   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úbase_config_keyr!   r   Úsub_configsr   r/   r0   r?   r@   rA   rB   r1   rC   rD   rE   rF   r7   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r:   rL   s   @@r;   r   r   (   sr   ù‡ € ñð& &€OØ'€Jà˜:ð€Kð 7;€OØ.2ÐØ*.ÐØ€OØ€OØ€JØ€KØ,0ÐØÐØ€JØ €NØ#Ðõ(÷S … r=   r   c                   ó   € ] tR t^etRtR# )ÚEdgeTamPromptEncoderConfigr*   N©rO   rP   rQ   rR   rW   r*   r=   r;   r[   r[   e   ó   † ó 	r=   r[   c                   ó   € ] tR t^ktRtR# )ÚEdgeTamMaskDecoderConfigr*   Nr\   r*   r=   r;   r_   r_   k   r]   r=   r_   c                   ó   € ] tR t^qtRtRtR# )ÚEdgeTamConfiga]  
prompt_encoder_config (Union[`dict`, `EdgeTamPromptEncoderConfig`], *optional*):
    Dictionary of configuration options used to initialize [`EdgeTamPromptEncoderConfig`].
mask_decoder_config (Union[`dict`, `EdgeTamMaskDecoderConfig`], *optional*):
    Dictionary of configuration options used to initialize [`EdgeTamMaskDecoderConfig`].

 Example:

 ```python
 >>> from transformers import (
 ...     EdgeTamVisionConfig,
 ...     EdgeTamPromptEncoderConfig,
 ...     EdgeTamMaskDecoderConfig,
 ...     EdgeTamModel,
 ... )

 >>> # Initializing a EdgeTamConfig with `"facebook/edgetam.1_hiera_tiny"` style configuration
 >>> configuration = EdgeTamConfig()

 >>> # Initializing a EdgeTamModel (with random weights) from the `"facebook/edgetam.1_hiera_tiny"` style configuration
 >>> model = EdgeTamModel(configuration)

 >>> # Accessing the model configuration
 >>> configuration = model.config

 >>> # We can also initialize a EdgeTamConfig from a EdgeTamVisionConfig, EdgeTamPromptEncoderConfig, and EdgeTamMaskDecoderConfig
 >>> # Initializing EDGETAM vision encoder, memory attention, and memory encoder configurations
 >>> vision_config = EdgeTamVisionConfig()
 >>> prompt_encoder_config = EdgeTamPromptEncoderConfig()
 >>> mask_decoder_config = EdgeTamMaskDecoderConfig()

 >>> config = EdgeTamConfig(vision_config, prompt_encoder_config, mask_decoder_config)
 ```
r*   N)rO   rP   rQ   rR   rS   rW   r*   r=   r;   ra   ra   q   s   † ñ!óF 	r=   ra   c                   ó   € ] tR t^štRtR# )ÚEdgeTamLayerNormr*   Nr\   r*   r=   r;   rc   rc   š   ó   † Ûr=   rc   c                   ó   € ] tR t^žtRtR# )ÚEdgeTamVisionEncoderOutputr*   Nr\   r*   r=   r;   rf   rf   ž   rd   r=   rf   c                   ó   € ] tR t^¢tRtR# )ÚEdgeTamAttentionr*   Nr\   r*   r=   r;   rh   rh   ¢   rd   r=   rh   c                   ó   € ] tR t^¦tRtR# )ÚEdgeTamTwoWayAttentionBlockr*   Nr\   r*   r=   r;   rj   rj   ¦   rd   r=   rj   c                   ó   € ] tR t^ªtRtR# )ÚEdgeTamFeedForwardr*   Nr\   r*   r=   r;   rl   rl   ª   rd   r=   rl   c                   óR   a € ] tR t^®t o Rt]P                  ! 4       R 4       tRtV t	R# )ÚEdgeTamPreTrainedModelNc                óB  € \         P                  ! W4       \        V\        4      '       d3   VP                  e#   \
        P                  ! VP                  4       R # R # \        VR4      '       d/   \
        P                  ! VP                  VP                  R7       R # R # )NÚpositional_embedding)Ústd)r   Ú_init_weightsr2   ÚEdgeTamModelÚno_memory_embeddingÚinitÚzeros_ÚhasattrÚnormal_rp   Úscale)r8   Úmodules   &&r;   rr   Ú$EdgeTamPreTrainedModel._init_weights²   sk   € ä×%Ò% dÔ3Ü�fœl×+Ò+Ø×)Ñ)Ò5Ü—’˜F×6Ñ6Ö7ñ 6ä�VÐ3×4Ò4Ü�LŠL˜×4Ñ4¸&¿,¹,×Gñ 5r=   r*   )
rO   rP   rQ   rR   Ú"_keys_to_ignore_on_load_unexpectedÚtorchÚno_gradrr   rW   rX   ©rL   s   @r;   rn   rn   ®   s%   ø‡ € à)-Ð&à
‡]‚]ƒ_ñHó öHr=   rn   zN
    The vision model from EdgeTAM without any head or projection on top.
    )Úcustom_introc                   ó\   a € ] tR t^¼t o ]tRt/ tR t]	]
RV 3R lR ll4       4       tRtV tR# )ÚEdgeTamVisionModelÚpixel_valuesc                ó   € \        R 4      h©z2Can't get input embeddings from timm wrapper model©ÚNotImplementedError©r8   s   &r;   Úget_input_embeddingsÚ'EdgeTamVisionModel.get_input_embeddingsÈ   ó   € Ü!Ð"VÓWÐWr=   Nc                ón   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[S[,          /# )r-   rƒ   Nr9   Úreturn)r}   ÚFloatTensorr   r   Útuplerf   )rK   rL   s   "€r;   rM   ÚEdgeTamVisionModel.__annotate__Í   s@   ø€ ÷ 
ñ 
á×'Ñ'¨$Õ.ð
ñ Ñ+Õ,ð
ñ 
Ñ+Õ	+ñ	
r=   c           	     óv  € Vf   \        R4      hV P                  ! V3/ VB pVP                  pV Uu. uF  qUP                  ^ ^^^4      NK  	  ppV P	                  V4      w  rgW`P
                  ) R  R R R1,          pWpP
                  ) R  R R R1,          p\        VR,          VVVP                  R7      # u upi )Nz You have to specify pixel_values)Úlast_hidden_stateÚfpn_hidden_statesÚfpn_position_encodingÚhidden_stateséÿÿÿÿ)Ú
ValueErrorÚbackboner’   ÚpermuteÚneckrC   rf   r•   )r8   rƒ   r9   Úbackbone_outputÚintermediate_hidden_statesÚhidden_stater“   r”   s   &&,     r;   ÚforwardÚEdgeTamVisionModel.forwardË   sÙ   € ð ÒÜÐ?Ó@Ð@ð Ÿ-š-¨Ñ?¸Ñ?ˆØ%4×%FÑ%FÐ"Ù[uÓ%vÑ[uÈ<×&:Ñ&:¸1¸aÀÀAÖ&FÑ[uÐ"Ð%và37·9±9Ð=WÓ3XÑ0Ðà-×/FÑ/FÐ.FÐ.HÐIÉ$ÈBÈ$ÕOÐØ 5×7NÑ7NÐ6NÐ6PÐ QÑRVÐTVÐRVÕ WÐä)Ø8¸Õ<Ø/Ø"7Ø)×7Ñ7ô	
ð 	
ùò &ws   ³B6r*   )N)rO   rP   rQ   rR   r   Úconfig_classÚmain_input_nameÚ_can_record_outputsr‰   r	   r
   rž   rW   rX   r   s   @r;   r‚   r‚   ¼   s@   ø‡ € ð '€LØ$€Oð ÐòXð  Ø÷
ñ 
ó ó  ö
r=   r‚   c                   ó.   a € ] tR t^çt o . ROtR tRtV tR# )rs   c                ó   € \        R 4      hr…   r†   rˆ   s   &r;   r‰   Ú!EdgeTamModel.get_input_embeddingsó   r‹   r=   r*   N)z
^memory_.*z^mask_downsample.*zspatial_perceiver.*z^object_pointer_proj.*z0^temporal_positional_encoding_projection_layer.*Úno_memory_positional_encodingÚno_object_pointerÚ%occlusion_spatial_embedding_parameter)rO   rP   rQ   rR   r|   r‰   rW   rX   r   s   @r;   rs   rs   ç   s   ø‡ € ò	*Ð&÷Xð Xr=   rs   )rs   r‚   rn   ra   r   r[   r_   )1rS   r}   Úhuggingface_hub.dataclassesr   Ú r   ru   Úconfiguration_utilsr   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   Úutils.genericr   r	   Úutils.output_capturingr
   Úautor   r   Úsam2.configuration_sam2r   r   r   Úsam2.modeling_sam2r   r   r   r   r   r   r   r   r   r[   r_   ra   rc   rf   rh   rj   rl   rn   r‚   rs   Ú__all__r*   r=   r;   Ú<module>rµ      s~  ðñ ã Ý .å &Ý 3Ý -Ý &Ý #ß KÝ 5ß -ß `Ñ `÷	÷ 	ó 	ñ Ð2Ô3Øô8(Ð*ó 8(ó ó 4ð8(ñv Ð2Ô3Øô	Ð!8ó 	ó ó 4ð	ñ Ð2Ô3Øô	Ð4ó 	ó ó 4ð	ñ Ð2Ô3Øô$	�Jó $	ó ó 4ð$	ôN	�}ô 	ô	Ð!8ô 	ô	�}ô 	ô	Ð":ô 	ô	˜ô 	ð ô
HÐ0ó 
Hó ð
Hñ ðôô
#
˜ó #
óð
#
ôLX�9ô Xò ‚r=   