diff --git a/roop/typing.py b/roop/typing.py index 6551a07c9..bad730f48 100644 --- a/roop/typing.py +++ b/roop/typing.py @@ -11,4 +11,4 @@ FaceAnalyserGender = Literal['male', 'female'] TempFrameFormat = Literal['jpg', 'png'] OutputVideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc'] -LogLevel = Literal['error'] \ No newline at end of file +LogLevel = Literal['error'] diff --git a/roop/uis/__components__/output.py b/roop/uis/__components__/output.py index a0bf66a49..fa0aef157 100644 --- a/roop/uis/__components__/output.py +++ b/roop/uis/__components__/output.py @@ -22,14 +22,15 @@ def render() -> None: with gradio.Row(): START_BUTTON = gradio.Button('Start') CLEAR_BUTTON = gradio.Button('Clear') - OUTPUT_IMAGE = gradio.Image( - label='OUTPUT', - visible=False - ) - OUTPUT_VIDEO = gradio.Video( - label='OUTPUT', - visible=False - ) + with gradio.Row(): + with gradio.Box(): + OUTPUT_IMAGE = gradio.Image( + label='OUTPUT' + ) + OUTPUT_VIDEO = gradio.Video( + label='OUTPUT', + visible=False + ) def listen() -> None: diff --git a/roop/uis/__components__/processors.py b/roop/uis/__components__/processor.py similarity index 100% rename from roop/uis/__components__/processors.py rename to roop/uis/__components__/processor.py diff --git a/roop/uis/__components__/temp_frame.py b/roop/uis/__components__/temp_frame.py new file mode 100644 index 000000000..6c2d35793 --- /dev/null +++ b/roop/uis/__components__/temp_frame.py @@ -0,0 +1,43 @@ +from typing import List, Optional +import gradio + +import roop.globals +from roop.processors.frame.core import list_frame_processors_names, load_frame_processor_module, clear_frame_processors_modules +from roop.typing import TempFrameFormat +from roop.uis import core as ui +from roop.uis.typing import Update + +TEMP_FRAME_FORMAT_DROPDOWN: Optional[gradio.Dropdown] = None +TEMP_FRAME_QUALITY_SLIDER: Optional[gradio.Slider] = None + + +def render() -> None: + global TEMP_FRAME_FORMAT_DROPDOWN + global TEMP_FRAME_QUALITY_SLIDER + + with gradio.Box(): + TEMP_FRAME_FORMAT_DROPDOWN = gradio.Dropdown( + label='TEMP FRAME FORMAT', + choices=['jpg', 'png'], + value=roop.globals.temp_frame_format + ) + TEMP_FRAME_QUALITY_SLIDER = gradio.Slider( + label='TEMP FRAME QUALITY', + value=roop.globals.temp_frame_quality, + step=1 + ) + + +def listen() -> None: + TEMP_FRAME_FORMAT_DROPDOWN.select(update_temp_frame_format, inputs=TEMP_FRAME_FORMAT_DROPDOWN, outputs=TEMP_FRAME_FORMAT_DROPDOWN) + TEMP_FRAME_QUALITY_SLIDER.change(update_temp_frame_quality, inputs=TEMP_FRAME_QUALITY_SLIDER, outputs=TEMP_FRAME_QUALITY_SLIDER) + + +def update_temp_frame_format(temp_frame_format: TempFrameFormat) -> Update: + roop.globals.temp_frame_format = temp_frame_format + return gradio.update(value=temp_frame_format) + + +def update_temp_frame_quality(temp_frame_quality: int) -> Update: + roop.globals.temp_frame_quality = temp_frame_quality + return gradio.update(value=temp_frame_quality) diff --git a/roop/uis/__layouts__/default.py b/roop/uis/__layouts__/default.py index e03067124..5e46e5bb3 100644 --- a/roop/uis/__layouts__/default.py +++ b/roop/uis/__layouts__/default.py @@ -1,32 +1,33 @@ import gradio -from roop.uis.__components__ import processors, execution, settings, source, target, preview, trim_frame, face_analyser, face_selector, output +from roop.uis.__components__ import processor, execution, temp_frame, settings, source, target, preview, trim_frame, face_analyser, face_selector, output def render() -> gradio.Blocks: with gradio.Blocks() as layout: with gradio.Row(): with gradio.Column(scale=2): - processors.render() + processor.render() execution.render() + temp_frame.render() settings.render() with gradio.Column(scale=1): source.render() target.render() + output.render() with gradio.Column(scale=3): preview.render() trim_frame.render() face_selector.render() face_analyser.render() - with gradio.Row(): - output.render() return layout def listen() -> None: - processors.listen() + processor.listen() execution.listen() settings.listen() + temp_frame.listen() source.listen() target.listen() preview.listen() diff --git a/roop/uis/core.py b/roop/uis/core.py index 4a19be020..bc43b27fd 100644 --- a/roop/uis/core.py +++ b/roop/uis/core.py @@ -19,7 +19,7 @@ def init() -> None: - with gradio.Blocks(theme=get_theme(), title=roop.metadata.name) as ui: + with gradio.Blocks(theme=get_theme(), title=roop.metadata.name + ' ' + roop.metadata.version) as ui: for ui_layout in roop.globals.ui_layouts: ui_layout_module = load_ui_layout_module(ui_layout) ui_layout_module.render()