a
    Ad                     @   s`   d dl Z d dlZd dlZd dlmZmZmZ ddgZdd ej	j
jjD Zddd	Zd
d ZdS )    N)devices	sd_hijackshared	hardswishZmultiheadattentionc                 C   s   g | ]}|t vr|qS  )not_available).0xr   r   @/var/www/html/stable-diffusion-webui/modules/hypernetworks/ui.py
<listcomp>       r   Fc	           
      C   s>   t jj| ||||||||	}	tjjttjdd|	 dfS )N)choicesz	Created:  )	moduleshypernetworkshypernetworkcreate_hypernetworkgrDropdownupdatesortedr   )
nameenable_sizesoverwrite_oldlayer_structureactivation_funcweight_initadd_layer_normuse_dropoutdropout_structurefilenamer   r   r
   r      s    r   c               	   G   s  g t _t jjrJ dzzzt  tjjj	|  \}}dt j
jrBdnd d|j dt| d}|dfW W t jjtj t jjtj t  S  ty    Y n0 W t jjtj t jjtj t  n*t jjtj t jjtj t  0 d S )	Nz,Training models with lowvram is not possiblez

Training interruptedfinishedz at z steps.
Hypernetwork saved to 
r   )r   loaded_hypernetworkscmd_optslowvramr   undo_optimizationsr   r   r   train_hypernetworkstater!   stephtmlescapesd_modelcond_stage_modeltor   devicefirst_stage_modelapply_optimizations	Exception)argsr   r    resr   r   r
   r(      s2    


r(   )NNNFFN)r+   gradior   Z"modules.hypernetworks.hypernetworkr   r   r   r   r   r   r   HypernetworkModuleactivation_dictkeysr   r(   r   r   r   r
   <module>   s   
