Add thread lock to face analyser

This commit is contained in:
henryruhs 2023-06-21 21:56:11 +02:00
parent 3f11992c98
commit efdd77ae26

View File

@ -1,3 +1,4 @@
import threading
from typing import Any
import insightface
@ -5,14 +6,16 @@ import roop.globals
from roop.typing import Frame
FACE_ANALYSER = None
THREAD_LOCK = threading.Lock()
def get_face_analyser() -> Any:
global FACE_ANALYSER
if FACE_ANALYSER is None:
FACE_ANALYSER = insightface.app.FaceAnalysis(name='buffalo_l', providers=roop.globals.execution_providers)
FACE_ANALYSER.prepare(ctx_id=0, det_size=(640, 640))
with THREAD_LOCK:
if FACE_ANALYSER is None:
FACE_ANALYSER = insightface.app.FaceAnalysis(name='buffalo_l', providers=roop.globals.execution_providers)
FACE_ANALYSER.prepare(ctx_id=0, det_size=(640, 640))
return FACE_ANALYSER