Feat/custom file format handling (#845)
* Purge filetype dependency, Rename file_extension to file_format, Introduce custom format detections * Changed a lot * Purge filetype dependency, Rename file_extension to file_format, Introduce custom format detections * Fix stuff * Fix stuff * Simplify all the is_ and has_ methods * Simplify all the is_ and has_ methods * Use the new helper on more places * Introduce are_ next to is_ and has_ * Get rid of the type-ignores * Add more video types
This commit is contained in:
@@ -7,7 +7,7 @@ from facefusion import process_manager, state_manager
|
||||
from facefusion.download import conditional_download
|
||||
from facefusion.ffmpeg import concat_video, extract_frames, read_audio_buffer, replace_audio, restore_audio
|
||||
from facefusion.filesystem import copy_file
|
||||
from facefusion.temp_helper import clear_temp_directory, create_temp_directory, get_temp_file_path, get_temp_frame_paths
|
||||
from facefusion.temp_helper import clear_temp_directory, create_temp_directory, get_temp_file_path, resolve_temp_frame_paths
|
||||
from .helper import get_test_example_file, get_test_examples_directory, get_test_output_file, prepare_test_output_directory
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ def test_extract_frames() -> None:
|
||||
create_temp_directory(target_path)
|
||||
|
||||
assert extract_frames(target_path, '452x240', 30.0, trim_frame_start, trim_frame_end) is True
|
||||
assert len(get_temp_frame_paths(target_path)) == frame_total
|
||||
assert len(resolve_temp_frame_paths(target_path)) == frame_total
|
||||
|
||||
clear_temp_directory(target_path)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import os.path
|
||||
import pytest
|
||||
|
||||
from facefusion.download import conditional_download
|
||||
from facefusion.filesystem import create_directory, filter_audio_paths, filter_image_paths, get_file_size, has_audio, has_image, in_directory, is_audio, is_directory, is_file, is_image, is_video, list_directory, remove_directory, same_file_extension
|
||||
from facefusion.filesystem import create_directory, filter_audio_paths, filter_image_paths, get_file_extension, get_file_format, get_file_size, has_audio, has_image, has_video, in_directory, is_audio, is_directory, is_file, is_image, is_video, remove_directory, resolve_file_paths, same_file_extension
|
||||
from .helper import get_test_example_file, get_test_examples_directory, get_test_outputs_directory
|
||||
|
||||
|
||||
@@ -18,13 +18,26 @@ def before_all() -> None:
|
||||
|
||||
|
||||
def test_get_file_size() -> None:
|
||||
assert get_file_size(get_test_example_file('source.jpg')) > 0
|
||||
assert get_file_size(get_test_example_file('source.jpg')) == 549458
|
||||
assert get_file_size('invalid') == 0
|
||||
|
||||
|
||||
def test_get_file_extension() -> None:
|
||||
assert get_file_extension('source.jpg') == '.jpg'
|
||||
assert get_file_extension('source.mp3') == '.mp3'
|
||||
assert get_file_extension('invalid') is None
|
||||
|
||||
|
||||
def test_get_file_format() -> None:
|
||||
assert get_file_format('source.jpg') == 'jpg'
|
||||
assert get_file_format('source.mp3') == 'mp3'
|
||||
assert get_file_format('invalid') is None
|
||||
|
||||
|
||||
def test_same_file_extension() -> None:
|
||||
assert same_file_extension([ 'target.jpg', 'output.jpg' ]) is True
|
||||
assert same_file_extension([ 'target.jpg', 'output.mp4' ]) is False
|
||||
assert same_file_extension('source.jpg', 'source.jpg') is True
|
||||
assert same_file_extension('source.jpg', 'source.mp3') is False
|
||||
assert same_file_extension('invalid', 'invalid') is False
|
||||
|
||||
|
||||
def test_is_file() -> None:
|
||||
@@ -33,18 +46,6 @@ def test_is_file() -> None:
|
||||
assert is_file('invalid') is False
|
||||
|
||||
|
||||
def test_is_directory() -> None:
|
||||
assert is_directory(get_test_examples_directory()) is True
|
||||
assert is_directory(get_test_example_file('source.jpg')) is False
|
||||
assert is_directory('invalid') is False
|
||||
|
||||
|
||||
def test_in_directory() -> None:
|
||||
assert in_directory(get_test_example_file('source.jpg')) is True
|
||||
assert in_directory('source.jpg') is False
|
||||
assert in_directory('invalid') is False
|
||||
|
||||
|
||||
def test_is_audio() -> None:
|
||||
assert is_audio(get_test_example_file('source.mp3')) is True
|
||||
assert is_audio(get_test_example_file('source.jpg')) is False
|
||||
@@ -77,6 +78,13 @@ def test_is_video() -> None:
|
||||
assert is_video('invalid') is False
|
||||
|
||||
|
||||
def test_has_video() -> None:
|
||||
assert has_video([ get_test_example_file('target-240p.mp4') ]) is True
|
||||
assert has_video([ get_test_example_file('target-240p.mp4'), get_test_example_file('source.mp3') ]) is True
|
||||
assert has_video([ get_test_example_file('source.mp3'), get_test_example_file('source.mp3') ]) is False
|
||||
assert has_video([ 'invalid' ]) is False
|
||||
|
||||
|
||||
def test_filter_audio_paths() -> None:
|
||||
assert filter_audio_paths([ get_test_example_file('source.jpg'), get_test_example_file('source.mp3') ]) == [ get_test_example_file('source.mp3') ]
|
||||
assert filter_audio_paths([ get_test_example_file('source.jpg'), get_test_example_file('source.jpg') ]) == []
|
||||
@@ -89,6 +97,15 @@ def test_filter_image_paths() -> None:
|
||||
assert filter_audio_paths([ 'invalid' ]) == []
|
||||
|
||||
|
||||
def test_resolve_file_paths() -> None:
|
||||
file_paths = resolve_file_paths(get_test_examples_directory())
|
||||
|
||||
for file_path in file_paths:
|
||||
assert file_path == get_test_example_file(file_path)
|
||||
|
||||
assert resolve_file_paths('invalid') == []
|
||||
|
||||
|
||||
def test_create_directory() -> None:
|
||||
create_directory_path = os.path.join(get_test_outputs_directory(), 'create_directory')
|
||||
|
||||
@@ -96,15 +113,6 @@ def test_create_directory() -> None:
|
||||
assert create_directory(get_test_example_file('source.jpg')) is False
|
||||
|
||||
|
||||
def test_list_directory() -> None:
|
||||
files = list_directory(get_test_examples_directory())
|
||||
|
||||
for file in files:
|
||||
assert file.get('path') == get_test_example_file(file.get('name') + file.get('extension'))
|
||||
|
||||
assert list_directory('invalid') is None
|
||||
|
||||
|
||||
def test_remove_directory() -> None:
|
||||
remove_directory_path = os.path.join(get_test_outputs_directory(), 'remove_directory')
|
||||
create_directory(remove_directory_path)
|
||||
@@ -112,3 +120,15 @@ def test_remove_directory() -> None:
|
||||
assert remove_directory(remove_directory_path) is True
|
||||
assert remove_directory(get_test_example_file('source.jpg')) is False
|
||||
assert remove_directory('invalid') is False
|
||||
|
||||
|
||||
def test_is_directory() -> None:
|
||||
assert is_directory(get_test_examples_directory()) is True
|
||||
assert is_directory(get_test_example_file('source.jpg')) is False
|
||||
assert is_directory('invalid') is False
|
||||
|
||||
|
||||
def test_in_directory() -> None:
|
||||
assert in_directory(get_test_example_file('source.jpg')) is True
|
||||
assert in_directory('source.jpg') is False
|
||||
assert in_directory('invalid') is False
|
||||
|
||||
@@ -4,7 +4,7 @@ import pytest
|
||||
|
||||
from facefusion.download import conditional_download
|
||||
from facefusion.vision import calc_histogram_difference, count_trim_frame_total, count_video_frame_total, create_image_resolutions, create_video_resolutions, detect_image_resolution, detect_video_duration, detect_video_fps, detect_video_resolution, get_video_frame, match_frame_color, normalize_resolution, pack_resolution, read_image, restrict_image_resolution, restrict_trim_frame, restrict_video_fps, restrict_video_resolution, unpack_resolution, write_image
|
||||
from .helper import get_test_example_file, get_test_examples_directory, prepare_test_output_directory, get_test_output_file
|
||||
from .helper import get_test_example_file, get_test_examples_directory, get_test_output_file, prepare_test_output_directory
|
||||
|
||||
|
||||
@pytest.fixture(scope = 'module', autouse = True)
|
||||
|
||||
Reference in New Issue
Block a user