diff --git a/facefusion/content_analyser.py b/facefusion/content_analyser.py index 7a3cd4e1..cf21f06f 100644 --- a/facefusion/content_analyser.py +++ b/facefusion/content_analyser.py @@ -167,10 +167,12 @@ def analyse_video(video_path : str, trim_frame_start : int, trim_frame_end : int for frame_number in frame_range: if frame_number % int(video_fps) == 0: vision_frame = read_video_frame(video_path, frame_number) - total += 1 - if analyse_frame(vision_frame): - counter += 1 + if numpy.any(vision_frame): + total += 1 + + if analyse_frame(vision_frame): + counter += 1 if counter > 0 and total > 0: rate = counter / total * 100 diff --git a/facefusion/core.py b/facefusion/core.py index 2027d8c1..e4aef22d 100755 --- a/facefusion/core.py +++ b/facefusion/core.py @@ -115,7 +115,7 @@ def common_pre_check() -> bool: content_analyser_content = inspect.getsource(content_analyser).encode() content_analyser_hash = hash_helper.create_hash(content_analyser_content) - return all(module.pre_check() for module in common_modules) and content_analyser_hash == '05843613' + return all(module.pre_check() for module in common_modules) and content_analyser_hash == '975d67d6' def processors_pre_check() -> bool: diff --git a/facefusion/uis/components/preview.py b/facefusion/uis/components/preview.py index 59eaa03d..67af369a 100755 --- a/facefusion/uis/components/preview.py +++ b/facefusion/uis/components/preview.py @@ -51,10 +51,13 @@ def render() -> None: if is_video(state_manager.get_item('target_path')): temp_vision_frame = read_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) reference_vision_frame = read_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) - preview_vision_frame = process_preview_frame(reference_vision_frame, source_vision_frames, source_audio_frame, source_voice_frame, temp_vision_frame, uis_choices.preview_modes[0], uis_choices.preview_resolutions[-1]) - preview_image_options['value'] = cv2.cvtColor(preview_vision_frame, cv2.COLOR_BGR2RGB) - preview_image_options['elem_classes'] = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ] - preview_image_options['visible'] = True + + if numpy.any(temp_vision_frame): + preview_vision_frame = process_preview_frame(reference_vision_frame, source_vision_frames, source_audio_frame, source_voice_frame, temp_vision_frame, uis_choices.preview_modes[0], uis_choices.preview_resolutions[-1]) + preview_image_options['value'] = cv2.cvtColor(preview_vision_frame, cv2.COLOR_BGR2RGB) + preview_image_options['elem_classes'] = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ] + preview_image_options['visible'] = True + PREVIEW_IMAGE = gradio.Image(**preview_image_options) register_ui_component('preview_image', PREVIEW_IMAGE) @@ -209,11 +212,13 @@ def update_preview_image(preview_mode : PreviewMode, preview_resolution : str, f if is_video(state_manager.get_item('target_path')): reference_vision_frame = read_video_frame(state_manager.get_item('target_path'), state_manager.get_item('reference_frame_number')) temp_vision_frame = read_video_frame(state_manager.get_item('target_path'), frame_number) - temp_vision_mask = extract_vision_mask(temp_vision_frame) - temp_vision_frame = merge_vision_mask(temp_vision_frame, temp_vision_mask) - preview_vision_frame = process_preview_frame(reference_vision_frame, source_vision_frames, source_audio_frame, source_voice_frame, temp_vision_frame, preview_mode, preview_resolution) - preview_vision_frame = cv2.cvtColor(preview_vision_frame, cv2.COLOR_BGRA2RGBA) - return gradio.Image(value = preview_vision_frame, elem_classes = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ]) + + if numpy.any(temp_vision_frame): + temp_vision_mask = extract_vision_mask(temp_vision_frame) + temp_vision_frame = merge_vision_mask(temp_vision_frame, temp_vision_mask) + preview_vision_frame = process_preview_frame(reference_vision_frame, source_vision_frames, source_audio_frame, source_voice_frame, temp_vision_frame, preview_mode, preview_resolution) + preview_vision_frame = cv2.cvtColor(preview_vision_frame, cv2.COLOR_BGRA2RGBA) + return gradio.Image(value = preview_vision_frame, elem_classes = [ 'image-preview', 'is-' + detect_frame_orientation(preview_vision_frame) ]) return gradio.Image(value = None, elem_classes = None)