a
    þd³  ã                   @   s2   d dl Z ddlT e  e¡Zd	dd„Zd
dd„ZdS )é    Né   )Ú*Fc                 C   s:  |s| s|sJ dƒ‚| pi } |p"i }|s@|d ur@t |dƒr@|j}i }d}|  dd ¡d ur`| d }|ddf}|  dd ¡d urºt| d ttfƒsJ ‚t| d ƒdks¤J ‚t| d ƒ}|d }nr|  dd ¡d urðt| d tƒsÜJ ‚|| d | d f}n<|r| d	d ¡d ur|d	 }n| dd ¡d ur,|d }||d< d
|d< |  dd ¡rX| d |d< n| dd ¡rr|d |d< t|d< |  dd ¡d urÔt| d ƒ}t|ƒdkr¸tt|ƒ| ƒ}nt|ƒ|ksÊJ ‚||d< n| dd ¡rî|d |d< t	|d< |  dd ¡d urPt| d ƒ}	t|	ƒdkr4tt|	ƒ| ƒ}	nt|	ƒ|ksFJ ‚|	|d< n| dd ¡rj|d |d< t
}
|  dd ¡r†| d }
n4|r¤| dd ¡r¤|d }
n| dd ¡rº|d }
|
|d< t}|  dd ¡rÞ| d }n| dd ¡rô|d }||d< |r6t d¡ | ¡ D ] \}}t d|t|ƒf ¡ q|S )NzHAt least one of model, args, or pretrained_cfg required for data config.Úpretrained_cfgé   Zchanséà   Ú
input_sizer   Zimg_sizeZtest_input_sizeZbicubicÚinterpolationÚmeanr   ÚstdÚcrop_pctZtest_crop_pctÚ	crop_modez:Data processing configuration for current model + dataset:z	%s: %s)Úhasattrr   ÚgetÚ
isinstanceÚtupleÚlistÚlenÚintZIMAGENET_DEFAULT_MEANZIMAGENET_DEFAULT_STDZDEFAULT_CROP_PCTZDEFAULT_CROP_MODEÚ_loggerÚinfoÚitemsÚstr)Úargsr   ÚmodelÚuse_test_sizeÚverboseZdata_configZin_chansr   r	   r
   r   r   ÚnÚv© r   úY/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/timm/data/config.pyÚresolve_data_config   s‚    








r    c                 C   s   t ||| ||dS )ab   Resolve Model Data Config
    This is equivalent to resolve_data_config() but with arguments re-ordered to put model first.

    Args:
        model (nn.Module): the model instance
        args (dict): command line arguments / configuration in dict form (overrides pretrained_cfg)
        pretrained_cfg (dict): pretrained model config (overrides pretrained_cfg attached to model)
        use_test_size (bool): use the test time input resolution (if one exists) instead of default train resolution
        verbose (bool): enable extra logging of resolved values

    Returns:
        dictionary of config
    )r   r   r   r   r   )r    )r   r   r   r   r   r   r   r   Úresolve_model_data_confige   s    ûr!   )NNNFF)NNFF)ÚloggingÚ	constantsÚ	getLoggerÚ__name__r   r    r!   r   r   r   r   Ú<module>   s   
     û
_    û