mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-12-29 19:05:05 +08:00
Warn if WebUI is installed under a dot directory (#16584)
This commit is contained in:
parent
aa52408aab
commit
91de919451
40
webui.py
40
webui.py
@ -45,6 +45,44 @@ def api_only():
|
||||
)
|
||||
|
||||
|
||||
def warning_if_invalid_install_dir():
|
||||
"""
|
||||
Shows a warning if the webui is installed under a path that contains a leading dot in any of its parent directories.
|
||||
|
||||
Gradio '/file=' route will block access to files that have a leading dot in the path segments.
|
||||
We use this route to serve files such as JavaScript and CSS to the webpage,
|
||||
if those files are blocked, the webpage will not function properly.
|
||||
See https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13292
|
||||
|
||||
This is a security feature was added to Gradio 3.32.0 and is removed in later versions,
|
||||
this function replicates Gradio file access blocking logic.
|
||||
|
||||
This check should be removed when it's no longer applicable.
|
||||
"""
|
||||
from packaging.version import parse
|
||||
from pathlib import Path
|
||||
import gradio
|
||||
|
||||
if parse('3.32.0') <= parse(gradio.__version__) < parse('4'):
|
||||
|
||||
def abspath(path):
|
||||
"""modified from Gradio 3.41.2 gradio.utils.abspath()"""
|
||||
if path.is_absolute():
|
||||
return path
|
||||
is_symlink = path.is_symlink() or any(parent.is_symlink() for parent in path.parents)
|
||||
return Path.cwd() / path if (is_symlink or path == path.resolve()) else path.resolve()
|
||||
|
||||
webui_root = Path(__file__).parent
|
||||
if any(part.startswith(".") for part in abspath(webui_root).parts):
|
||||
print(f'''{"!"*25} Warning {"!"*25}
|
||||
WebUI is installed in a directory that has a leading dot (.) in one of its parent directories.
|
||||
This will prevent WebUI from functioning properly.
|
||||
Please move the installation to a different directory.
|
||||
Current path: "{webui_root}"
|
||||
For more information see: https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13292
|
||||
{"!"*25} Warning {"!"*25}''')
|
||||
|
||||
|
||||
def webui():
|
||||
from modules.shared_cmd_options import cmd_opts
|
||||
|
||||
@ -53,6 +91,8 @@ def webui():
|
||||
|
||||
from modules import shared, ui_tempdir, script_callbacks, ui, progress, ui_extra_networks
|
||||
|
||||
warning_if_invalid_install_dir()
|
||||
|
||||
while 1:
|
||||
if shared.opts.clean_temp_dir_at_start:
|
||||
ui_tempdir.cleanup_tmpdr()
|
||||
|
Loading…
Reference in New Issue
Block a user