rename face landmarker to face aligner (#1215)

This commit is contained in:
Henry Ruhs
2026-08-06 11:18:02 +02:00
committed by GitHub
parent e02d5880d3
commit 1fae1282d1
19 changed files with 75 additions and 75 deletions
+3 -3
View File
@@ -17,9 +17,9 @@ face_detector_margin =
face_detector_angles =
face_detector_score =
[face_landmarker]
face_landmarker_model =
face_landmarker_score =
[face_aligner]
face_aligner_model =
face_aligner_score =
[face_selector]
face_selector_mode =
+2 -2
View File
@@ -24,8 +24,8 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
apply_state_item('face_detector_margin', normalize_space(args.get('face_detector_margin')))
apply_state_item('face_detector_angles', args.get('face_detector_angles'))
apply_state_item('face_detector_score', args.get('face_detector_score'))
apply_state_item('face_landmarker_model', args.get('face_landmarker_model'))
apply_state_item('face_landmarker_score', args.get('face_landmarker_score'))
apply_state_item('face_aligner_model', args.get('face_aligner_model'))
apply_state_item('face_aligner_score', args.get('face_aligner_score'))
apply_state_item('face_selector_mode', args.get('face_selector_mode'))
apply_state_item('face_selector_order', args.get('face_selector_order'))
apply_state_item('face_selector_age_start', args.get('face_selector_age_start'))
+1 -1
View File
@@ -36,7 +36,7 @@ def run() -> Iterator[List[BenchmarkCycleSet]]:
benchmark_cycle_count = state_manager.get_item('benchmark_cycle_count')
state_manager.init_item('source_paths', [ '.assets/examples/source.jpg', '.assets/examples/source.mp3' ])
state_manager.init_item('face_landmarker_score', 0)
state_manager.init_item('face_aligner_score', 0)
state_manager.init_item('temp_frame_format', 'bmp')
state_manager.init_item('output_audio_volume', 0)
state_manager.init_item('output_video_preset', 'ultrafast')
+3 -3
View File
@@ -2,7 +2,7 @@ import logging
from typing import List, Sequence, get_args
from facefusion.common_helper import create_float_range, create_int_range
from facefusion.types import Angle, ApiSecurityStrategy, AudioEncoder, AudioFormat, AudioSet, BenchmarkMode, BenchmarkResolution, BenchmarkSet, DownloadProvider, DownloadProviderSet, DownloadScope, ExecutionProvider, ExecutionProviderSet, FaceDetectorModel, FaceDetectorSet, FaceLandmarkerModel, FaceMaskArea, FaceMaskAreaSet, FaceMaskRegion, FaceMaskRegionSet, FaceMaskType, FaceOccluderModel, FaceParserModel, FaceSelectorGender, FaceSelectorMode, FaceSelectorOrder, FaceSelectorRace, Gender, ImageEncoder, ImageFormat, ImageSet, JobStatus, LogLevel, LogLevelSet, Race, Score, TempFrameFormat, TempPixelFormat, VideoEncoder, VideoFormat, VideoMemoryStrategy, VideoPreset, VideoSet, VoiceExtractorModel, WorkflowMode, WorkflowStrategy
from facefusion.types import Angle, ApiSecurityStrategy, AudioEncoder, AudioFormat, AudioSet, BenchmarkMode, BenchmarkResolution, BenchmarkSet, DownloadProvider, DownloadProviderSet, DownloadScope, ExecutionProvider, ExecutionProviderSet, FaceAlignerModel, FaceDetectorModel, FaceDetectorSet, FaceMaskArea, FaceMaskAreaSet, FaceMaskRegion, FaceMaskRegionSet, FaceMaskType, FaceOccluderModel, FaceParserModel, FaceSelectorGender, FaceSelectorMode, FaceSelectorOrder, FaceSelectorRace, Gender, ImageEncoder, ImageFormat, ImageSet, JobStatus, LogLevel, LogLevelSet, Race, Score, TempFrameFormat, TempPixelFormat, VideoEncoder, VideoFormat, VideoMemoryStrategy, VideoPreset, VideoSet, VoiceExtractorModel, WorkflowMode, WorkflowStrategy
face_detector_set : FaceDetectorSet =\
{
@@ -13,7 +13,7 @@ face_detector_set : FaceDetectorSet =\
'yunet': [ '640x640' ]
}
face_detector_models : List[FaceDetectorModel] = list(get_args(FaceDetectorModel))
face_landmarker_models : List[FaceLandmarkerModel] = list(get_args(FaceLandmarkerModel))
face_aligner_models : List[FaceAlignerModel] = list(get_args(FaceAlignerModel))
face_selector_modes : List[FaceSelectorMode] = list(get_args(FaceSelectorMode))
face_selector_orders : List[FaceSelectorOrder] = list(get_args(FaceSelectorOrder))
genders : List[Gender] = list(get_args(Gender))
@@ -158,7 +158,7 @@ execution_thread_count_range : Sequence[int] = create_int_range(1, 32, 1)
face_detector_margin_range : Sequence[int] = create_int_range(0, 100, 1)
face_detector_angles : Sequence[Angle] = create_int_range(0, 270, 90)
face_detector_score_range : Sequence[Score] = create_float_range(0.0, 1.0, 0.05)
face_landmarker_score_range : Sequence[Score] = create_float_range(0.0, 1.0, 0.05)
face_aligner_score_range : Sequence[Score] = create_float_range(0.0, 1.0, 0.05)
face_mask_blur_range : Sequence[float] = create_float_range(0.0, 1.0, 0.05)
face_mask_padding_range : Sequence[int] = create_int_range(0, 100, 1)
face_selector_age_range : Sequence[int] = create_int_range(0, 100, 1)
@@ -97,14 +97,14 @@ def create_static_model_set(download_scope : DownloadScope) -> ModelSet:
def get_inference_pool() -> InferencePool:
model_names = [ state_manager.get_item('face_landmarker_model'), 'fan_68_5' ]
model_names = [ state_manager.get_item('face_aligner_model'), 'fan_68_5' ]
_, model_source_set = collect_model_downloads()
return inference_manager.get_inference_pool(__name__, model_names, model_source_set)
def clear_inference_pool() -> None:
model_names = [ state_manager.get_item('face_landmarker_model'), 'fan_68_5' ]
model_names = [ state_manager.get_item('face_aligner_model'), 'fan_68_5' ]
inference_manager.clear_inference_pool(__name__, model_names)
@@ -119,10 +119,10 @@ def collect_model_downloads() -> Tuple[DownloadSet, DownloadSet]:
'fan_68_5': model_set.get('fan_68_5').get('sources').get('fan_68_5')
}
for face_landmarker_model in [ '2dfan4', 'peppa_wutz' ]:
if state_manager.get_item('face_landmarker_model') in [ 'many', face_landmarker_model ]:
model_hash_set[face_landmarker_model] = model_set.get(face_landmarker_model).get('hashes').get(face_landmarker_model)
model_source_set[face_landmarker_model] = model_set.get(face_landmarker_model).get('sources').get(face_landmarker_model)
for face_aligner_model in [ '2dfan4', 'peppa_wutz' ]:
if state_manager.get_item('face_aligner_model') in [ 'many', face_aligner_model ]:
model_hash_set[face_aligner_model] = model_set.get(face_aligner_model).get('hashes').get(face_aligner_model)
model_source_set[face_aligner_model] = model_set.get(face_aligner_model).get('sources').get(face_aligner_model)
return model_hash_set, model_source_set
@@ -139,10 +139,10 @@ def detect_face_landmark(vision_frame : VisionFrame, bounding_box : BoundingBox,
face_landmark_score_2dfan4 = 0.0
face_landmark_score_peppa_wutz = 0.0
if state_manager.get_item('face_landmarker_model') in [ 'many', '2dfan4' ]:
if state_manager.get_item('face_aligner_model') in [ 'many', '2dfan4' ]:
face_landmark_2dfan4, face_landmark_score_2dfan4 = detect_with_2dfan4(vision_frame, bounding_box, face_angle)
if state_manager.get_item('face_landmarker_model') in [ 'many', 'peppa_wutz' ]:
if state_manager.get_item('face_aligner_model') in [ 'many', 'peppa_wutz' ]:
face_landmark_peppa_wutz, face_landmark_score_peppa_wutz = detect_with_peppa_wutz(vision_frame, bounding_box, face_angle)
if face_landmark_score_2dfan4 > face_landmark_score_peppa_wutz - 0.2:
@@ -205,10 +205,10 @@ def estimate_face_landmark_68_5(face_landmark_5 : FaceLandmark5) -> FaceLandmark
def forward_with_2dfan4(crop_vision_frame : VisionFrame) -> Tuple[Prediction, Prediction]:
face_landmarker = get_inference_pool().get('2dfan4')
face_aligner = get_inference_pool().get('2dfan4')
with conditional_thread_semaphore():
prediction = face_landmarker.run(None,
prediction = face_aligner.run(None,
{
'input': [ crop_vision_frame ]
})
@@ -217,10 +217,10 @@ def forward_with_2dfan4(crop_vision_frame : VisionFrame) -> Tuple[Prediction, Pr
def forward_with_peppa_wutz(crop_vision_frame : VisionFrame) -> Prediction:
face_landmarker = get_inference_pool().get('peppa_wutz')
face_aligner = get_inference_pool().get('peppa_wutz')
with conditional_thread_semaphore():
prediction = face_landmarker.run(None,
prediction = face_aligner.run(None,
{
'input': crop_vision_frame
})[0]
@@ -229,10 +229,10 @@ def forward_with_peppa_wutz(crop_vision_frame : VisionFrame) -> Prediction:
def forward_fan_68_5(face_landmark_5 : FaceLandmark5) -> FaceLandmark68:
face_landmarker = get_inference_pool().get('fan_68_5')
face_aligner = get_inference_pool().get('fan_68_5')
with conditional_thread_semaphore():
face_landmark_68_5 = face_landmarker.run(None,
face_landmark_68_5 = face_aligner.run(None,
{
'input': [ face_landmark_5 ]
})[0][0]
+4 -4
View File
@@ -4,10 +4,10 @@ import numpy
from facefusion import face_store, state_manager
from facefusion.common_helper import get_first, get_middle
from facefusion.face_aligner import detect_face_landmark, estimate_face_landmark_68_5
from facefusion.face_classifier import classify_face
from facefusion.face_detector import detect_faces, detect_faces_by_angle
from facefusion.face_helper import apply_nms, average_points, convert_to_face_landmark_5, estimate_face_angle, get_nms_threshold
from facefusion.face_landmarker import detect_face_landmark, estimate_face_landmark_68_5
from facefusion.face_recognizer import calculate_face_embedding
from facefusion.types import BoundingBox, Face, FaceLandmark5, FaceLandmarkSet, FaceScoreSet, Score, VisionFrame
from facefusion.vision import is_vision_frame
@@ -28,9 +28,9 @@ def create_faces(vision_frame : VisionFrame, bounding_boxes : List[BoundingBox],
face_landmark_score_68 = 0.0
face_angle = estimate_face_angle(face_landmark_68_5)
if state_manager.get_item('face_landmarker_score') > 0:
if state_manager.get_item('face_aligner_score') > 0:
face_landmark_68, face_landmark_score_68 = detect_face_landmark(vision_frame, bounding_box, face_angle)
if face_landmark_score_68 > state_manager.get_item('face_landmarker_score'):
if face_landmark_score_68 > state_manager.get_item('face_aligner_score'):
face_landmark_5_68 = convert_to_face_landmark_5(face_landmark_68)
face_landmark_set : FaceLandmarkSet =\
@@ -43,7 +43,7 @@ def create_faces(vision_frame : VisionFrame, bounding_boxes : List[BoundingBox],
face_score_set : FaceScoreSet =\
{
'detector': face_score,
'landmarker': face_landmark_score_68
'aligner': face_landmark_score_68
}
face_embedding, face_embedding_norm = calculate_face_embedding(vision_frame, face_landmark_set.get('5/68'))
gender, age, race = classify_face(vision_frame, face_landmark_set.get('5/68'))
+2 -2
View File
@@ -112,8 +112,8 @@ LOCALES : Locales =\
'face_detector_margin': 'apply top, right, bottom and left margin to the frame',
'face_detector_angles': 'specify the angles to rotate the frame before detecting faces',
'face_detector_score': 'filter the detected faces based on the confidence score',
'face_landmarker_model': 'choose the model responsible for detecting the face landmarks',
'face_landmarker_score': 'filter the detected face landmarks based on the confidence score',
'face_aligner_model': 'choose the model responsible for aligning the faces',
'face_aligner_score': 'filter the detected face alignments based on the confidence score',
'face_selector_mode': 'use reference based tracking or simple matching',
'face_selector_order': 'specify the order of the detected faces',
'face_selector_age_start': 'filter the detected faces based on the starting age',
@@ -9,7 +9,7 @@ import numpy
import facefusion.capability_store
import facefusion.choices
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import create_int_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_creator import scale_face
@@ -152,7 +152,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -9,7 +9,7 @@ from cv2.typing import Size
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import create_int_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url_by_provider
from facefusion.face_creator import scale_face
@@ -304,7 +304,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -8,7 +8,7 @@ import numpy
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import create_int_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_creator import scale_face
@@ -136,7 +136,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -7,7 +7,7 @@ import numpy
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, logger, state_manager, translator, video_manager
from facefusion.common_helper import get_middle
from facefusion.face_creator import scale_face
from facefusion.face_helper import warp_face_by_face_landmark_5
@@ -53,7 +53,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -8,7 +8,7 @@ import numpy
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import create_float_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_creator import scale_face
@@ -274,7 +274,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -7,7 +7,7 @@ import numpy
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import create_float_metavar, create_int_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_creator import scale_face
@@ -330,7 +330,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -9,7 +9,7 @@ import numpy
import facefusion.capability_store
import facefusion.choices
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager
from facefusion.common_helper import get_first, get_middle, is_macos
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.execution import has_execution_provider
@@ -567,7 +567,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer ]
def pre_check() -> bool:
@@ -8,7 +8,7 @@ import numpy
import facefusion.capability_store
import facefusion.jobs.job_manager
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager, voice_extractor
from facefusion import config, content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, inference_manager, logger, state_manager, translator, video_manager, voice_extractor
from facefusion.audio import read_static_voice
from facefusion.common_helper import create_float_metavar, get_middle
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
@@ -161,7 +161,7 @@ def apply_args(args : Args, apply_state_item : ApplyStateItem) -> None:
def get_common_modules() -> List[ModuleType]:
return [ content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, voice_extractor ]
return [ content_analyser, face_aligner, face_classifier, face_detector, face_masker, face_recognizer, voice_extractor ]
def pre_check() -> bool:
+14 -14
View File
@@ -287,30 +287,30 @@ def create_face_detector_program() -> ArgumentParser:
return program
def create_face_landmarker_program() -> ArgumentParser:
def create_face_aligner_program() -> ArgumentParser:
program = ArgumentParser(add_help = False)
group_face_landmarker = program.add_argument_group('face landmarker')
group_face_aligner = program.add_argument_group('face aligner')
capability_store.register_capability_set(
[
group_face_landmarker.add_argument(
'--face-landmarker-model',
help = translator.get('help.face_landmarker_model'),
default = config.get_str_value('face_landmarker', 'face_landmarker_model', '2dfan4'),
choices = facefusion.choices.face_landmarker_models
group_face_aligner.add_argument(
'--face-aligner-model',
help = translator.get('help.face_aligner_model'),
default = config.get_str_value('face_aligner', 'face_aligner_model', '2dfan4'),
choices = facefusion.choices.face_aligner_models
)
],
scopes = [ 'api', 'cli' ]
)
capability_store.register_capability_set(
[
group_face_landmarker.add_argument(
'--face-landmarker-score',
help = translator.get('help.face_landmarker_score'),
group_face_aligner.add_argument(
'--face-aligner-score',
help = translator.get('help.face_aligner_score'),
type = float,
default = config.get_float_value('face_landmarker', 'face_landmarker_score', '0.5'),
choices = facefusion.choices.face_landmarker_score_range,
metavar = create_float_metavar(facefusion.choices.face_landmarker_score_range)
default = config.get_float_value('face_aligner', 'face_aligner_score', '0.5'),
choices = facefusion.choices.face_aligner_score_range,
metavar = create_float_metavar(facefusion.choices.face_aligner_score_range)
)
],
scopes = [ 'api', 'cli' ]
@@ -1047,7 +1047,7 @@ def collect_step_program() -> ArgumentParser:
parents =
[
create_face_detector_program(),
create_face_landmarker_program(),
create_face_aligner_program(),
create_face_selector_program(),
create_face_tracker_program(),
create_face_masker_program(),
+6 -6
View File
@@ -30,7 +30,7 @@ FaceLandmarkSet = TypedDict('FaceLandmarkSet',
FaceScoreSet = TypedDict('FaceScoreSet',
{
'detector' : Score,
'landmarker' : Score
'aligner' : Score
})
Embedding : TypeAlias = NDArray[numpy.float64]
@@ -177,7 +177,7 @@ TableHeader : TypeAlias = str
TableContent : TypeAlias = Any
FaceDetectorModel = Literal['many', 'retinaface', 'scrfd', 'yolo_face', 'yunet']
FaceLandmarkerModel = Literal['many', '2dfan4', 'peppa_wutz']
FaceAlignerModel = Literal['many', '2dfan4', 'peppa_wutz']
FaceDetectorSet : TypeAlias = Dict[FaceDetectorModel, List[str]]
FaceSelectorMode = Literal['many', 'one', 'reference']
FaceSelectorOrder = Literal['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best']
@@ -523,8 +523,8 @@ StateKey = Literal\
'face_detector_margin',
'face_detector_angles',
'face_detector_score',
'face_landmarker_model',
'face_landmarker_score',
'face_aligner_model',
'face_aligner_score',
'face_selector_mode',
'face_selector_order',
'face_selector_gender',
@@ -599,8 +599,8 @@ State = TypedDict('State',
'face_detector_margin' : Margin,
'face_detector_angles' : List[Angle],
'face_detector_score' : Score,
'face_landmarker_model' : FaceLandmarkerModel,
'face_landmarker_score' : Score,
'face_aligner_model' : FaceAlignerModel,
'face_aligner_score' : Score,
'face_selector_mode' : FaceSelectorMode,
'face_selector_order' : FaceSelectorOrder,
'face_selector_race' : FaceSelectorRace,
+5 -5
View File
@@ -2,7 +2,7 @@
import numpy
import pytest
from facefusion import face_classifier, face_detector, face_landmarker, face_recognizer, ffmpeg, ffmpeg_builder, process_manager, state_manager
from facefusion import face_aligner, face_classifier, face_detector, face_recognizer, ffmpeg, ffmpeg_builder, process_manager, state_manager
from facefusion.download import conditional_download
from facefusion.face_creator import average_face_geometry, get_many_faces, get_one_face, refill_faces
from facefusion.face_store import clear_faces
@@ -38,12 +38,12 @@ def before_all() -> None:
state_manager.init_item('face_detector_size', '640x640')
state_manager.init_item('face_detector_margin', (0, 0, 0, 0))
state_manager.init_item('face_detector_score', 0.5)
state_manager.init_item('face_landmarker_model', 'many')
state_manager.init_item('face_landmarker_score', 0.5)
state_manager.init_item('face_aligner_model', 'many')
state_manager.init_item('face_aligner_score', 0.5)
face_classifier.pre_check()
face_detector.pre_check()
face_landmarker.pre_check()
face_aligner.pre_check()
face_recognizer.pre_check()
@@ -51,7 +51,7 @@ def before_all() -> None:
def before_each() -> None:
face_classifier.clear_inference_pool()
face_detector.clear_inference_pool()
face_landmarker.clear_inference_pool()
face_aligner.clear_inference_pool()
face_recognizer.clear_inference_pool()
clear_faces()
+5 -5
View File
@@ -1,7 +1,7 @@
import numpy
import pytest
from facefusion import face_classifier, face_detector, face_landmarker, face_recognizer, state_manager
from facefusion import face_aligner, face_classifier, face_detector, face_recognizer, state_manager
from facefusion.common_helper import get_first, get_last
from facefusion.download import conditional_download
from facefusion.face_creator import get_many_faces, get_one_face
@@ -26,13 +26,13 @@ def before_all() -> None:
state_manager.init_item('face_detector_size', '640x640')
state_manager.init_item('face_detector_margin', (0, 0, 0, 0))
state_manager.init_item('face_detector_score', 0.5)
state_manager.init_item('face_landmarker_model', 'many')
state_manager.init_item('face_landmarker_score', 0.5)
state_manager.init_item('face_aligner_model', 'many')
state_manager.init_item('face_aligner_score', 0.5)
state_manager.init_item('face_tracker_score', 0.3)
face_classifier.pre_check()
face_detector.pre_check()
face_landmarker.pre_check()
face_aligner.pre_check()
face_recognizer.pre_check()
@@ -40,7 +40,7 @@ def before_all() -> None:
def before_each() -> None:
face_classifier.clear_inference_pool()
face_detector.clear_inference_pool()
face_landmarker.clear_inference_pool()
face_aligner.clear_inference_pool()
face_recognizer.clear_inference_pool()
clear_faces()