mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2025-02-07 06:02:53 +08:00
Merge pull request #15442 from AUTOMATIC1111/open_folder-as-util
open_folder as util
This commit is contained in:
commit
447198f21b
@ -3,13 +3,10 @@ import dataclasses
|
|||||||
import json
|
import json
|
||||||
import html
|
import html
|
||||||
import os
|
import os
|
||||||
import platform
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
import subprocess as sp
|
|
||||||
|
|
||||||
from modules import call_queue, shared, ui_tempdir
|
from modules import call_queue, shared, ui_tempdir, util
|
||||||
from modules.infotext_utils import image_from_url_text
|
from modules.infotext_utils import image_from_url_text
|
||||||
import modules.images
|
import modules.images
|
||||||
from modules.ui_components import ToolButton
|
from modules.ui_components import ToolButton
|
||||||
@ -176,31 +173,7 @@ def create_output_panel(tabname, outdir, toprow=None):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if not os.path.exists(f):
|
util.open_folder(f)
|
||||||
msg = f'Folder "{f}" does not exist. After you create an image, the folder will be created.'
|
|
||||||
print(msg)
|
|
||||||
gr.Info(msg)
|
|
||||||
return
|
|
||||||
elif not os.path.isdir(f):
|
|
||||||
msg = f"""
|
|
||||||
WARNING
|
|
||||||
An open_folder request was made with an argument that is not a folder.
|
|
||||||
This could be an error or a malicious attempt to run code on your computer.
|
|
||||||
Requested path was: {f}
|
|
||||||
"""
|
|
||||||
print(msg, file=sys.stderr)
|
|
||||||
gr.Warning(msg)
|
|
||||||
return
|
|
||||||
|
|
||||||
path = os.path.normpath(f)
|
|
||||||
if platform.system() == "Windows":
|
|
||||||
os.startfile(path)
|
|
||||||
elif platform.system() == "Darwin":
|
|
||||||
sp.Popen(["open", path])
|
|
||||||
elif "microsoft-standard-WSL2" in platform.uname().release:
|
|
||||||
sp.Popen(["wsl-open", path])
|
|
||||||
else:
|
|
||||||
sp.Popen(["xdg-open", path])
|
|
||||||
|
|
||||||
with gr.Column(elem_id=f"{tabname}_results"):
|
with gr.Column(elem_id=f"{tabname}_results"):
|
||||||
if toprow:
|
if toprow:
|
||||||
|
@ -171,3 +171,38 @@ def topological_sort(dependencies):
|
|||||||
inner(depname)
|
inner(depname)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def open_folder(path):
|
||||||
|
"""Open a folder in the file manager of the respect OS."""
|
||||||
|
# import at function level to avoid potential issues
|
||||||
|
import gradio as gr
|
||||||
|
import platform
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
if not os.path.exists(path):
|
||||||
|
msg = f'Folder "{path}" does not exist. after you save an image, the folder will be created.'
|
||||||
|
print(msg)
|
||||||
|
gr.Info(msg)
|
||||||
|
return
|
||||||
|
elif not os.path.isdir(path):
|
||||||
|
msg = f"""
|
||||||
|
WARNING
|
||||||
|
An open_folder request was made with an path that is not a folder.
|
||||||
|
This could be an error or a malicious attempt to run code on your computer.
|
||||||
|
Requested path was: {path}
|
||||||
|
"""
|
||||||
|
print(msg, file=sys.stderr)
|
||||||
|
gr.Warning(msg)
|
||||||
|
return
|
||||||
|
|
||||||
|
path = os.path.normpath(path)
|
||||||
|
if platform.system() == "Windows":
|
||||||
|
os.startfile(path)
|
||||||
|
elif platform.system() == "Darwin":
|
||||||
|
subprocess.Popen(["open", path])
|
||||||
|
elif "microsoft-standard-WSL2" in platform.uname().release:
|
||||||
|
subprocess.Popen(["wsl-open", path])
|
||||||
|
else:
|
||||||
|
subprocess.Popen(["xdg-open", path])
|
||||||
|
Loading…
Reference in New Issue
Block a user