Spaces:
Sleeping
Sleeping
| """ | |
| Gradio UI Results Section Module | |
| Contains results display section component definitions | |
| """ | |
| import gradio as gr | |
| from acestep.gradio_ui.i18n import t | |
| def create_results_section(dit_handler) -> dict: | |
| """Create results display section""" | |
| with gr.Accordion(t("results.title"), open=True): | |
| # Hidden state to store LM-generated metadata | |
| lm_metadata_state = gr.State(value=None) | |
| # Hidden state to track if caption/metadata is from formatted source (LM/transcription) | |
| is_format_caption_state = gr.State(value=False) | |
| # Batch management states | |
| current_batch_index = gr.State(value=0) # Currently displayed batch index | |
| total_batches = gr.State(value=1) # Total number of batches generated | |
| batch_queue = gr.State(value={}) # Dictionary storing all batch data | |
| generation_params_state = gr.State(value={}) # Store generation parameters for next batches | |
| is_generating_background = gr.State(value=False) # Background generation flag | |
| # All audio components in one row with dynamic visibility | |
| with gr.Row(): | |
| with gr.Column(visible=True) as audio_col_1: | |
| generated_audio_1 = gr.Audio( | |
| label=t("results.generated_music", n=1), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_1 = gr.Button( | |
| t("results.send_to_src_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| save_btn_1 = gr.Button( | |
| t("results.save_btn"), | |
| variant="primary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| score_btn_1 = gr.Button( | |
| t("results.score_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| lrc_btn_1 = gr.Button( | |
| t("results.lrc_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_1: | |
| codes_display_1 = gr.Textbox( | |
| label=t("results.codes_label", n=1), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_1 = gr.Textbox( | |
| label=t("results.quality_score_label", n=1), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_1 = gr.Textbox( | |
| label=t("results.lrc_label", n=1), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column(visible=True) as audio_col_2: | |
| generated_audio_2 = gr.Audio( | |
| label=t("results.generated_music", n=2), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_2 = gr.Button( | |
| t("results.send_to_src_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| save_btn_2 = gr.Button( | |
| t("results.save_btn"), | |
| variant="primary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| score_btn_2 = gr.Button( | |
| t("results.score_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| lrc_btn_2 = gr.Button( | |
| t("results.lrc_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_2: | |
| codes_display_2 = gr.Textbox( | |
| label=t("results.codes_label", n=2), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_2 = gr.Textbox( | |
| label=t("results.quality_score_label", n=2), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_2 = gr.Textbox( | |
| label=t("results.lrc_label", n=2), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column(visible=False) as audio_col_3: | |
| generated_audio_3 = gr.Audio( | |
| label=t("results.generated_music", n=3), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_3 = gr.Button( | |
| t("results.send_to_src_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| save_btn_3 = gr.Button( | |
| t("results.save_btn"), | |
| variant="primary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| score_btn_3 = gr.Button( | |
| t("results.score_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| lrc_btn_3 = gr.Button( | |
| t("results.lrc_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_3: | |
| codes_display_3 = gr.Textbox( | |
| label=t("results.codes_label", n=3), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_3 = gr.Textbox( | |
| label=t("results.quality_score_label", n=3), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_3 = gr.Textbox( | |
| label=t("results.lrc_label", n=3), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column(visible=False) as audio_col_4: | |
| generated_audio_4 = gr.Audio( | |
| label=t("results.generated_music", n=4), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_4 = gr.Button( | |
| t("results.send_to_src_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| save_btn_4 = gr.Button( | |
| t("results.save_btn"), | |
| variant="primary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| score_btn_4 = gr.Button( | |
| t("results.score_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| lrc_btn_4 = gr.Button( | |
| t("results.lrc_btn"), | |
| variant="secondary", | |
| size="sm", | |
| scale=1 | |
| ) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_4: | |
| codes_display_4 = gr.Textbox( | |
| label=t("results.codes_label", n=4), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_4 = gr.Textbox( | |
| label=t("results.quality_score_label", n=4), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_4 = gr.Textbox( | |
| label=t("results.lrc_label", n=4), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| # Second row for batch size 5-8 (initially hidden) | |
| with gr.Row(visible=False) as audio_row_5_8: | |
| with gr.Column() as audio_col_5: | |
| generated_audio_5 = gr.Audio( | |
| label=t("results.generated_music", n=5), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_5 = gr.Button(t("results.send_to_src_btn"), variant="secondary", size="sm", scale=1) | |
| save_btn_5 = gr.Button(t("results.save_btn"), variant="primary", size="sm", scale=1) | |
| score_btn_5 = gr.Button(t("results.score_btn"), variant="secondary", size="sm", scale=1) | |
| lrc_btn_5 = gr.Button(t("results.lrc_btn"), variant="secondary", size="sm", scale=1) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_5: | |
| codes_display_5 = gr.Textbox( | |
| label=t("results.codes_label", n=5), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_5 = gr.Textbox( | |
| label=t("results.quality_score_label", n=5), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_5 = gr.Textbox( | |
| label=t("results.lrc_label", n=5), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column() as audio_col_6: | |
| generated_audio_6 = gr.Audio( | |
| label=t("results.generated_music", n=6), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_6 = gr.Button(t("results.send_to_src_btn"), variant="secondary", size="sm", scale=1) | |
| save_btn_6 = gr.Button(t("results.save_btn"), variant="primary", size="sm", scale=1) | |
| score_btn_6 = gr.Button(t("results.score_btn"), variant="secondary", size="sm", scale=1) | |
| lrc_btn_6 = gr.Button(t("results.lrc_btn"), variant="secondary", size="sm", scale=1) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_6: | |
| codes_display_6 = gr.Textbox( | |
| label=t("results.codes_label", n=6), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_6 = gr.Textbox( | |
| label=t("results.quality_score_label", n=6), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_6 = gr.Textbox( | |
| label=t("results.lrc_label", n=6), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column() as audio_col_7: | |
| generated_audio_7 = gr.Audio( | |
| label=t("results.generated_music", n=7), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_7 = gr.Button(t("results.send_to_src_btn"), variant="secondary", size="sm", scale=1) | |
| save_btn_7 = gr.Button(t("results.save_btn"), variant="primary", size="sm", scale=1) | |
| score_btn_7 = gr.Button(t("results.score_btn"), variant="secondary", size="sm", scale=1) | |
| lrc_btn_7 = gr.Button(t("results.lrc_btn"), variant="secondary", size="sm", scale=1) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_7: | |
| codes_display_7 = gr.Textbox( | |
| label=t("results.codes_label", n=7), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_7 = gr.Textbox( | |
| label=t("results.quality_score_label", n=7), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_7 = gr.Textbox( | |
| label=t("results.lrc_label", n=7), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| with gr.Column() as audio_col_8: | |
| generated_audio_8 = gr.Audio( | |
| label=t("results.generated_music", n=8), | |
| type="filepath", | |
| interactive=False, | |
| buttons=[] | |
| ) | |
| with gr.Row(equal_height=True): | |
| send_to_src_btn_8 = gr.Button(t("results.send_to_src_btn"), variant="secondary", size="sm", scale=1) | |
| save_btn_8 = gr.Button(t("results.save_btn"), variant="primary", size="sm", scale=1) | |
| score_btn_8 = gr.Button(t("results.score_btn"), variant="secondary", size="sm", scale=1) | |
| lrc_btn_8 = gr.Button(t("results.lrc_btn"), variant="secondary", size="sm", scale=1) | |
| with gr.Accordion(t("results.details_accordion"), open=False, visible=True) as details_accordion_8: | |
| codes_display_8 = gr.Textbox( | |
| label=t("results.codes_label", n=8), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=4, | |
| max_lines=4, | |
| visible=True | |
| ) | |
| score_display_8 = gr.Textbox( | |
| label=t("results.quality_score_label", n=8), | |
| interactive=False, | |
| buttons=["copy"], | |
| lines=6, | |
| max_lines=6, | |
| visible=True | |
| ) | |
| lrc_display_8 = gr.Textbox( | |
| label=t("results.lrc_label", n=8), | |
| interactive=True, | |
| buttons=["copy"], | |
| lines=8, | |
| max_lines=8, | |
| visible=True | |
| ) | |
| status_output = gr.Textbox(label=t("results.generation_status"), interactive=False) | |
| # Batch navigation controls | |
| with gr.Row(equal_height=True): | |
| prev_batch_btn = gr.Button( | |
| t("results.prev_btn"), | |
| variant="secondary", | |
| interactive=False, | |
| scale=1, | |
| size="sm" | |
| ) | |
| batch_indicator = gr.Textbox( | |
| label=t("results.current_batch"), | |
| value=t("results.batch_indicator", current=1, total=1), | |
| interactive=False, | |
| scale=3 | |
| ) | |
| next_batch_status = gr.Textbox( | |
| label=t("results.next_batch_status"), | |
| value="", | |
| interactive=False, | |
| scale=3 | |
| ) | |
| next_batch_btn = gr.Button( | |
| t("results.next_btn"), | |
| variant="primary", | |
| interactive=False, | |
| scale=1, | |
| size="sm" | |
| ) | |
| # One-click restore parameters button | |
| restore_params_btn = gr.Button( | |
| t("results.restore_params_btn"), | |
| variant="secondary", | |
| interactive=False, # Initially disabled, enabled after generation | |
| size="sm" | |
| ) | |
| with gr.Accordion(t("results.batch_results_title"), open=False): | |
| generated_audio_batch = gr.File( | |
| label=t("results.all_files_label"), | |
| file_count="multiple", | |
| interactive=False | |
| ) | |
| generation_info = gr.Markdown(label=t("results.generation_details")) | |
| return { | |
| "lm_metadata_state": lm_metadata_state, | |
| "is_format_caption_state": is_format_caption_state, | |
| "current_batch_index": current_batch_index, | |
| "total_batches": total_batches, | |
| "batch_queue": batch_queue, | |
| "generation_params_state": generation_params_state, | |
| "is_generating_background": is_generating_background, | |
| "status_output": status_output, | |
| "prev_batch_btn": prev_batch_btn, | |
| "batch_indicator": batch_indicator, | |
| "next_batch_btn": next_batch_btn, | |
| "next_batch_status": next_batch_status, | |
| "restore_params_btn": restore_params_btn, | |
| "generated_audio_1": generated_audio_1, | |
| "generated_audio_2": generated_audio_2, | |
| "generated_audio_3": generated_audio_3, | |
| "generated_audio_4": generated_audio_4, | |
| "generated_audio_5": generated_audio_5, | |
| "generated_audio_6": generated_audio_6, | |
| "generated_audio_7": generated_audio_7, | |
| "generated_audio_8": generated_audio_8, | |
| "audio_row_5_8": audio_row_5_8, | |
| "audio_col_1": audio_col_1, | |
| "audio_col_2": audio_col_2, | |
| "audio_col_3": audio_col_3, | |
| "audio_col_4": audio_col_4, | |
| "audio_col_5": audio_col_5, | |
| "audio_col_6": audio_col_6, | |
| "audio_col_7": audio_col_7, | |
| "audio_col_8": audio_col_8, | |
| "send_to_src_btn_1": send_to_src_btn_1, | |
| "send_to_src_btn_2": send_to_src_btn_2, | |
| "send_to_src_btn_3": send_to_src_btn_3, | |
| "send_to_src_btn_4": send_to_src_btn_4, | |
| "send_to_src_btn_5": send_to_src_btn_5, | |
| "send_to_src_btn_6": send_to_src_btn_6, | |
| "send_to_src_btn_7": send_to_src_btn_7, | |
| "send_to_src_btn_8": send_to_src_btn_8, | |
| "save_btn_1": save_btn_1, | |
| "save_btn_2": save_btn_2, | |
| "save_btn_3": save_btn_3, | |
| "save_btn_4": save_btn_4, | |
| "save_btn_5": save_btn_5, | |
| "save_btn_6": save_btn_6, | |
| "save_btn_7": save_btn_7, | |
| "save_btn_8": save_btn_8, | |
| "score_btn_1": score_btn_1, | |
| "score_btn_2": score_btn_2, | |
| "score_btn_3": score_btn_3, | |
| "score_btn_4": score_btn_4, | |
| "score_btn_5": score_btn_5, | |
| "score_btn_6": score_btn_6, | |
| "score_btn_7": score_btn_7, | |
| "score_btn_8": score_btn_8, | |
| "score_display_1": score_display_1, | |
| "score_display_2": score_display_2, | |
| "score_display_3": score_display_3, | |
| "score_display_4": score_display_4, | |
| "score_display_5": score_display_5, | |
| "score_display_6": score_display_6, | |
| "score_display_7": score_display_7, | |
| "score_display_8": score_display_8, | |
| "codes_display_1": codes_display_1, | |
| "codes_display_2": codes_display_2, | |
| "codes_display_3": codes_display_3, | |
| "codes_display_4": codes_display_4, | |
| "codes_display_5": codes_display_5, | |
| "codes_display_6": codes_display_6, | |
| "codes_display_7": codes_display_7, | |
| "codes_display_8": codes_display_8, | |
| "lrc_btn_1": lrc_btn_1, | |
| "lrc_btn_2": lrc_btn_2, | |
| "lrc_btn_3": lrc_btn_3, | |
| "lrc_btn_4": lrc_btn_4, | |
| "lrc_btn_5": lrc_btn_5, | |
| "lrc_btn_6": lrc_btn_6, | |
| "lrc_btn_7": lrc_btn_7, | |
| "lrc_btn_8": lrc_btn_8, | |
| "lrc_display_1": lrc_display_1, | |
| "lrc_display_2": lrc_display_2, | |
| "lrc_display_3": lrc_display_3, | |
| "lrc_display_4": lrc_display_4, | |
| "lrc_display_5": lrc_display_5, | |
| "lrc_display_6": lrc_display_6, | |
| "lrc_display_7": lrc_display_7, | |
| "lrc_display_8": lrc_display_8, | |
| "details_accordion_1": details_accordion_1, | |
| "details_accordion_2": details_accordion_2, | |
| "details_accordion_3": details_accordion_3, | |
| "details_accordion_4": details_accordion_4, | |
| "details_accordion_5": details_accordion_5, | |
| "details_accordion_6": details_accordion_6, | |
| "details_accordion_7": details_accordion_7, | |
| "details_accordion_8": details_accordion_8, | |
| "generated_audio_batch": generated_audio_batch, | |
| "generation_info": generation_info, | |
| } | |