ó
    qyüiy*  ã                   ó®  • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
Jr  \" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       r/ SQrg)zSAM3 model configurationé    )Ústrict)ÚCLIPTextConfigé   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzfacebook/sam3)Ú
checkpointc                   ó–  ^ • \ rS rSr% SrSrSrSr\\	S'   Sr
\\	S'   S	r\\	S
'   Sr\\	S'   Sr\\	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\	S'   Sr\\	S'   Sr\\-  \	S'   Sr\\	S'   Sr\\	S'   Sr\\   S-  \	S'   Sr\S-  \	S'   S r\\\   -  \\\4   -  \	S!'   Sr\\-  \	S"'   S#r\\	S$'   U 4S% jrS&rU =r $ )'ÚSam3ViTConfigé   a  
rope_theta (`float`, *optional*, defaults to 10000.0):
    Base frequency for RoPE.
window_size (`int`, *optional*, defaults to 24):
    Window size for windowed attention.
global_attn_indexes (`list[int]`, *optional*, defaults to `[7, 15, 23, 31]`):
    Indexes of layers with global attention.
pretrain_image_size (`int`, *optional*, defaults to 336):
    Pretrained model image size for position embedding initialization.
hidden_dropout (`float`, *optional*, defaults to 0.0):
    Dropout probability for hidden states.
Úbackbone_configÚsam3_vit_modelé   Úhidden_sizei€  Úintermediate_sizeé    Únum_hidden_layersé   Únum_attention_headsr   Únum_channelsið  Ú
image_sizeé   Ú
patch_sizeÚgeluÚ
hidden_actç�íµ ÷Æ°>Úlayer_norm_epsç        Úattention_dropoutg     ˆÃ@Ú
rope_thetaé   Úwindow_sizeNÚglobal_attn_indexesÚlayer_scale_init_valueiP  Úpretrain_image_sizeÚhidden_dropoutç{®Gáz”?Úinitializer_rangec                 óT   >• [         TU ]  " S0 UD6  U R                  c
  / SQU l        g g )N)é   é   é   é   © )ÚsuperÚ__post_init__r%   ©ÚselfÚkwargsÚ	__class__s     €Úh/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/sam3/configuration_sam3.pyr2   ÚSam3ViTConfig.__post_init__>   s,   ø€ Ü‰ÒÑ' Ò'Ø×#Ñ#Ñ+Ú'6ˆDÕ$ð ,ó    )r%   )!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úbase_config_keyÚ
model_typer   ÚintÚ__annotations__r   r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr!   r"   r$   r%   r&   r'   r(   r*   r2   Ú__static_attributes__Ú__classcell__©r6   s   @r7   r   r      s$  ø‡ ñð (€OØ!€Jà€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø€L�#ÓØ48€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó8Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø€J�ÓØ €N�EÓ Ø%(Ð�u˜s‘{Ó(Ø€J�ÓØ€K�ÓØ,0Ð˜˜c™ TÑ)Ó0Ø+/Ð˜E D™LÓ/Ø=@Ð˜˜t C™y™¨5°°c°©?Ñ:Ó@Ø"%€N�E˜C‘KÓ%Ø#Ð�uÓ#÷7ó 7r9   r   c                   óò   ^ • \ rS rSr% SrSrSrS\0rSr	\
\-  S-  \S'   Sr\\S'   Sr\S-  \S	'   Sr\\   S-  \S
'   Sr\\S'   Sr\\S'   Sr\\S'   U 4S jr\S 5       r\R4                  S 5       rSrU =r$ )ÚSam3VisionConfigéD   aÒ  
fpn_hidden_size (`int`, *optional*, defaults to 256):
    The hidden dimension of the FPN.
backbone_feature_sizes (`List[List[int]]`, *optional*, defaults to `[[288, 288], [144, 144], [72, 72]]`):
    The spatial sizes (height, width) of the feature maps from the backbone at different scales.
scale_factors (`list[float]`, *optional*, defaults to `[4.0, 2.0, 1.0, 0.5]`):
    Scale factors for FPN multi-scale features. List of scaling factors for each FPN level.
Úvision_configÚsam3_vision_modelr   Né   Úfpn_hidden_sizeÚbackbone_feature_sizesÚscale_factorsr   r   r   r   r)   r*   c                 óÌ  >• U R                   c  / SQOU R                   U l         U R                  c  SS/SS/SS//U l        [        U R                  [        5      (       aU  U R                  R                  SS5      U R                  S'   [        U R                  S      " S0 U R                  D6U l        O U R                  c  [        S   " 5       U l        [        TU ]   " S0 UD6  g )N)g      @g       @g      ð?g      à?i   é�   éH   r@   r   r0   )	rR   rQ   Ú
isinstancer   ÚdictÚgetr	   r1   r2   r3   s     €r7   r2   ÚSam3VisionConfig.__post_init__^   sÒ   ø€ Ø59×5GÑ5GÑ5OÓ1ÐUY×UgÑUgˆÔØ×&Ñ&Ñ.Ø,/°¨:¸¸S°zÀBÈÀ8Ð*LˆDÔ'ä�d×*Ñ*¬D×1Ñ1Ø15×1EÑ1E×1IÑ1IÈ,ÐXhÓ1iˆD× Ñ  Ñ.Ü#1°$×2FÑ2FÀ|Ñ2TÒ#UÑ#mÐX\×XlÑXlÑ#mˆDÕ Ø×!Ñ!Ñ)Ü#1Ð2BÒ#CÓ#EˆDÔ ä‰ÒÑ' Ó'r9   c                 ó.   • U R                   R                  $ )z"Image size for the vision encoder.©r   r   ©r4   s    r7   r   ÚSam3VisionConfig.image_sizek   s   € ð ×#Ñ#×.Ñ.Ð.r9   c                 ó$   • XR                   l        g)z-Set the image size and propagate to backbone.Nr[   ©r4   Úvalues     r7   r   r]   p   s   € ð +0×ÑÕ'r9   )r   rQ   rR   )r:   r;   r<   r=   r>   r?   r@   r
   Úsub_configsr   rW   r   rB   rP   rA   rQ   rC   rR   rF   r   rE   r   r*   r2   Úpropertyr   ÚsetterrG   rH   rI   s   @r7   rK   rK   D   sµ   ø‡ ñð &€OØ$€Jà˜:ð€Kð 7;€O�TÐ,Ñ,¨tÑ3Ó:Ø€O�SÓØ*.Ð˜D 4™KÓ.Ø(,€M�4˜‘; Ñ%Ó,Ø€J�ÓØ €N�EÓ Ø#Ð�uÓ#õ(ð ñ/ó ð/ð ×Ññ0ó ö0r9   rK   c                   ó¶   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Sr\\S'   Srg)ÚSam3GeometryEncoderConfigév   zW
roi_size (`int`, *optional*, defaults to 7):
    ROI size for box pooling operations.
Úsam3_geometry_encoderrO   r   r   Ú
num_layersé   r   é   r   çš™™™™™¹?ÚdropoutÚrelur   r    r(   r   r   r,   Úroi_sizer)   r*   r0   N)r:   r;   r<   r=   r>   r@   r   rA   rB   rh   r   r   rl   rF   r   rE   r(   r   rn   r*   rG   r0   r9   r7   re   re   v   s}   ‡ ñð
 )€Jà€K�ÓØ€J�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø€HˆcÓØ#Ð�uÖ#r9   re   c                   ó¨   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3DETREncoderConfigéŒ   zc
hidden_dropout (`float`, *optional*, defaults to 0.0):
    Dropout probability for hidden states.
Úsam3_detr_encoderrO   r   é   rh   ri   r   rj   r   rk   rl   rm   r   r    r(   r   r   r)   r*   r0   N)r:   r;   r<   r=   r>   r@   r   rA   rB   rh   r   r   rl   rF   r   rE   r(   r   r*   rG   r0   r9   r7   rp   rp   Œ   ss   ‡ ñð
 %€Jà€K�ÓØ€J�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø#Ð�uÖ#r9   rp   c                   ó¶   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3DETRDecoderConfigé¡   zQ
num_queries (`int`, *optional*, defaults to 200):
    Number of object queries.
Úsam3_detr_decoderrO   r   rs   rh   éÈ   Únum_queriesri   r   rj   r   rk   rl   rm   r   r    r(   r   r   r)   r*   r0   N)r:   r;   r<   r=   r>   r@   r   rA   rB   rh   ry   r   r   rl   rF   r   rE   r(   r   r*   rG   r0   r9   r7   ru   ru   ¡   s}   ‡ ñð
 %€Jà€K�ÓØ€J�ÓØ€K�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø#Ð�uÖ#r9   ru   c                   óx   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3MaskDecoderConfigé·   zw
num_upsampling_stages (`int`, *optional*, defaults to 3):
    Number of upsampling stages in the pixel decoder (FPN).
Úsam3_mask_decoderrO   r   r   Únum_upsampling_stagesr   r   r    rl   ri   r   r)   r*   r0   N)r:   r;   r<   r=   r>   r@   r   rA   rB   r~   r   rF   rl   r   r*   rG   r0   r9   r7   r{   r{   ·   sQ   ‡ ñð
 %€Jà€K�ÓØ!"Ð˜3Ó"Ø €N�EÓ Ø€GˆU�S‰[ÓØ Ð˜Ó Ø#Ð�uÖ#r9   r{   c                   ó&  ^ • \ rS rSr% SrSrSr\\\	\
\\S.rSr\\-  S-  \S'   Sr\\-  S-  \S'   Sr\\-  S-  \S	'   Sr\\-  S-  \S
'   Sr\\-  S-  \S'   Sr\\-  S-  \S'   Sr\\S'   U 4S jr\S 5       r\R8                  S 5       rSrU =r$ )Ú
Sam3ConfigéÉ   aø  
geometry_encoder_config (`dict` or `Sam3GeometryEncoderConfig`, *optional*):
    Configuration for the geometry encoder.
detr_encoder_config (`dict` or `Sam3DETREncoderConfig`, *optional*):
    Configuration for the DETR encoder.
detr_decoder_config (`dict` or `Sam3DETRDecoderConfig`, *optional*):
    Configuration for the DETR decoder.
mask_decoder_config (`dict` or `Sam3MaskDecoderConfig`, *optional*):
    Configuration for the mask decoder.

Example:
```python
>>> from transformers import Sam3Config, Sam3Model

>>> # Initializing a SAM3 configuration
>>> configuration = Sam3Config()

>>> # Initializing a model from the configuration
>>> model = Sam3Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```
Úsam3T)rM   Útext_configÚgeometry_encoder_configÚdetr_encoder_configÚdetr_decoder_configÚmask_decoder_configNrM   rƒ   r„   r…   r†   r‡   r)   r*   c                 ó6  >• U R                   c  [        5       U l         [        U R                   [        5      (       a  [        S
0 U R                   D6U l         U R                  c  [        S
0 SSSSSSSSS	.D6U l        [        U R                  [        5      (       a  [        S
0 U R                  D6U l        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S
0 U R                  D6U l        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S
0 U R                  D6U l        U R                  c  [        5       U l
        [        U R                  [        5      (       a  [        S
0 U R                  D6U l
        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S
0 U R                  D6U l        [        TU ]<  " S
0 UD6  g )Ni Á  r   i   i   r#   r   r   r   )Ú
vocab_sizer   r   Úprojection_dimr   r   Úmax_position_embeddingsr   r0   )rM   rK   rV   rW   rƒ   r   r„   re   r…   rp   r†   ru   r‡   r{   r1   r2   r3   s     €r7   r2   ÚSam3Config.__post_init__ø   s¹  ø€ Ø×ÑÑ%Ü!1Ó!3ˆDÔÜ�d×(Ñ(¬$×/Ñ/Ü!1Ñ!G°D×4FÑ4FÑ!GˆDÔà×ÑÑ#Ü-ñ  à"'Ø#'Ø)-Ø&)Ø)+Ø+-Ø/1Ø"(ñ	ñ ˆDÔô �d×&Ñ&¬×-Ñ-Ü-ÑA°×0@Ñ0@ÑAˆDÔà×'Ñ'Ñ/Ü+DÓ+FˆDÔ(Ü�d×2Ñ2´D×9Ñ9Ü+DÑ+dÀt×GcÑGcÑ+dˆDÔ(à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$ä‰ÒÑ' Ó'r9   c                 ó.   • U R                   R                  $ )zImage size for the SAM3 model.©rM   r   r\   s    r7   r   ÚSam3Config.image_size$  s   € ð ×!Ñ!×,Ñ,Ð,r9   c                 ó$   • XR                   l        g)z2Set the image size and propagate to vision config.NrŽ   r_   s     r7   r   r�   )  s   € ð ).×ÑÕ%r9   )r†   r…   r„   r‡   rƒ   rM   )r:   r;   r<   r=   r>   r@   Úis_compositionrK   r   re   rp   ru   r{   ra   rM   rW   r   rB   rƒ   r„   r…   r†   r‡   r*   rF   r2   rb   r   rc   rG   rH   rI   s   @r7   r€   r€   É   sð   ø‡ ñð2 €JØ€Nà)Ø%Ø#<Ø4Ø4Ø4ñ€Kð 59€M�4Ð*Ñ*¨TÑ1Ó8Ø26€K�Ð(Ñ(¨4Ñ/Ó6Ø>BÐ˜TÐ$4Ñ4°tÑ;ÓBØ:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø#Ð�uÓ#õ*(ðX ñ-ó ð-ð ×Ññ.ó ö.r9   r€   )r€   r   rK   re   rp   ru   r{   N)r>   Úhuggingface_hub.dataclassesr   Útransformersr   Úconfiguration_utilsr   Úutilsr   Úautor	   r
   r   rK   re   rp   ru   r{   r€   Ú__all__r0   r9   r7   Ú<module>r˜      sE  ðñ å .å 'å 3Ý #ß -ñ ˜?Ñ+Øô&7Ð$ó &7ó ó ,ð&7ñR ˜?Ñ+Øô-0Ð'ó -0ó ó ,ð-0ñ` ˜?Ñ+Øô$Ð 0ó $ó ó ,ð$ñ( ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ& ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ( ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ  ˜?Ñ+Øôa.Ð!ó a.ó ó ,ða.òH�r9   