Commit c76a30af authored by AUTOMATIC1111's avatar AUTOMATIC1111

more info for startup timings

parent 90eb731f
...@@ -25,9 +25,11 @@ start = launch_utils.start ...@@ -25,9 +25,11 @@ start = launch_utils.start
def main(): def main():
launch_utils.startup_timer.record("initial startup")
if not args.skip_prepare_environment: with launch_utils.startup_timer.subcategory("prepare environment"):
prepare_environment() if not args.skip_prepare_environment:
prepare_environment()
if args.test_server: if args.test_server:
configure_for_tests() configure_for_tests()
......
...@@ -10,7 +10,7 @@ from functools import lru_cache ...@@ -10,7 +10,7 @@ from functools import lru_cache
from modules import cmd_args, errors from modules import cmd_args, errors
from modules.paths_internal import script_path, extensions_dir from modules.paths_internal import script_path, extensions_dir
from modules import timer # noqa:F401 from modules.timer import startup_timer
args, _ = cmd_args.parser.parse_known_args() args, _ = cmd_args.parser.parse_known_args()
...@@ -224,8 +224,10 @@ def run_extensions_installers(settings_file): ...@@ -224,8 +224,10 @@ def run_extensions_installers(settings_file):
if not os.path.isdir(extensions_dir): if not os.path.isdir(extensions_dir):
return return
for dirname_extension in list_extensions(settings_file): with startup_timer.subcategory("run extensions installers"):
run_extension_installer(os.path.join(extensions_dir, dirname_extension)) for dirname_extension in list_extensions(settings_file):
run_extension_installer(os.path.join(extensions_dir, dirname_extension))
startup_timer.record(dirname_extension)
re_requirement = re.compile(r"\s*([-_a-zA-Z0-9]+)\s*(?:==\s*([-+_.a-zA-Z0-9]+))?\s*") re_requirement = re.compile(r"\s*([-_a-zA-Z0-9]+)\s*(?:==\s*([-+_.a-zA-Z0-9]+))?\s*")
...@@ -298,8 +300,11 @@ def prepare_environment(): ...@@ -298,8 +300,11 @@ def prepare_environment():
if not args.skip_python_version_check: if not args.skip_python_version_check:
check_python_version() check_python_version()
startup_timer.record("checks")
commit = commit_hash() commit = commit_hash()
tag = git_tag() tag = git_tag()
startup_timer.record("git version info")
print(f"Python {sys.version}") print(f"Python {sys.version}")
print(f"Version: {tag}") print(f"Version: {tag}")
...@@ -307,21 +312,27 @@ def prepare_environment(): ...@@ -307,21 +312,27 @@ def prepare_environment():
if args.reinstall_torch or not is_installed("torch") or not is_installed("torchvision"): if args.reinstall_torch or not is_installed("torch") or not is_installed("torchvision"):
run(f'"{python}" -m {torch_command}', "Installing torch and torchvision", "Couldn't install torch", live=True) run(f'"{python}" -m {torch_command}', "Installing torch and torchvision", "Couldn't install torch", live=True)
startup_timer.record("install torch")
if not args.skip_torch_cuda_test and not check_run_python("import torch; assert torch.cuda.is_available()"): if not args.skip_torch_cuda_test and not check_run_python("import torch; assert torch.cuda.is_available()"):
raise RuntimeError( raise RuntimeError(
'Torch is not able to use GPU; ' 'Torch is not able to use GPU; '
'add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check' 'add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check'
) )
startup_timer.record("torch GPU test")
if not is_installed("gfpgan"): if not is_installed("gfpgan"):
run_pip(f"install {gfpgan_package}", "gfpgan") run_pip(f"install {gfpgan_package}", "gfpgan")
startup_timer.record("install gfpgan")
if not is_installed("clip"): if not is_installed("clip"):
run_pip(f"install {clip_package}", "clip") run_pip(f"install {clip_package}", "clip")
startup_timer.record("install clip")
if not is_installed("open_clip"): if not is_installed("open_clip"):
run_pip(f"install {openclip_package}", "open_clip") run_pip(f"install {openclip_package}", "open_clip")
startup_timer.record("install open_clip")
if (not is_installed("xformers") or args.reinstall_xformers) and args.xformers: if (not is_installed("xformers") or args.reinstall_xformers) and args.xformers:
if platform.system() == "Windows": if platform.system() == "Windows":
...@@ -335,8 +346,11 @@ def prepare_environment(): ...@@ -335,8 +346,11 @@ def prepare_environment():
elif platform.system() == "Linux": elif platform.system() == "Linux":
run_pip(f"install -U -I --no-deps {xformers_package}", "xformers") run_pip(f"install -U -I --no-deps {xformers_package}", "xformers")
startup_timer.record("install xformers")
if not is_installed("ngrok") and args.ngrok: if not is_installed("ngrok") and args.ngrok:
run_pip("install ngrok", "ngrok") run_pip("install ngrok", "ngrok")
startup_timer.record("install ngrok")
os.makedirs(os.path.join(script_path, dir_repos), exist_ok=True) os.makedirs(os.path.join(script_path, dir_repos), exist_ok=True)
...@@ -346,22 +360,28 @@ def prepare_environment(): ...@@ -346,22 +360,28 @@ def prepare_environment():
git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer", codeformer_commit_hash) git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer", codeformer_commit_hash)
git_clone(blip_repo, repo_dir('BLIP'), "BLIP", blip_commit_hash) git_clone(blip_repo, repo_dir('BLIP'), "BLIP", blip_commit_hash)
startup_timer.record("clone repositores")
if not is_installed("lpips"): if not is_installed("lpips"):
run_pip(f"install -r \"{os.path.join(repo_dir('CodeFormer'), 'requirements.txt')}\"", "requirements for CodeFormer") run_pip(f"install -r \"{os.path.join(repo_dir('CodeFormer'), 'requirements.txt')}\"", "requirements for CodeFormer")
startup_timer.record("install CodeFormer requirements")
if not os.path.isfile(requirements_file): if not os.path.isfile(requirements_file):
requirements_file = os.path.join(script_path, requirements_file) requirements_file = os.path.join(script_path, requirements_file)
if not requirements_met(requirements_file): if not requirements_met(requirements_file):
run_pip(f"install -r \"{requirements_file}\"", "requirements") run_pip(f"install -r \"{requirements_file}\"", "requirements")
startup_timer.record("install requirements")
run_extensions_installers(settings_file=args.ui_settings_file) run_extensions_installers(settings_file=args.ui_settings_file)
if args.update_check: if args.update_check:
version_check(commit) version_check(commit)
startup_timer.record("check version")
if args.update_all_extensions: if args.update_all_extensions:
git_pull_recursive(extensions_dir) git_pull_recursive(extensions_dir)
startup_timer.record("update extensions")
if "--exit" in sys.argv: if "--exit" in sys.argv:
print("Exiting because of --exit argument") print("Exiting because of --exit argument")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment