Ë
    ÛÓ^jv&  ã                   ó   — d dl mZ ddlmZ ddlmZ ddlmZmZ  ed¬«      e G d	„ d
e«      «       «       Z	 ed¬«      e G d„ de«      «       «       Z
 ed¬«      e G d„ de«      «       «       Z ed¬«      e G d„ de«      «       «       Zg d¢Zy)é    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzyonigozlan/EdgeTAM-hf)Ú
checkpointc                   ó  ‡ — e Zd ZU dZdZdZdeiZdZe	e
z  dz  ed<   dZee   dz  ed<   dZedz  ed<   dZeed	<   d
Zeed<   d
Zeed<   dZeed<   dZee   dz  ed<   dZeed<   dZeed<   dZeed<   dZeed<   ˆ fd„Zˆ xZS )Ú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Úbackbone_channel_listÚbackbone_feature_sizesé   Úfpn_hidden_sizeé   Úfpn_kernel_sizeÚ
fpn_strider   Úfpn_paddingÚfpn_top_down_levelsr   Únum_feature_levelsÚgeluÚ
hidden_actç�íµ ÷Æ°>Úlayer_norm_epsç{®Gáz”?Úinitializer_rangec                 ó0  •— | j                   €g d¢n| j                   | _         | j                  €ddgddgddggn| j                  | _        | j                  €ddgn| j                  | _        t        | j                  t
        «      rT| j                  j                  dd«      | j                  d<   t        | j                  d      di | j                  ¤Ž| _        n.| j                  €"t        j                  d	dd
g d¢dœ¬«      | _        t        ‰| �,  di |¤Ž y )N)i€  éÀ   é`   é0   r   é€   é@   r   r   Ú
model_typeÚtimm_wrapperztimm/repvit_m1.dist_in1kT)r   r   r   r   )Úin_chansÚfeatures_onlyÚout_indices)Ú
model_args© )r   r   r   Ú
isinstancer   ÚdictÚgetr   r	   Úfrom_pretrainedÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s     €ú|/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/edgetam/configuration_edgetam.pyr2   z!EdgeTamVisionConfig.__post_init__D   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Ø15×1EÑ1E×1IÑ1IÈ,ÐXfÓ1gˆD× Ñ  Ñ.Ü#1°$×2FÑ2FÀ|Ñ2TÑ#UÑ#mÐX\×XlÑXlÑ#mˆDÕ Ø×!Ñ!Ð)Ü#-×#=Ñ#=Ø*Ø()¸DÒQ]Ñ^ô$ˆDÔ ô 	‰ÑÑ' Ó'ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úbase_config_keyr&   r	   Úsub_configsr   r.   r   Ú__annotations__r   ÚlistÚintr   r   r   r   r   r   r   r   Ústrr   Úfloatr   r2   Ú__classcell__©r6   s   @r7   r   r      sÊ   ø… ñð& &€OØ'€Jà˜:ð€Kð 7;€O�TÐ,Ñ,¨tÑ3Ó:Ø.2Ð˜4 ™9 tÑ+Ó2Ø*.Ð˜D 4™KÓ.Ø€O�SÓØ€O�SÓØ€J�ÓØ€K�ÓØ,0Ð˜˜c™ TÑ)Ó0ØÐ˜ÓØ€J�ÓØ €N�EÓ Ø#Ð�uÓ#÷(ð (r8   r   c                   ó¾   — e Zd ZU dZdZdZeed<   dZee	e   z  e
eef   z  ed<   dZee	e   z  e
eef   z  ed<   dZeed	<   d
Zeed<   dZeed<   dZeed<   dZeed<   y)ÚEdgeTamPromptEncoderConfigaY  
    mask_input_channels (`int`, *optional*, defaults to 16):
        The number of channels to be fed to the `MaskDecoder` module.
    num_point_embeddings (`int`, *optional*, defaults to 4):
        The number of point embeddings to be used.
    scale (`float`, *optional*, defaults to 1):
        The scale factor for the prompt encoder.
    Úprompt_encoder_configr   Úhidden_sizei   Ú
image_sizeé   Ú
patch_sizeÚmask_input_channelsé   Únum_point_embeddingsr   r   r   r   r   ÚscaleN)r9   r:   r;   r<   r=   rI   rA   r?   rJ   r@   ÚtuplerL   rM   rO   r   rB   r   rC   rP   r,   r8   r7   rG   rG   X   s‰   … ñð .€Oà€K�ÓØ48€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó8Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø!Ð˜Ó!Ø !Ð˜#Ó!Ø€J�ÓØ €N�EÓ Ø€Eˆ3„Nr8   rG   c                   ó¾   — e Zd ZU dZdZdZeed<   dZe	ed<   dZ
eed<   d	Zeed
<   dZeed<   d	Zeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   y)ÚEdgeTamMaskDecoderConfiga±  
    mlp_dim (`int`, *optional*, defaults to 2048):
        The dimension of the MLP in the two-way transformer.
    attention_downsample_rate (`int`, *optional*, defaults to 2):
        The downsample rate for the attention layers.
    num_multimask_outputs (`int`, *optional*, defaults to 3):
        The number of multimask outputs.
    iou_head_depth (`int`, *optional*, defaults to 3):
        The depth of the IoU head.
    iou_head_hidden_dim (`int`, *optional*, defaults to 256):
        The hidden dimension of the IoU head.
    dynamic_multimask_via_stability (`bool`, *optional*, defaults to `True`):
        Whether to use dynamic multimask via stability.
    dynamic_multimask_stability_delta (`float`, *optional*, defaults to 0.05):
        The stability delta for the dynamic multimask.
    dynamic_multimask_stability_thresh (`float`, *optional*, defaults to 0.98):
        The stability threshold for the dynamic multimask.
    Úmask_decoder_configr   rI   r   r   i   Úmlp_dimr   Únum_hidden_layersé   Únum_attention_headsÚattention_downsample_rater   Únum_multimask_outputsÚiou_head_depthÚiou_head_hidden_dimTÚdynamic_multimask_via_stabilitygš™™™™™©?Ú!dynamic_multimask_stability_deltag\�Âõ(\ï?Ú"dynamic_multimask_stability_threshN)r9   r:   r;   r<   r=   rI   rA   r?   r   rB   rU   rV   rX   rY   rZ   r[   r\   r]   Úboolr^   rC   r_   r,   r8   r7   rS   rS   p   sŽ   … ñð& ,€Oà€K�ÓØ€J�ÓØ€GˆSÓØÐ�sÓØ Ð˜Ó Ø%&Ð˜sÓ&Ø!"Ð˜3Ó"Ø€N�CÓØ"Ð˜Ó"Ø,0Ð# TÓ0Ø/3Ð% uÓ3Ø04Ð&¨Ô4r8   rS   c                   ó�   ‡ — e Zd ZU dZdZeeedœZdZ	e
ez  dz  ed<   dZe
ez  dz  ed<   dZe
ez  dz  ed<   dZeed	<   ˆ fd
„Zˆ xZS )Ú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)
     ```
    Úedgetam)r   rH   rT   Nr   rH   rT   r   r   c                 ó|  •— t        | j                  t        «      rT| j                  j                  dd«      | j                  d<   t	        | j                  d      di | j                  ¤Ž| _        n| j                  €t	        d   «       | _        t        | j
                  t        «      rt        di | j
                  ¤Ž| _        n| j
                  €t        «       | _        t        | j                  t        «      rt        di | j                  ¤Ž| _        n| j                  €t        «       | _        t        ‰| �(  di |¤Ž y )Nr&   r   r,   )r-   r   r.   r/   r   rH   rG   rT   rS   r1   r2   r3   s     €r7   r2   zEdgeTamConfig.__post_init__È   s  ø€ Ü�d×(Ñ(¬$Ô/Ø/3×/AÑ/A×/EÑ/EÀlÐTjÓ/kˆD×Ñ˜|Ñ,Ü!/°×0BÑ0BÀ<Ñ0PÑ!QÑ!gÐTX×TfÑTfÑ!gˆDÕØ×ÑÐ'Ü!/Ð0FÑ!GÓ!IˆDÔä�d×0Ñ0´$Ô7Ü)CÑ)aÀd×F`ÑF`Ñ)aˆDÕ&Ø×'Ñ'Ð/Ü)CÓ)EˆDÔ&ä�d×.Ñ.´Ô5Ü'?Ñ'[À$×BZÑBZÑ'[ˆDÕ$Ø×%Ñ%Ð-Ü'?Ó'AˆDÔ$ä‰ÑÑ' Ó'r8   )r9   r:   r;   r<   r&   r	   rG   rS   r>   r   r.   r   r?   rH   rT   r   rC   r2   rD   rE   s   @r7   rb   rb   –   sx   ø… ñ!ðF €Jà#Ø!;Ø7ñ€Kð 59€M�4Ð*Ñ*¨TÑ1Ó8Ø<@Ð˜4Ð"2Ñ2°TÑ9Ó@Ø:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø#Ð�uÓ#÷(ð (r8   rb   )rb   r   rG   rS   N)Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úautor   r	   r   rG   rS   rb   Ú__all__r,   r8   r7   ú<module>rj      sÉ   ðõ( /å 3Ý #ß -ñ Ð2Ô3Øô8(Ð*ó 8(ó ó 4ð8(ñv Ð2Ô3ØôÐ!1ó ó ó 4ðñ, Ð2Ô3Øô!5Ð/ó !5ó ó 4ð!5ñH Ð2Ô3ØôA(Ð$ó A(ó ó 4ðA(òH m�r8   