diff --git a/tests/test_audio.py b/tests/test_audio.py index ca3fb853..88a65d5e 100644 --- a/tests/test_audio.py +++ b/tests/test_audio.py @@ -1,7 +1,7 @@ -import subprocess import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.audio import get_audio_frame, read_static_audio from facefusion.download import conditional_download from .helper import get_test_example_file, get_test_examples_directory @@ -9,11 +9,18 @@ from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.mp3'), get_test_example_file('source.wav') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('source.mp3')), + ffmpeg_builder.set_output(get_test_example_file('source.wav')) + ) + ) def test_get_audio_frame() -> None: diff --git a/tests/test_cli_age_modifier.py b/tests/test_cli_age_modifier.py index 2184ac88..5ac84a4c 100644 --- a/tests/test_cli_age_modifier.py +++ b/tests/test_cli_age_modifier.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,11 +11,22 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_background_remover.py b/tests/test_cli_background_remover.py index dab7f62d..460565ee 100644 --- a/tests/test_cli_background_remover.py +++ b/tests/test_cli_background_remover.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_batch_runner.py b/tests/test_cli_batch_runner.py index 963e5a95..b26d34db 100644 --- a/tests/test_cli_batch_runner.py +++ b/tests/test_cli_batch_runner.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p-batch-1.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '2', get_test_example_file('target-240p-batch-2.jpg') ]) + + for frame_number in [ 1, 2 ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + str(frame_number) + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p-batch-' + str(frame_number) + '.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_expression_restorer.py b/tests/test_cli_expression_restorer.py index 236cf78f..2d4632c8 100644 --- a/tests/test_cli_expression_restorer.py +++ b/tests/test_cli_expression_restorer.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,11 +11,22 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_face_debugger.py b/tests/test_cli_face_debugger.py index b393881d..c78f5293 100644 --- a/tests/test_cli_face_debugger.py +++ b/tests/test_cli_face_debugger.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_face_editor.py b/tests/test_cli_face_editor.py index 27b289ec..adcd3d4a 100644 --- a/tests/test_cli_face_editor.py +++ b/tests/test_cli_face_editor.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_face_enhancer.py b/tests/test_cli_face_enhancer.py index c1e5128f..a5dece12 100644 --- a/tests/test_cli_face_enhancer.py +++ b/tests/test_cli_face_enhancer.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_face_swapper.py b/tests/test_cli_face_swapper.py index be68cde5..708fc479 100644 --- a/tests/test_cli_face_swapper.py +++ b/tests/test_cli_face_swapper.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_frame_colorizer.py b/tests/test_cli_frame_colorizer.py index 38774c0a..6a19a5a1 100644 --- a/tests/test_cli_frame_colorizer.py +++ b/tests/test_cli_frame_colorizer.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,13 +11,37 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', '-vf', 'hue=s=0', get_test_example_file('target-240p-0sat.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'hue=s=0', get_test_example_file('target-240p-0sat.mp4') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + [ + '-vf', + 'hue=s=0' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p-0sat.jpg')) + ) + ) + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vf', + 'hue=s=0' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p-0sat.mp4')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_frame_enhancer.py b/tests/test_cli_frame_enhancer.py index 7892fa2d..69c25806 100644 --- a/tests/test_cli_frame_enhancer.py +++ b/tests/test_cli_frame_enhancer.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_job_manager.py b/tests/test_cli_job_manager.py index a20a2728..6030b898 100644 --- a/tests/test_cli_job_manager.py +++ b/tests/test_cli_job_manager.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, count_step_total, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_job_file @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_job_runner.py b/tests/test_cli_job_runner.py index 23d23cba..26ec067d 100644 --- a/tests/test_cli_job_runner.py +++ b/tests/test_cli_job_runner.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs, move_job_file, set_steps_status from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,12 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_lip_syncer.py b/tests/test_cli_lip_syncer.py index c0e5cc33..9e01fc26 100644 --- a/tests/test_cli_lip_syncer.py +++ b/tests/test_cli_lip_syncer.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from .helper import get_test_example_file, get_test_examples_directory, get_test_jobs_directory, get_test_output_file, is_test_output_file, prepare_test_output_directory @@ -10,13 +11,24 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_cli_output_scale.py b/tests/test_cli_output_scale.py index 7c187fc3..70d2c374 100644 --- a/tests/test_cli_output_scale.py +++ b/tests/test_cli_output_scale.py @@ -3,6 +3,7 @@ import sys import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.jobs.job_manager import clear_jobs, init_jobs from facefusion.types import Resolution, Scale @@ -12,12 +13,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_face_creator.py b/tests/test_face_creator.py index ba59c057..043145b0 100644 --- a/tests/test_face_creator.py +++ b/tests/test_face_creator.py @@ -1,9 +1,8 @@ -import subprocess import numpy import pytest -from facefusion import face_classifier, face_detector, face_landmarker, face_recognizer, state_manager +from facefusion import face_classifier, face_detector, face_landmarker, 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 @@ -13,13 +12,23 @@ from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.8:ih*0.8', get_test_example_file('source-80crop.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.7:ih*0.7', get_test_example_file('source-70crop.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.6:ih*0.6', get_test_example_file('source-60crop.jpg') ]) + + for crop_scale in [ 80, 70, 60 ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('source.jpg')), + [ + '-vf', + 'crop=iw*0.' + str(crop_scale) + ':ih*0.' + str(crop_scale) + ], + ffmpeg_builder.set_output(get_test_example_file('source-' + str(crop_scale) + 'crop.jpg')) + ) + ) state_manager.init_item('execution_device_ids', [ 0 ]) state_manager.init_item('execution_providers', [ 'cpu' ]) diff --git a/tests/test_face_detector.py b/tests/test_face_detector.py index 01b0b4c1..ecba7db1 100644 --- a/tests/test_face_detector.py +++ b/tests/test_face_detector.py @@ -1,8 +1,7 @@ -import subprocess import pytest -from facefusion import face_detector, state_manager +from facefusion import face_detector, ffmpeg, ffmpeg_builder, process_manager, state_manager from facefusion.download import conditional_download from facefusion.face_detector import detect_with_retinaface, detect_with_scrfd, detect_with_yolo_face, detect_with_yunet from facefusion.face_helper import apply_nms, get_nms_threshold @@ -12,13 +11,23 @@ from .helper import get_test_example_file, get_test_examples_directory @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.8:ih*0.8', get_test_example_file('source-80crop.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.7:ih*0.7', get_test_example_file('source-70crop.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.jpg'), '-vf', 'crop=iw*0.6:ih*0.6', get_test_example_file('source-60crop.jpg') ]) + + for crop_scale in [ 80, 70, 60 ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('source.jpg')), + [ + '-vf', + 'crop=iw*0.' + str(crop_scale) + ':ih*0.' + str(crop_scale) + ], + ffmpeg_builder.set_output(get_test_example_file('source-' + str(crop_scale) + 'crop.jpg')) + ) + ) state_manager.init_item('execution_device_ids', [ 0 ]) state_manager.init_item('execution_providers', [ 'cpu' ]) diff --git a/tests/test_ffmpeg.py b/tests/test_ffmpeg.py index 393600ba..3e2aef1e 100644 --- a/tests/test_ffmpeg.py +++ b/tests/test_ffmpeg.py @@ -24,6 +24,7 @@ def before_all() -> None: 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.mp3', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) + ffmpeg.run_ffmpeg( ffmpeg_builder.chain( ffmpeg_builder.set_input(get_test_example_file('source.mp3')), diff --git a/tests/test_ffprobe.py b/tests/test_ffprobe.py index 4718dcf1..ba6d4c7d 100644 --- a/tests/test_ffprobe.py +++ b/tests/test_ffprobe.py @@ -1,8 +1,7 @@ -import subprocess import pytest -from facefusion import process_manager +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.ffprobe import extract_audio_metadata, extract_video_metadata from .helper import get_test_example_file, get_test_examples_directory @@ -18,9 +17,23 @@ def before_all() -> None: 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('source.mp3'), '-t', '1.9', '-ar', '48000', '-ac', '2', get_test_example_file('source-48000khz-2ch.wav') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-t', '1', get_test_example_file('target-240p-1s.mkv') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-t', '1', get_test_example_file('target-240p-1s.mov') ]) + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('source.mp3')), + ffmpeg_builder.set_video_duration(1.9), + ffmpeg_builder.set_audio_sample_rate(48000), + ffmpeg_builder.set_audio_channel_total(2), + ffmpeg_builder.set_output(get_test_example_file('source-48000khz-2ch.wav')) + ) + ) + for video_format in [ 'mkv', 'mov' ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + ffmpeg_builder.set_video_duration(1), + ffmpeg_builder.set_output(get_test_example_file('target-240p-1s.' + video_format)) + ) + ) def test_extract_audio_metadata() -> None: diff --git a/tests/test_job_runner.py b/tests/test_job_runner.py index 4e0983ae..48f28ef2 100644 --- a/tests/test_job_runner.py +++ b/tests/test_job_runner.py @@ -1,7 +1,7 @@ -import subprocess import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.download import conditional_download from facefusion.filesystem import copy_file from facefusion.jobs.job_manager import add_step, clear_jobs, create_job, init_jobs, move_job_file, submit_job, submit_jobs @@ -12,12 +12,23 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p.jpg')) + ) + ) @pytest.fixture(scope = 'function', autouse = True) diff --git a/tests/test_vision.py b/tests/test_vision.py index 84bac2d7..7c6006fc 100644 --- a/tests/test_vision.py +++ b/tests/test_vision.py @@ -1,9 +1,9 @@ import os -import subprocess import numpy import pytest +from facefusion import ffmpeg, ffmpeg_builder, process_manager from facefusion.common_helper import is_linux from facefusion.download import conditional_download from facefusion.vision import calculate_histogram_difference, count_trim_frame_total, count_video_frame_total, detect_image_resolution, detect_video_duration, detect_video_fps, detect_video_resolution, match_frame_color, normalize_resolution, pack_resolution, predict_video_frame_total, read_image, read_video_chunk, read_video_frame, restrict_image_resolution, restrict_trim_frame, restrict_video_fps, restrict_video_resolution, scale_resolution, select_video_frames, unpack_resolution, write_image @@ -12,23 +12,88 @@ from .helper import get_test_example_file, get_test_examples_directory, get_test @pytest.fixture(scope = 'module', autouse = True) def before_all() -> None: + process_manager.start() conditional_download(get_test_examples_directory(), [ 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/source.jpg', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-240p.mp4', 'https://github.com/facefusion/facefusion-assets/releases/download/examples-3.0.0/target-1080p.mp4' ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('target-240p.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', get_test_example_file('目标-240p.webp') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vframes', '1', get_test_example_file('target-1080p.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', '-vf', 'hue=s=0', get_test_example_file('target-240p-0sat.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vframes', '1', '-vf', 'transpose=0', get_test_example_file('target-240p-90deg.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vframes', '1', '-vf', 'transpose=0', get_test_example_file('target-1080p-90deg.jpg') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=25', get_test_example_file('target-240p-25fps.mp4') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=30', get_test_example_file('target-240p-30fps.mp4') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'fps=60', get_test_example_file('target-240p-60fps.mp4') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-240p.mp4'), '-vf', 'transpose=0', get_test_example_file('target-240p-90deg.mp4') ]) - subprocess.run([ 'ffmpeg', '-i', get_test_example_file('target-1080p.mp4'), '-vf', 'transpose=0', get_test_example_file('target-1080p-90deg.mp4') ]) + + for target_name in [ 'target-240p', 'target-1080p' ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file(target_name + '.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file(target_name + '.jpg')) + ) + ) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + ffmpeg_builder.set_output(get_test_example_file('目标-240p.webp')) + ) + ) + + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + [ + '-vframes', + '1' + ], + [ + '-vf', + 'hue=s=0' + ], + ffmpeg_builder.set_output(get_test_example_file('target-240p-0sat.jpg')) + ) + ) + + for target_name in [ 'target-240p', 'target-1080p' ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file(target_name + '.mp4')), + [ + '-vframes', + '1' + ], + [ + '-vf', + 'transpose=0' + ], + ffmpeg_builder.set_output(get_test_example_file(target_name + '-90deg.jpg')) + ) + ) + + for video_fps in [ 25, 30, 60 ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file('target-240p.mp4')), + ffmpeg_builder.set_video_fps(video_fps), + ffmpeg_builder.set_output(get_test_example_file('target-240p-' + str(video_fps) + 'fps.mp4')) + ) + ) + + for target_name in [ 'target-240p', 'target-1080p' ]: + ffmpeg.run_ffmpeg( + ffmpeg_builder.chain( + ffmpeg_builder.set_input(get_test_example_file(target_name + '.mp4')), + [ + '-vf', + 'transpose=0' + ], + ffmpeg_builder.set_output(get_test_example_file(target_name + '-90deg.mp4')) + ) + ) @pytest.fixture(scope = 'function', autouse = True)