Kokoro-FastAPI/ui/lib/components/output.py

51 lines
1.6 KiB
Python

from typing import Tuple
import gradio as gr
from .. import files
def create_output_column(disable_local_saving: bool = False) -> Tuple[gr.Column, dict]:
"""Create the output column with audio player and file list."""
with gr.Column(scale=1) as col:
gr.Markdown("### Latest Output")
audio_output = gr.Audio(label="Generated Speech", type="filepath")
# Create file-related components with visible=False when local saving is disabled
gr.Markdown("### Generated Files", visible=not disable_local_saving)
output_files = gr.Dropdown(
label="Previous Outputs",
choices=files.list_output_files() if not disable_local_saving else [],
value=None,
allow_custom_value=False,
visible=not disable_local_saving,
)
play_btn = gr.Button(
"▶️ Play Selected",
size="sm",
visible=not disable_local_saving,
)
selected_audio = gr.Audio(
label="Selected Output",
type="filepath",
visible=False, # Always initially hidden
)
clear_outputs = gr.Button(
"⚠️ Delete All Previously Generated Output Audio 🗑️",
size="sm",
variant="secondary",
visible=not disable_local_saving,
)
components = {
"audio_output": audio_output,
"output_files": output_files,
"play_btn": play_btn,
"selected_audio": selected_audio,
"clear_outputs": clear_outputs,
}
return col, components