
    Z j                         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
  \" S	S
9\ " S S\5      5       5       r\" S	S
9\ " S S\5      5       5       rSS/rg)zMusicGen model configuration    )ClassVar)strict   )PreTrainedConfig)auto_docstring   )
AutoConfigzfacebook/musicgen-small)
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\\-  \	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\\	S!'   Sr\S"-  \	S#'   Sr\S"-  \	S$'   S"r\\\   -  S"-  \	S%'   Sr \\	S&'   Sr!\\	S''   Sr"\\	S('   S"r#\S"-  \	S)'   S* r$S+r%g"),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{Gz?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                 V    U R                   S;  a  [        SU R                    S35      eg)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    ڄ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/musicgen/configuration_musicgen.pyvalidate_architecture+MusicgenDecoderConfig.validate_architecture8   s3    f,STXTgTgShhrstt -     )&__name__
__module____qualname____firstlineno__
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-   r3   __static_attributes__r6   r5   r2   r   r      s6    $J&O#4"5J#'S'sGS!! Ius{ It%%KGUS[%(us{(&)) $$!OT!M3NC#L#*##L#*#+/L#S	/D(/ %%J %%.2t2ur5   r   c                      ^  \ rS rSr% SrSr\\   \S'   \	\	\
S.r\\\\\   4      \S'   Sr\\   \S'   S	r\\-  \S
'   S	r\\-  \S'   S	r\\-  \S'   Sr\\S'   U 4S jr\S 5       rSrU =r$ )MusicgenConfig>   a  
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)
```musicgenr;   )text_encoderaudio_encoderdecodersub_configsThas_no_defaults_at_initNrI   rJ   rK   r    r!   c                   > [        U R                  [        5      (       aB  U R                  R                  S5      n[        R
                  " U40 U R                  D6U l        O&U R                  c  [        SU R                   S35      e[        U R                  [        5      (       aB  U R                  R                  S5      n[        R
                  " U40 U R                  D6U l        O&U R                  c  [        SU R                   S35      e[        U R                  [        5      (       a  [        S0 U R                  D6U l	        OU R                  c  [        5       U l	        SU l        [        TU ]4  " S0 UD6  g )Nr;   zA configuration of type z: cannot be instantiated because text_encoder is not passedz; cannot be instantiated because audio_encoder is not passedTr6   )
isinstancerI   dictpopr	   	for_modelr/   r;   rJ   rK   r   is_encoder_decodersuper__post_init__)r1   kwargstext_encoder_model_typeaudio_encoder_model_type	__class__s       r2   rU   MusicgenConfig.__post_init__}   sA   d''..&*&7&7&;&;L&I# * 4 45L bPTPaPa bD&*4??*;;uv  d(($//'+'9'9'='=l'K$!+!5!56N!eRVRdRd!eD'*4??*;;vw  dllD))0@4<<@DL\\!02DL"&''r5   c                 .    U R                   R                  $ )N)rJ   sampling_rater0   s    r2   r\   MusicgenConfig.sampling_rate   s     !!///r5   )rJ   rK   rS   rI   )r7   r8   r9   r:   __doc__r;   r   rB   r?   r	   r   rL   rP   typer   rM   rA   rI   rJ   rK   r!   r@   rU   propertyr\   rD   __classcell__)rY   s   @r2   rF   rF   >   s    -^ !+J*"#(@K$sD)9$::;< 
 /3Xd^2,0L$))0-1M4**1'+GT$$+ $$(2 0 0r5   rF   N)r^   typingr   huggingface_hub.dataclassesr   configuration_utilsr   utilsr   auto.configuration_autor	   r   rF   __all__r6   r5   r2   <module>rh      s    #  . 3 # 0 45 u,  u  6 uF 45Y0% Y0  6Y0x 4
5r5   