a
    Ad_                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlmZ ejZe	d e
  e  dd Zd	d
 Zdd Zedkrd dlmZ ejre  ne  dS )    )annotationsN)timer)initialize_util)
initializeZlauncherc                 C  s&   ddl m} ddlm} || |}|S )Nr   )Api)
queue_lock)Zmodules.api.apir   Zmodules.call_queuer   )appr   r   api r
   -/var/www/html/stable-diffusion-webui/webui.py
create_api   s    
r   c                  C  s   ddl m}  ddlm} t  |  }t| t|}ddlm	} |
  |d | tdt  d |j|jrzdnd|jr|jnd	|jrd
|j ndd d S )Nr   )FastAPIcmd_opts)script_callbacksStartup time: .z0.0.0.0z	127.0.0.1i  / )server_nameport	root_path)Zfastapir   modules.shared_cmd_optionsr   r   r   setup_middlewarer   modulesr   before_ui_callbackapp_started_callbackprintstartup_timersummarylaunchlistenr   subpath)r   r   r   r	   r   r
   r
   r   api_only   s    
r#   c                  C  s  ddl m}  | j}t  ddlm}m}m}m}m	}m
} |jjrT|  td |  td | |_td | js|jd tt pd }d}	td	d
kr|jjdks| jrd}	n&|jjdkrt| j| j| j| j g }	|jj!| jt" | j#| j$| j%| j&| j'||	d| j(ddd| j)r6d| j) ndd\}
}}td dd |
j*D |
_*t+|
 |,|
 |-|
 |rt.|
 |/|
 td t0d |1|j|
 W d    n1 s0    Y  t2 t3_4t5dt6  d z:|j7j8dd}|r|dv rq0nt5d|  qW n  t9yR   t5d d }Y n0 |d krtt5d! |j:  qtj;<d	d
 t5d" |j:  t=>d# t?  |@  td$ |A  td% tjBdd& q:d S )'Nr   r   )shared
ui_tempdirr   uiprogressui_extra_networkszcleanup temp dirzscripts before_ui_callbackz	create ui@   FSD_WEBUI_RESTARTING1ZRemoteTZLocalz/docsz/redoc)Zdocs_urlZ	redoc_urlr   r   )sharer   Zserver_portZssl_keyfileZssl_certfileZ
ssl_verifydebugZauthZ	inbrowserZprevent_thread_lockZallowed_pathsZ
app_kwargsr   zgradio launchc                 S  s   g | ]}|j jd kr|qS )ZCORSMiddleware)cls__name__).0xr
   r
   r   
<listcomp>h       zwebui.<locals>.<listcomp>zadd APIsr   r   r      )timeout)stoprestartzUnknown server command: z%Caught KeyboardInterrupt, stopping...r6   zStopping server...zRestarting UI...g      ?zapp reload callbackzscripts unloaded callback)Zreload_script_modules)Cr   r   r	   r   r   r$   r%   r   r&   r'   r(   optsZclean_temp_dir_at_startZcleanup_tmpdrr   recordr   Z	create_uiZdemono_gradio_queueZqueuelistr   Zget_gradio_auth_credsosgetenvauto_launch_browser
autolaunchanyr!   r,   ngrokr   r    Zgradio_server_namer   tls_keyfiletls_certfiledisable_tls_verifygradio_debuggradio_allowed_pathr"   Zuser_middlewarer   Zsetup_progress_apiZsetup_ui_apir   Zadd_pages_to_demosubcategoryr   dumpr   startup_recordr   r   stateZwait_for_server_commandKeyboardInterruptcloseenviron
setdefaulttimesleepresetZapp_reload_callbackZscript_unloaded_callbackZinitialize_rest)r   Z
launch_apir$   r%   r   r&   r'   r(   Zgradio_auth_credsr>   r   Z	local_urlZ	share_urlZserver_commandr
   r
   r   webui0   s     









.








rR   __main__r   )Z
__future__r   r<   rO   r   r   r   r   r   r9   Zimportscheck_versionsr   r#   rR   r/   r   r   nowebuir
   r
   r
   r   <module>   s"   
l