Modifies sys.argv depending on 'IS_SHARED_UI' env value + GPU presence
Browse files- Dockerfile +1 -1
- header_patch.py +2 -1
- run.py +26 -6
Dockerfile
CHANGED
|
@@ -121,4 +121,4 @@ RUN chmod +x on_start.sh
|
|
| 121 |
|
| 122 |
EXPOSE 7860
|
| 123 |
|
| 124 |
-
CMD ["/opt/venv/bin/python", "run.py", "--listen", "--
|
|
|
|
| 121 |
|
| 122 |
EXPOSE 7860
|
| 123 |
|
| 124 |
+
CMD ["/opt/venv/bin/python", "run.py", "--listen", "--ui-config-file", "ui-config.json", "--ui-settings-file", "config.json", "--disable-console-progressbars", "--cors-allow-origins", "huggingface.co,hf.space", "--no-progressbar-hiding", "--enable-console-prompts", "--no-download-sd-model", "--api", "--skip-version-check"]
|
header_patch.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
with gr.Box(visible=os.environ.get("SPACE_ID")):
|
| 2 |
-
|
|
|
|
| 3 |
import torch
|
| 4 |
if not torch.cuda.is_available():
|
| 5 |
gr.HTML(f"""
|
|
|
|
| 1 |
with gr.Box(visible=os.environ.get("SPACE_ID")):
|
| 2 |
+
is_shared_ui = str(os.environ.get("IS_SHARED_UI", "") or "").strip().lower() not in ("", "0", "false", "none", "no")
|
| 3 |
+
if is_shared_ui:
|
| 4 |
import torch
|
| 5 |
if not torch.cuda.is_available():
|
| 6 |
gr.HTML(f"""
|
run.py
CHANGED
|
@@ -13,23 +13,43 @@ def on_start():
|
|
| 13 |
|
| 14 |
|
| 15 |
def start():
|
| 16 |
-
on_start()
|
| 17 |
-
|
| 18 |
print("---------------")
|
| 19 |
print(f"Launching {'API server' if '--nowebui' in sys.argv else 'Web UI'} with arguments: {' '.join(sys.argv[1:])}")
|
| 20 |
print("---------------")
|
| 21 |
import webui # type: ignore # noqa
|
| 22 |
-
|
|
|
|
| 23 |
webui.api_only()
|
| 24 |
else:
|
| 25 |
webui.webui()
|
| 26 |
|
| 27 |
|
| 28 |
-
|
| 29 |
-
import torch
|
|
|
|
| 30 |
if not torch.cuda.is_available():
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
else:
|
|
|
|
| 33 |
sys.argv.extend(["--force-enable-xformers", "--xformers"])
|
| 34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
start()
|
|
|
|
| 13 |
|
| 14 |
|
| 15 |
def start():
|
|
|
|
|
|
|
| 16 |
print("---------------")
|
| 17 |
print(f"Launching {'API server' if '--nowebui' in sys.argv else 'Web UI'} with arguments: {' '.join(sys.argv[1:])}")
|
| 18 |
print("---------------")
|
| 19 |
import webui # type: ignore # noqa
|
| 20 |
+
|
| 21 |
+
if "--nowebui" in sys.argv:
|
| 22 |
webui.api_only()
|
| 23 |
else:
|
| 24 |
webui.webui()
|
| 25 |
|
| 26 |
|
| 27 |
+
def set_options():
|
| 28 |
+
import torch # type: ignore # noqa
|
| 29 |
+
|
| 30 |
if not torch.cuda.is_available():
|
| 31 |
+
# If no GPU is available, uninstall xformers and apply "--precision full --no-half --use-cpu all" to sys.argv.
|
| 32 |
+
os.system(f"{sys.executable} -m pip uninstall -y xformers")
|
| 33 |
+
sys.argv.extend(
|
| 34 |
+
[
|
| 35 |
+
"--precision",
|
| 36 |
+
"full",
|
| 37 |
+
"--no-half",
|
| 38 |
+
"--use-cpu",
|
| 39 |
+
"all",
|
| 40 |
+
]
|
| 41 |
+
)
|
| 42 |
else:
|
| 43 |
+
# Applies "--force-enable-xformers --xformers" to sys.argv when there's a GPU present.
|
| 44 |
sys.argv.extend(["--force-enable-xformers", "--xformers"])
|
| 45 |
|
| 46 |
+
is_shared_ui = str(os.environ.get("IS_SHARED_UI", "") or "").strip().lower() not in ("", "0", "false", "none", "no")
|
| 47 |
+
if not is_shared_ui:
|
| 48 |
+
# Provide access to extensions only if IS_SHARED_UI isn't set.
|
| 49 |
+
sys.argv.extend(["--enable-insecure-extension-access"])
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
if __name__ == "__main__":
|
| 53 |
+
set_options()
|
| 54 |
+
on_start()
|
| 55 |
start()
|