Spaces:
Running
Running
File size: 2,132 Bytes
0c87db7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
import argparse
import glob
import os
import shutil
import site
import subprocess
import sys
script_dir = os.getcwd()
def run_cmd(cmd, capture_output=False, env=None):
# Run shell commands
return subprocess.run(cmd, shell=True, capture_output=capture_output, env=env)
def check_env():
# If we have access to conda, we are probably in an environment
conda_not_exist = run_cmd("conda", capture_output=True).returncode
if conda_not_exist:
print("Conda is not installed. Exiting...")
sys.exit()
# Ensure this is a new environment and not the base environment
if os.environ["CONDA_DEFAULT_ENV"] == "base":
print("Create an environment for this project and activate it. Exiting...")
sys.exit()
def install_dependencies():
# Install Git and clone repo
run_cmd("conda install -y -k git")
run_cmd("git clone https://github.com/C0untFloyd/roop-unleashed.git")
# Install the webui dependencies
update_dependencies()
def update_dependencies():
global MY_PATH
os.chdir(MY_PATH)
# do a hard reset for to update even if there are local changes
run_cmd("git fetch --all")
run_cmd("git reset --hard origin/main")
run_cmd("git pull")
# Installs/Updates dependencies from all requirements.txt
run_cmd("python -m pip install -r requirements.txt")
def start_app():
global MY_PATH
os.chdir(MY_PATH)
# forward commandline arguments
sys.argv.pop(0)
args = ' '.join(sys.argv)
print("Launching App")
run_cmd(f'python run.py {args}')
if __name__ == "__main__":
global MY_PATH
MY_PATH = "roop-unleashed"
# Verifies we are in a conda environment
check_env()
# If webui has already been installed, skip and run
if not os.path.exists(MY_PATH):
install_dependencies()
else:
# moved update from batch to here, because of batch limitations
updatechoice = input("Check for Updates? [y/n]").lower()
if updatechoice == "y":
update_dependencies()
# Run the model with webui
os.chdir(script_dir)
start_app()
|