mirror of
https://github.com/facefusion/facefusion.git
synced 2026-07-30 22:07:23 +02:00
45 lines
958 B
Python
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
|