tonyassi's picture
Upload 96 files
9ae3d29
raw
history blame contribute delete
No virus
2.05 kB
from typing import Tuple, Optional
import gradio
import DeepFakeAI.globals
from DeepFakeAI import wording
from DeepFakeAI.core import conditional_process
from DeepFakeAI.uis.typing import Update
from DeepFakeAI.utilities import is_image, is_video, normalize_output_path, clear_temp
OUTPUT_START_BUTTON : Optional[gradio.Button] = None
OUTPUT_CLEAR_BUTTON : Optional[gradio.Button] = None
OUTPUT_IMAGE : Optional[gradio.Image] = None
OUTPUT_VIDEO : Optional[gradio.Video] = None
def render() -> None:
global OUTPUT_START_BUTTON
global OUTPUT_CLEAR_BUTTON
global OUTPUT_IMAGE
global OUTPUT_VIDEO
with gradio.Row():
with gradio.Box():
OUTPUT_IMAGE = gradio.Image(
label = wording.get('output_image_or_video_label'),
visible = False
)
OUTPUT_VIDEO = gradio.Video(
label = wording.get('output_image_or_video_label')
)
with gradio.Row():
OUTPUT_START_BUTTON = gradio.Button(wording.get('start_button_label'))
OUTPUT_CLEAR_BUTTON = gradio.Button(wording.get('clear_button_label'))
def listen() -> None:
OUTPUT_START_BUTTON.click(update, outputs = [ OUTPUT_IMAGE, OUTPUT_VIDEO ])
OUTPUT_CLEAR_BUTTON.click(clear, outputs = [ OUTPUT_IMAGE, OUTPUT_VIDEO ])
def update() -> Tuple[Update, Update]:
DeepFakeAI.globals.output_path = normalize_output_path(DeepFakeAI.globals.source_path, DeepFakeAI.globals.target_path, '.')
if DeepFakeAI.globals.output_path:
conditional_process()
if is_image(DeepFakeAI.globals.output_path):
return gradio.update(value = DeepFakeAI.globals.output_path, visible = True), gradio.update(value = None, visible = False)
if is_video(DeepFakeAI.globals.output_path):
return gradio.update(value = None, visible = False), gradio.update(value = DeepFakeAI.globals.output_path, visible = True)
return gradio.update(value = None, visible = False), gradio.update(value = None, visible = False)
def clear() -> Tuple[Update, Update]:
if DeepFakeAI.globals.target_path:
clear_temp(DeepFakeAI.globals.target_path)
return gradio.update(value = None), gradio.update(value = None)