diff --git a/invokeai/app/run_app.py b/invokeai/app/run_app.py index 76c2ffdad51..e9be3032a44 100644 --- a/invokeai/app/run_app.py +++ b/invokeai/app/run_app.py @@ -9,6 +9,8 @@ def get_app(): def run_app() -> None: """The main entrypoint for the app.""" + import os + from invokeai.frontend.cli.arg_parser import InvokeAIArgs # Parse the CLI arguments before doing anything else, which ensures CLI args correctly override settings from other @@ -100,4 +102,9 @@ def run_app() -> None: for hdlr in logger.handlers: uvicorn_logger.addHandler(hdlr) - loop.run_until_complete(server.serve()) + try: + loop.run_until_complete(server.serve()) + except KeyboardInterrupt: + logger.info("InvokeAI shutting down...") + # Force exit to avoid hanging on non-daemon background threads (e.g. model install service). + os._exit(0)