Ë
    ÜÓ^j‹  ã                   ó¼   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  ed	¬
«      e G d„ de«      «       «       Z ed	¬
«      e G d„ de«      «       «       ZddgZy)zMusicGen model configurationé    )ÚClassVar)Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )Ú
AutoConfigzfacebook/musicgen-small)Ú
checkpointc                   ó   — e Zd ZU dZdZdg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z  ed<   dZeed<   dZeed<   dZeed<   dZeez  ed<   dZeez  ed<   dZee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d!z  ed"<   dZed!z  ed#<   d!Zeee   z  d!z  ed$<   dZeed%<   dZ eed&<   dZ!eed'<   d!Z"ed!z  ed(<   d)„ Z#y!)*ÚMusicgenDecoderConfigÚmusicgen_decoderÚdecoder_configÚpast_key_valuesi   Ú
vocab_sizeÚmax_position_embeddingsé   Únum_hidden_layersi   Úffn_dimé   Únum_attention_headsg        Ú	layerdropTÚ	use_cacheÚgeluÚactivation_functioni   Úhidden_sizegš™™™™™¹?ÚdropoutÚattention_dropoutÚactivation_dropoutç{®Gáz”?Úinitializer_factorFÚscale_embeddingé   Únum_codebooksé   Úaudio_channelsNÚpad_token_idÚbos_token_idÚeos_token_idÚtie_word_embeddingsÚ
is_decoderÚadd_cross_attentionÚcross_attention_hidden_sizec                 óR   — | j                   dvrt        d| j                   › d�«      ‚y)zOPart of `@strict`-powered validation. Validates the architecture of the config.)r$   r   z4Expected 1 (mono) or 2 (stereo) audio channels, got z
 channels.N)r%   Ú
ValueError©Úselfs    ú~/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/musicgen/configuration_musicgen.pyÚvalidate_architecturez+MusicgenDecoderConfig.validate_architecture8   s3   € à×Ñ fÑ,ÜÐSÐTX×TgÑTgÐShÐhrÐsÓtÐtð -ó    )$Ú__name__Ú
__module__Ú__qualname__Ú
model_typeÚbase_config_keyÚkeys_to_ignore_at_inferencer   ÚintÚ__annotations__r   r   r   r   r   Úfloatr   Úboolr   Ústrr   r   r   r   r    r!   r#   r%   r&   r'   r(   Úlistr)   r*   r+   r,   r2   © r3   r1   r   r      s6  … ð $€JØ&€OØ#4Ð"5Ðà€J�ÓØ#'Ð˜SÓ'ØÐ�sÓØ€GˆSÓØ!Ð˜Ó!Ø €Iˆu�s‰{Ó Ø€IˆtÓØ%Ð˜Ó%Ø€K�ÓØ€GˆU�S‰[ÓØ%(Ð�u˜s‘{Ó(Ø&)Ð˜ ™Ó)Ø $Ð˜Ó$Ø!€O�TÓ!Ø€M�3ÓØ€N�CÓØ#€L�#˜‘*Ó#Ø#€L�#˜‘*Ó#Ø+/€L�#˜˜S™	‘/ DÑ(Ó/Ø %Ð˜Ó%Ø€J�ÓØ %Ð˜Ó%Ø.2Ð  t¡Ó2óur3   r   c                   óÒ   ‡ — e Zd ZU dZdZee   ed<   eee	dœZ
eeeee   f      ed<   dZee   ed<   dZeez  ed	<   dZeez  ed
<   dZeez  ed<   dZeed<   ˆ fd„Zed„ «       Zˆ xZS )ÚMusicgenConfiga,  
    text_encoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the text encoder config.
    audio_encoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the audio encoder config.
    decoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the decoder config.

    Example:

    ```python
    >>> from transformers import (
    ...     MusicgenConfig,
    ...     MusicgenDecoderConfig,
    ...     T5Config,
    ...     EncodecConfig,
    ...     MusicgenForConditionalGeneration,
    ... )

    >>> # Initializing text encoder, audio encoder, and decoder model configurations
    >>> text_encoder_config = T5Config()
    >>> audio_encoder_config = EncodecConfig()
    >>> decoder_config = MusicgenDecoderConfig()

    >>> configuration = MusicgenConfig(
    ...     text_encoder=text_encoder_config,
    ...     audio_encoder=audio_encoder_config,
    ...     decoder=decoder_config,
    ... )

    >>> # Initializing a MusicgenForConditionalGeneration (with random weights) from the facebook/musicgen-small style configuration
    >>> model = MusicgenForConditionalGeneration(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    >>> config_text_encoder = model.config.text_encoder
    >>> config_audio_encoder = model.config.audio_encoder
    >>> config_decoder = model.config.decoder

    >>> # Saving the model, including its configuration
    >>> model.save_pretrained("musicgen-model")

    >>> # loading model and config from pretrained folder
    >>> musicgen_config = MusicgenConfig.from_pretrained("musicgen-model")
    >>> model = MusicgenForConditionalGeneration.from_pretrained("musicgen-model", config=musicgen_config)
    ```Úmusicgenr7   )Útext_encoderÚaudio_encoderÚdecoderÚsub_configsTÚhas_no_defaults_at_initNrD   rE   rF   r   r    c                 óÒ  •— t        | j                  t        «      rA| j                  j                  d«      }t	        j
                  |fi | j                  ¤Ž| _        n%| j                  €t        d| j                  › d�«      ‚t        | j                  t        «      rA| j                  j                  d«      }t	        j
                  |fi | j                  ¤Ž| _        n%| j                  €t        d| j                  › d�«      ‚t        | j                  t        «      rt        di | j                  ¤Ž| _	        n| j                  €t        «       | _	        d| _        t        ‰| �4  di |¤Ž y )Nr7   zA configuration of type z: cannot be instantiated because text_encoder is not passedz; cannot be instantiated because audio_encoder is not passedTr@   )Ú
isinstancerD   ÚdictÚpopr	   Ú	for_modelr.   r7   rE   rF   r   Úis_encoder_decoderÚsuperÚ__post_init__)r0   ÚkwargsÚtext_encoder_model_typeÚaudio_encoder_model_typeÚ	__class__s       €r1   rP   zMusicgenConfig.__post_init__}   s8  ø€ Ü�d×'Ñ'¬Ô.Ø&*×&7Ñ&7×&;Ñ&;¸LÓ&IÐ#Ü *× 4Ñ 4Ð5LÑ bÐPT×PaÑPaÑ bˆDÕØ×ÑÐ&ÜØ*¨4¯?©?Ð*;Ð;uÐvóð ô �d×(Ñ(¬$Ô/Ø'+×'9Ñ'9×'=Ñ'=¸lÓ'KÐ$Ü!+×!5Ñ!5Ð6NÑ!eÐRV×RdÑRdÑ!eˆDÕØ×ÑÐ'ÜØ*¨4¯?©?Ð*;Ð;vÐwóð ô �d—l‘l¤DÔ)Ü0Ñ@°4·<±<Ñ@ˆD�LØ�\‰\Ð!Ü0Ó2ˆDŒLà"&ˆÔÜ‰ÑÑ' Ó'r3   c                 ó.   — | j                   j                  S )N)rE   Úsampling_rater/   s    r1   rV   zMusicgenConfig.sampling_rate–   s   € ð ×!Ñ!×/Ñ/Ð/r3   )r4   r5   r6   Ú__doc__r7   r   r>   r;   r	   r   rG   rK   Útyper   rH   r=   rD   rE   rF   r    r<   rP   ÚpropertyrV   Ú__classcell__)rT   s   @r1   rB   rB   >   s«   ø… ñ-ð^ !+€J�˜‘Ó*à"Ø#Ø(ñ@€K�˜$˜s DÐ)9Ñ$:Ð:Ñ;Ñ<ó ð
 /3Ð˜X d™^Ó2à,0€L�$Ð)Ñ)Ó0Ø-1€M�4Ð*Ñ*Ó1Ø'+€GˆTÐ$Ñ$Ó+Ø $Ð˜Ó$ô(ð2 ñ0ó ô0r3   rB   N)rW   Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úauto.configuration_autor	   r   rB   Ú__all__r@   r3   r1   ú<module>ra      s‚   ðñ #å å .å 3Ý #Ý 0ñ Ð4Ô5Øô uÐ,ó  uó ó 6ð uñF Ð4Ô5ØôY0Ð%ó Y0ó ó 6ðY0ðx Ð4Ð
5�r3   