""" Check that the invokeai_root is correctly configured and exit if not. """ import sys from invokeai.app.services.config import InvokeAIAppConfig def check_invokeai_root(config: InvokeAIAppConfig): try: assert config.model_conf_path.exists(), f"{config.model_conf_path} not found" assert config.db_path.parent.exists(), f"{config.db_path.parent} not found" assert config.models_path.exists(), f"{config.models_path} not found" if not config.ignore_missing_core_models: for model in [ "CLIP-ViT-bigG-14-laion2B-39B-b160k", "bert-base-uncased", "clip-vit-large-patch14", "sd-vae-ft-mse", "stable-diffusion-2-clip", "stable-diffusion-safety-checker", ]: path = config.models_path / f"core/convert/{model}" assert path.exists(), f"{path} is missing" except Exception as e: print() print(f"An exception has occurred: {str(e)}") print("== STARTUP ABORTED ==") print("** One or more necessary files is missing from your InvokeAI root directory **") print("** Please rerun the configuration script to fix this problem. **") print("** From the launcher, selection option [7]. **") print( '** From the command line, activate the virtual environment and run "invokeai-configure --yes --skip-sd-weights" **' ) print( '** (To skip this check completely, add "--ignore_missing_core_models" to your CLI args. Not installing ' "these core models will prevent the loading of some or all .safetensors and .ckpt files. However, you can " "always come back and install these core models in the future.)" ) input("Press any key to continue...") sys.exit(0)