
    qi                     x    d Z ddlmZ ddlmZ ddlmZ ddlmZ  ej                  e
      Z G d de      ZdgZy	)
zVitMatte model configuration   )%consolidate_backbone_kwargs_to_config)PreTrainedConfig)logging   )
AutoConfigc                   p     e Zd ZdZdZdeiZddddg dg d	fdedz  d
ede	de	de
e   de
e   f fdZ xZS )VitMatteConfiga  
    This is the configuration class to store the configuration of [`VitMatteForImageMatting`]. It is used to
    instantiate a ViTMatte model according to the specified arguments, defining the model architecture. Instantiating a
    configuration with the defaults will yield a similar configuration to that of the ViTMatte
    [hustvl/vitmatte-small-composition-1k](https://huggingface.co/hustvl/vitmatte-small-composition-1k) architecture.

    Configuration objects inherit from [`PreTrainedConfig`] and can be used to control the model outputs. Read the
    documentation from [`PreTrainedConfig`] for more information.

    Args:
        backbone_config (`Union[dict, "PreTrainedConfig"]`, *optional*, defaults to `VitDetConfig()`):
            The configuration of the backbone model.
        hidden_size (`int`, *optional*, defaults to 384):
            The number of input channels of the decoder.
        batch_norm_eps (`float`, *optional*, defaults to 1e-05):
            The epsilon used by the batch norm layers.
        initializer_range (`float`, *optional*, defaults to 0.02):
            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
        convstream_hidden_sizes (`list[int]`, *optional*, defaults to `[48, 96, 192]`):
            The output channels of the ConvStream module.
        fusion_hidden_sizes (`list[int]`, *optional*, defaults to `[256, 128, 64, 32]`):
            The output channels of the Fusion blocks.

    Example:

    ```python
    >>> from transformers import VitMatteConfig, VitMatteForImageMatting

    >>> # Initializing a ViTMatte hustvl/vitmatte-small-composition-1k style configuration
    >>> configuration = VitMatteConfig()

    >>> # Initializing a model (with random weights) from the hustvl/vitmatte-small-composition-1k style configuration
    >>> model = VitMatteForImageMatting(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```vitmattebackbone_configNi  gh㈵>g{Gz?)0   `      )      @       hidden_sizebatch_norm_epsinitializer_rangeconvstream_hidden_sizesfusion_hidden_sizesc                     t        d|dddgid|\  }}|| _        || _        || _        || _        || _        || _        t        |    di | y )Nvitdetout_featuresstage4)r   default_config_typedefault_config_kwargs )	r   r   r   r   r   r   r   super__init__)	selfr   r   r   r   r   r   kwargs	__class__s	           e/opt/pipecat/venv/lib/python3.12/site-packages/transformers/models/vitmatte/configuration_vitmatte.pyr    zVitMatteConfig.__init__C   sv     #H #
+ (#1H:">#
 	#
  /,&!2'>$#6 "6"    )__name__
__module____qualname____doc__
model_typer   sub_configsr   intfloatlistr    __classcell__)r#   s   @r$   r	   r	      s    $L J$j1K 48 $#'-:);#)D0# # 	#
 !# "&c# "#Y# #r%   r	   N)r)   backbone_utilsr   configuration_utilsr   utilsr   auto.configuration_autor   
get_loggerr&   loggerr	   __all__r   r%   r$   <module>r7      sD    # C 3  0 
		H	%B#% B#J 
r%   