a
    Ad"                     @   sN   d dl mZ d dlZd dlmZmZ d dlZd dl	m
Z
 G dd dejZdS )    )ImageN)scripts_postprocessinggfpgan_model)FormRowc                   @   s,   e Zd ZdZdZdd ZejdddZdS )	ScriptPostprocessingGfpGanGFPGANi  c              	   C   sD   t  & tjddddddd}W d    n1 s20    Y  d|iS )	Ng              ?gMbP?GFPGAN visibilityr   Zextras_gfpgan_visibility)minimummaximumsteplabelvalueelem_idgfpgan_visibility)r   grSlider)selfr    r   E/var/www/html/stable-diffusion-webui/scripts/postprocessing_gfpgan.pyui   s    4zScriptPostprocessingGfpGan.ui)ppc                 C   s`   |dkrd S t tj|jtjd}t|}|dk rFt|j||}||_t	|d|j
d< d S )Nr   )dtyper      r	   )r   gfpgan_fix_facesnparrayimageuint8r   	fromarrayblendroundinfo)r   r   r   restored_imgresr   r   r   process   s    
z"ScriptPostprocessingGfpGan.processN)	__name__
__module____qualname__nameorderr   r   PostprocessedImager%   r   r   r   r   r   
   s   r   )PILr   numpyr   modulesr   r   gradior   Zmodules.ui_componentsr   ScriptPostprocessingr   r   r   r   r   <module>   s
   