Files
facefusion/facefusion/workflows/image_to_video.py
T

45 lines
958 B
Python

from functools import partial
from facefusion import process_manager, state_manager
from facefusion.types import ErrorCode
from facefusion.workflows.core import clear, setup
from facefusion.workflows.to_video import analyse_video, extract_frames, finalize_video, merge_frames, process_disk_frames, process_memory_frames, restore_audio
def process(start_time : float) -> ErrorCode:
tasks =\
[
analyse_video,
clear,
setup
]
if state_manager.get_item('workflow_strategy') == 'disk':
tasks.extend(
[
extract_frames,
process_disk_frames,
merge_frames
])
if state_manager.get_item('workflow_strategy') == 'memory':
tasks.append(process_memory_frames)
tasks.extend(
[
restore_audio,
partial(finalize_video, start_time),
clear
])
process_manager.start()
for task in tasks:
error_code = task() #type:ignore[operator]
if error_code > 0:
process_manager.end()
return error_code
process_manager.end()
return 0