Upload sdwui_install.py
Browse files- sdwui_install.py +50 -80
sdwui_install.py
CHANGED
|
@@ -18,57 +18,33 @@ def mkdirs(path, exist_ok=True):
|
|
| 18 |
|
| 19 |
# 内置参数默认值,当上下文有参数时可覆盖默认值
|
| 20 |
|
| 21 |
-
_useFrpc =
|
| 22 |
-
if 'useFrpc' in locals() or 'useFrpc' in globals():
|
| 23 |
-
_useFrpc = config.useFrpc
|
| 24 |
|
| 25 |
-
_useNgrok =
|
| 26 |
-
if 'useNgrok' in locals() or 'useNgrok' in globals():
|
| 27 |
-
_useNgrok = config.useNgrok
|
| 28 |
-
|
| 29 |
-
_reLoad = False
|
| 30 |
-
if 'reLoad' in locals() or 'reLoad' in globals():
|
| 31 |
-
_reLoad = config.reLoad
|
| 32 |
-
|
| 33 |
-
_before_downloading = ''
|
| 34 |
-
if 'before_downloading' in locals() or 'before_downloading' in globals():
|
| 35 |
-
_before_downloading = config.before_downloading
|
| 36 |
|
| 37 |
-
|
| 38 |
-
if 'async_downloading' in locals() or 'async_downloading' in globals():
|
| 39 |
-
_async_downloading = config.async_downloading
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
_sd_git_repo =
|
| 50 |
-
if 'sd_git_repo' in locals() or 'sd_git_repo' in globals():
|
| 51 |
-
_sd_git_repo = config.sd_git_repo\
|
| 52 |
.replace('{sdwui}','stable-diffusion-webui')\
|
| 53 |
-
.replace('{wui}',"webui")
|
| 54 |
|
| 55 |
-
_sd_config_git_repu =
|
| 56 |
-
if 'sd_config_git_repu' in locals() or 'sd_config_git_repu' in globals():
|
| 57 |
-
_sd_config_git_repu = config.sd_config_git_repu\
|
| 58 |
.replace('{sdwui}','stable-diffusion-webui')\
|
| 59 |
-
.replace('{wui}',"webui")
|
| 60 |
|
| 61 |
-
_link_instead_of_copy =
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
if 'hidden_console_info' in locals() or 'hidden_console_info' in globals():
|
| 67 |
-
show_shell_info = not config.hidden_console_info
|
| 68 |
-
|
| 69 |
-
_skip_start = False
|
| 70 |
-
if 'skip_start' in locals() or 'skip_start' in globals():
|
| 71 |
-
_skip_start = config.skip_start
|
| 72 |
|
| 73 |
run_by_none_device = False
|
| 74 |
|
|
@@ -143,15 +119,13 @@ def config_reader(conf:str):
|
|
| 143 |
ngrokTokenFile = os.path.join(input_path,'configs/ngrok_token.txt') # 非必填 存放ngrokToken的文件的路径
|
| 144 |
frpcConfigFile = os.path.join(input_path,'configs/frpc_koishi.ini') # 非必填 frp 配置文件
|
| 145 |
# ss证书目录 下载nginx的版本,把pem格式改成crt格式
|
| 146 |
-
frpcSSLFFlies =[os.path.join(input_path,'configs/koishi_ssl')]
|
| 147 |
-
|
| 148 |
-
frpcSSLFFlies = frpcSSLFFlies + config_reader(config.frp_ssl_dir)
|
| 149 |
# frpc 文件目录 如果目录不存在,会自动下载,也可以在数据集搜索 viyiviyi/utils 添加
|
| 150 |
frpcExePath = os.path.join(input_path,'utils-tools/frpc')
|
| 151 |
# 其他需要加载的webui启动参数 写到【参数列表】这个配置去
|
| 152 |
-
otherArgs = '--xformers'
|
| 153 |
-
|
| 154 |
-
otherArgs = ' '.join([item for item in config_reader(config.sd_start_args) if item != '--no-gradio-queue'])
|
| 155 |
venvPath = os.path.join(input_path,'sd-webui-venv/venv.tar.bak') # 安装好的python环境 sd-webui-venv是一个公开是数据集 可以搜索添加
|
| 156 |
|
| 157 |
# 用于使用kaggle api的token文件 参考 https://www.kaggle.com/docs/api
|
|
@@ -162,45 +136,41 @@ requirements = []
|
|
| 162 |
|
| 163 |
frpcStartArg = ''
|
| 164 |
|
| 165 |
-
_setting_file =
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
_ui_config_file = ''
|
| 169 |
-
if 'ui_config_file' in locals() or 'ui_config_file' in globals():
|
| 170 |
-
_ui_config_file = replace_path(config.ui_config_file)
|
| 171 |
|
| 172 |
mkdirs(f'{install_path}/configFiles',True)
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
else:
|
| 181 |
-
print('没有frpcp配置')
|
| 182 |
-
_useFrpc = False
|
| 183 |
else:
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
|
| 189 |
ngrokToken=''
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
ngrokToken=_ngrok_config_or_file.strip()
|
| 199 |
|
| 200 |
if not Path(venvPath).exists():
|
| 201 |
venvPath = os.path.join(input_path,'sd-webui-venv/venv.zip')
|
| 202 |
|
| 203 |
-
|
| 204 |
import concurrent.futures
|
| 205 |
import importlib
|
| 206 |
import os
|
|
|
|
| 18 |
|
| 19 |
# 内置参数默认值,当上下文有参数时可覆盖默认值
|
| 20 |
|
| 21 |
+
_useFrpc = config.useFrpc
|
|
|
|
|
|
|
| 22 |
|
| 23 |
+
_useNgrok = config.useNgrok
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
+
_reLoad = config.reLoad
|
|
|
|
|
|
|
| 26 |
|
| 27 |
+
_before_downloading = config.before_downloading
|
| 28 |
+
|
| 29 |
+
_async_downloading = config.async_downloading
|
| 30 |
+
|
| 31 |
+
_before_start_sync_downloading = config.before_start_sync_downloading
|
| 32 |
+
|
| 33 |
+
_server_port = config.server_port or 7860
|
| 34 |
+
|
| 35 |
+
_sd_git_repo = config.sd_git_repo\
|
|
|
|
|
|
|
| 36 |
.replace('{sdwui}','stable-diffusion-webui')\
|
| 37 |
+
.replace('{wui}',"webui") or 'https://github.com/viyiviyi/stable-diffusion-webui.git -b local'
|
| 38 |
|
| 39 |
+
_sd_config_git_repu = config.sd_config_git_repu\
|
|
|
|
|
|
|
| 40 |
.replace('{sdwui}','stable-diffusion-webui')\
|
| 41 |
+
.replace('{wui}',"webui") or 'https://github.com/viyiviyi/sd-configs.git'
|
| 42 |
|
| 43 |
+
_link_instead_of_copy = config.link_instead_of_copy
|
| 44 |
+
|
| 45 |
+
show_shell_info = not config.hidden_console_info
|
| 46 |
+
|
| 47 |
+
_skip_start = config.skip_start
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
run_by_none_device = False
|
| 50 |
|
|
|
|
| 119 |
ngrokTokenFile = os.path.join(input_path,'configs/ngrok_token.txt') # 非必填 存放ngrokToken的文件的路径
|
| 120 |
frpcConfigFile = os.path.join(input_path,'configs/frpc_koishi.ini') # 非必填 frp 配置文件
|
| 121 |
# ss证书目录 下载nginx的版本,把pem格式改成crt格式
|
| 122 |
+
frpcSSLFFlies = [os.path.join(input_path,'configs/koishi_ssl')] + config_reader(config.frp_ssl_dir)
|
| 123 |
+
|
|
|
|
| 124 |
# frpc 文件目录 如果目录不存在,会自动下载,也可以在数据集搜索 viyiviyi/utils 添加
|
| 125 |
frpcExePath = os.path.join(input_path,'utils-tools/frpc')
|
| 126 |
# 其他需要加载的webui启动参数 写到【参数列表】这个配置去
|
| 127 |
+
otherArgs = ' '.join([item for item in config_reader(config.sd_start_args) if item != '--no-gradio-queue']) or '--xformers'
|
| 128 |
+
|
|
|
|
| 129 |
venvPath = os.path.join(input_path,'sd-webui-venv/venv.tar.bak') # 安装好的python环境 sd-webui-venv是一个公开是数据集 可以搜索添加
|
| 130 |
|
| 131 |
# 用于使用kaggle api的token文件 参考 https://www.kaggle.com/docs/api
|
|
|
|
| 136 |
|
| 137 |
frpcStartArg = ''
|
| 138 |
|
| 139 |
+
_setting_file = replace_path(config.setting_file)
|
| 140 |
+
|
| 141 |
+
_ui_config_file = replace_path(config.ui_config_file)
|
|
|
|
|
|
|
|
|
|
| 142 |
|
| 143 |
mkdirs(f'{install_path}/configFiles',True)
|
| 144 |
+
|
| 145 |
+
_frp_config_or_file = replace_path(config.frp_config_or_file)
|
| 146 |
+
if Path(_frp_config_or_file.strip()).exists():
|
| 147 |
+
frpcConfigFile = _frp_config_or_file.strip()
|
| 148 |
+
if not Path(frpcConfigFile).exists():
|
| 149 |
+
if _frp_config_or_file.strip().startswith('-f'):
|
| 150 |
+
frpcStartArg = _frp_config_or_file.strip()
|
|
|
|
|
|
|
|
|
|
| 151 |
else:
|
| 152 |
+
print('没有frpcp配置')
|
| 153 |
+
_useFrpc = False
|
| 154 |
+
else:
|
| 155 |
+
run(f'''cp -f {frpcConfigFile} {install_path}/configFiles/frpc_webui.ini''')
|
| 156 |
+
frpcConfigFile = f'{install_path}/configFiles/frpc_webui.ini'
|
| 157 |
+
run(f'''sed -i "s/local_port = .*/local_port = {_server_port}/g" {frpcConfigFile}''')
|
| 158 |
+
frpcStartArg = f' -c {frpcConfigFile}'
|
| 159 |
+
|
| 160 |
|
| 161 |
ngrokToken=''
|
| 162 |
+
_ngrok_config_or_file = replace_path(config.ngrok_config_or_file)
|
| 163 |
+
if Path(_ngrok_config_or_file.strip()).exists():
|
| 164 |
+
ngrokTokenFile = _ngrok_config_or_file.strip()
|
| 165 |
+
if Path(ngrokTokenFile).exists():
|
| 166 |
+
with open(ngrokTokenFile,encoding = "utf-8") as nkfile:
|
| 167 |
+
ngrokToken = nkfile.readline()
|
| 168 |
+
elif not _ngrok_config_or_file.strip().startswith('/'):
|
| 169 |
+
ngrokToken=_ngrok_config_or_file.strip()
|
|
|
|
| 170 |
|
| 171 |
if not Path(venvPath).exists():
|
| 172 |
venvPath = os.path.join(input_path,'sd-webui-venv/venv.zip')
|
| 173 |
|
|
|
|
| 174 |
import concurrent.futures
|
| 175 |
import importlib
|
| 176 |
import os
|