Path: blob/master/modules/initialize.py
3055 views
import importlib1import logging2import os3import sys4import warnings5from threading import Thread67from modules.timer import startup_timer8910def imports():11logging.getLogger("torch.distributed.nn").setLevel(logging.ERROR) # sshh...12logging.getLogger("xformers").addFilter(lambda record: 'A matching Triton is not available' not in record.getMessage())1314import torch # noqa: F40115startup_timer.record("import torch")16import pytorch_lightning # noqa: F40117startup_timer.record("import torch")18warnings.filterwarnings(action="ignore", category=DeprecationWarning, module="pytorch_lightning")19warnings.filterwarnings(action="ignore", category=UserWarning, module="torchvision")2021os.environ.setdefault('GRADIO_ANALYTICS_ENABLED', 'False')22import gradio # noqa: F40123startup_timer.record("import gradio")2425from modules import paths, timer, import_hook, errors # noqa: F40126startup_timer.record("setup paths")2728import ldm.modules.encoders.modules # noqa: F40129startup_timer.record("import ldm")3031import sgm.modules.encoders.modules # noqa: F40132startup_timer.record("import sgm")3334from modules import shared_init35shared_init.initialize()36startup_timer.record("initialize shared")3738from modules import processing, gradio_extensons, ui # noqa: F40139startup_timer.record("other imports")404142def check_versions():43from modules.shared_cmd_options import cmd_opts4445if not cmd_opts.skip_version_check:46from modules import errors47errors.check_versions()484950def initialize():51from modules import initialize_util52initialize_util.fix_torch_version()53initialize_util.fix_pytorch_lightning()54initialize_util.fix_asyncio_event_loop_policy()55initialize_util.validate_tls_options()56initialize_util.configure_sigint_handler()57initialize_util.configure_opts_onchange()5859from modules import sd_models60sd_models.setup_model()61startup_timer.record("setup SD model")6263from modules.shared_cmd_options import cmd_opts6465from modules import codeformer_model66warnings.filterwarnings(action="ignore", category=UserWarning, module="torchvision.transforms.functional_tensor")67codeformer_model.setup_model(cmd_opts.codeformer_models_path)68startup_timer.record("setup codeformer")6970from modules import gfpgan_model71gfpgan_model.setup_model(cmd_opts.gfpgan_models_path)72startup_timer.record("setup gfpgan")7374initialize_rest(reload_script_modules=False)757677def initialize_rest(*, reload_script_modules=False):78"""79Called both from initialize() and when reloading the webui.80"""81from modules.shared_cmd_options import cmd_opts8283from modules import sd_samplers84sd_samplers.set_samplers()85startup_timer.record("set samplers")8687from modules import extensions88extensions.list_extensions()89startup_timer.record("list extensions")9091from modules import initialize_util92initialize_util.restore_config_state_file()93startup_timer.record("restore config state file")9495from modules import shared, upscaler, scripts96if cmd_opts.ui_debug_mode:97shared.sd_upscalers = upscaler.UpscalerLanczos().scalers98scripts.load_scripts()99return100101from modules import sd_models102sd_models.list_models()103startup_timer.record("list SD models")104105from modules import localization106localization.list_localizations(cmd_opts.localizations_dir)107startup_timer.record("list localizations")108109with startup_timer.subcategory("load scripts"):110scripts.load_scripts()111112if reload_script_modules and shared.opts.enable_reloading_ui_scripts:113for module in [module for name, module in sys.modules.items() if name.startswith("modules.ui")]:114importlib.reload(module)115startup_timer.record("reload script modules")116117from modules import modelloader118modelloader.load_upscalers()119startup_timer.record("load upscalers")120121from modules import sd_vae122sd_vae.refresh_vae_list()123startup_timer.record("refresh VAE")124125from modules import textual_inversion126textual_inversion.textual_inversion.list_textual_inversion_templates()127startup_timer.record("refresh textual inversion templates")128129from modules import script_callbacks, sd_hijack_optimizations, sd_hijack130script_callbacks.on_list_optimizers(sd_hijack_optimizations.list_optimizers)131sd_hijack.list_optimizers()132startup_timer.record("scripts list_optimizers")133134from modules import sd_unet135sd_unet.list_unets()136startup_timer.record("scripts list_unets")137138def load_model():139"""140Accesses shared.sd_model property to load model.141After it's available, if it has been loaded before this access by some extension,142its optimization may be None because the list of optimizers has not been filled143by that time, so we apply optimization again.144"""145from modules import devices146devices.torch_npu_set_device()147148shared.sd_model # noqa: B018149150if sd_hijack.current_optimizer is None:151sd_hijack.apply_optimizations()152153devices.first_time_calculation()154if not shared.cmd_opts.skip_load_model_at_start:155Thread(target=load_model).start()156157from modules import shared_items158shared_items.reload_hypernetworks()159startup_timer.record("reload hypernetworks")160161from modules import ui_extra_networks162ui_extra_networks.initialize()163ui_extra_networks.register_default_pages()164165from modules import extra_networks166extra_networks.initialize()167extra_networks.register_default_extra_networks()168startup_timer.record("initialize extra networks")169170171