Introduce signal_exit()

This commit is contained in:
henryruhs
2025-06-12 23:40:40 +02:00
parent cee560e89a
commit 17a94c0604
3 changed files with 13 additions and 4 deletions

View File

@@ -2,7 +2,6 @@ import itertools
import shutil
import signal
import sys
from functools import partial
from time import time
import numpy
@@ -12,7 +11,7 @@ from facefusion.args import apply_args, collect_job_args, reduce_job_args, reduc
from facefusion.common_helper import get_first
from facefusion.content_analyser import analyse_image, analyse_video
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.exit_helper import graceful_exit, hard_exit
from facefusion.exit_helper import signal_exit, hard_exit
from facefusion.face_analyser import get_average_face, get_many_faces, get_one_face
from facefusion.face_selector import sort_and_filter_faces
from facefusion.face_store import append_reference_face, clear_reference_faces, get_reference_faces
@@ -32,7 +31,7 @@ from facefusion.vision import pack_resolution, read_image, read_static_images, r
def cli() -> None:
if pre_check():
signal.signal(signal.SIGINT, partial(graceful_exit, 0))
signal.signal(signal.SIGINT, signal_exit)
program = create_program()
if validate_args(program):

View File

@@ -1,6 +1,7 @@
import signal
import sys
from time import sleep
from types import FrameType
from facefusion import process_manager, state_manager
from facefusion.temp_helper import clear_temp_directory
@@ -12,6 +13,10 @@ def hard_exit(error_code : ErrorCode) -> None:
sys.exit(error_code)
def signal_exit(signum : int, frame : FrameType):
graceful_exit(0)
def graceful_exit(error_code : ErrorCode) -> None:
process_manager.stop()
while process_manager.is_processing():

View File

@@ -5,6 +5,7 @@ import subprocess
import sys
from argparse import ArgumentParser, HelpFormatter
from functools import partial
from types import FrameType
from facefusion import metadata, wording
from facefusion.common_helper import is_linux, is_windows
@@ -23,7 +24,7 @@ if is_linux():
def cli() -> None:
signal.signal(signal.SIGINT, partial(sys.exit, 0))
signal.signal(signal.SIGINT, signal_exit)
program = ArgumentParser(formatter_class = partial(HelpFormatter, max_help_position = 50))
program.add_argument('--onnxruntime', help = wording.get('help.install_dependency').format(dependency = 'onnxruntime'), choices = ONNXRUNTIME_SET.keys(), required = True)
program.add_argument('--skip-conda', help = wording.get('help.skip_conda'), action = 'store_true')
@@ -31,6 +32,10 @@ def cli() -> None:
run(program)
def signal_exit(signum : int, frame : FrameType):
sys.exit(0)
def run(program : ArgumentParser) -> None:
args = program.parse_args()
has_conda = 'CONDA_PREFIX' in os.environ