2022-09-26 16:02:48 +03:00
# This file is part of stable-diffusion-webui (https://github.com/sd-webui/stable-diffusion-webui/).
# Copyright 2022 sd-webui team.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
2022-10-02 20:22:27 +03:00
import os , time , argparse
2022-09-07 01:50:14 +03:00
# USER CHANGABLE ARGUMENTS
# Change to `True` if you wish to enable these common arguments
# Run upscaling models on the CPU
extra_models_cpu = False
# Automatically open a new browser window or tab on first launch
open_in_browser = False
# Run Stable Diffusion in Optimized Mode - Only requires 4Gb of VRAM, but is significantly slower
optimized = False
# Run in Optimized Turbo Mode - Needs more VRAM than regular optimized mode, but is faster
optimized_turbo = False
# Creates a public xxxxx.gradio.app share link to allow others to use your interface (requires properly forwarded ports to work correctly)
share = False
2022-09-09 20:33:04 +03:00
# Generate tiling images
tiling = False
2022-10-02 21:24:23 +03:00
# Enter other `--arguments` you wish to use - Must be entered as a `--argument ` syntax
additional_arguments = " "
2022-10-02 20:22:27 +03:00
parser = argparse . ArgumentParser ( formatter_class = argparse . ArgumentDefaultsHelpFormatter )
2022-10-03 11:26:26 +03:00
parser . add_argument ( ' -v ' , ' --verbosity ' , action = ' count ' , default = 0 , help = " The default logging level is ERROR or higher. This value increases the amount of logging seen in your screen " )
2022-10-02 20:22:27 +03:00
parser . add_argument ( ' -n ' , ' --horde_name ' , action = " store " , required = False , type = str , help = " The server name for the Horde. It will be shown to the world and there can be only one. " )
2022-10-02 23:19:50 +03:00
parser . add_argument ( ' --bridge ' , action = " store_true " , required = False , default = False , help = " When specified, start the stable horde bridge instead of the webui. " )
2022-10-02 20:22:27 +03:00
args = parser . parse_args ( )
2022-10-02 21:24:23 +03:00
if args . bridge :
additional_arguments + = f ' --bridge '
if args . horde_name :
additional_arguments + = f ' --horde_name " { args . horde_name } " '
2022-10-03 11:26:26 +03:00
if args . verbosity :
for iter in range ( args . verbosity ) :
additional_arguments + = ' -v '
print ( f " Additional args: { additional_arguments } " )
2022-09-07 01:50:14 +03:00
# BEGIN RELAUNCHER PYTHON CODE
common_arguments = " "
if extra_models_cpu == True :
common_arguments + = " --extra-models-cpu "
if optimized_turbo == True :
common_arguments + = " --optimized-turbo "
if optimized == True :
common_arguments + = " --optimized "
2022-09-09 20:33:04 +03:00
if tiling == True :
common_arguments + = " --tiling "
2022-09-07 01:50:14 +03:00
if share == True :
common_arguments + = " --share "
if open_in_browser == True :
inbrowser_argument = " --inbrowser "
else :
inbrowser_argument = " "
n = 0
while True :
if n == 0 :
print ( ' Relauncher: Launching... ' )
os . system ( f " python scripts/webui.py { common_arguments } { inbrowser_argument } { additional_arguments } " )
else :
print ( f ' \t Relaunch count: { n } ' )
print ( ' Relauncher: Launching... ' )
os . system ( f " python scripts/webui.py { common_arguments } { additional_arguments } " )
n + = 1
if n > 100 :
print ( ' Too many relaunch attempts. Aborting... ' )
break
print ( ' Relauncher: Process is ending. Relaunching in 1s... ' )
time . sleep ( 1 )