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

52 lines
1.6 KiB
Python
Raw Normal View History

from typing import Tuple
2025-01-01 21:50:41 -07:00
import gradio as gr
from .. import files
2025-01-01 21:50:41 -07:00
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")
2025-01-01 21:50:41 -07:00
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,
2025-01-01 21:50:41 -07:00
allow_custom_value=False,
visible=not disable_local_saving,
)
2025-01-01 21:50:41 -07:00
play_btn = gr.Button(
"▶️ Play Selected",
size="sm",
visible=not disable_local_saving,
)
2025-01-01 21:50:41 -07:00
selected_audio = gr.Audio(
label="Selected Output",
type="filepath",
visible=False, # Always initially hidden
2025-01-01 21:50:41 -07:00
)
clear_outputs = gr.Button(
"⚠️ Delete All Previously Generated Output Audio 🗑️",
size="sm",
variant="secondary",
visible=not disable_local_saving,
)
2025-01-01 21:50:41 -07:00
components = {
"audio_output": audio_output,
"output_files": output_files,
"play_btn": play_btn,
2025-01-01 21:50:00 -07:00
"selected_audio": selected_audio,
2025-01-01 21:50:41 -07:00
"clear_outputs": clear_outputs,
}
2025-01-01 21:50:41 -07:00
return col, components