|
import gradio as gr |
|
from .common_gui import remove_doublequote, get_folder_path |
|
|
|
class Folders: |
|
def __init__(self, headless=False): |
|
self.headless = headless |
|
|
|
with gr.Row(): |
|
self.train_data_dir = gr.Textbox( |
|
label='Image folder', |
|
placeholder='Folder where the training folders containing the images are located', |
|
) |
|
self.train_data_dir_folder = gr.Button( |
|
'π', elem_id='open_folder_small', visible=(not self.headless) |
|
) |
|
self.train_data_dir_folder.click( |
|
get_folder_path, |
|
outputs=self.train_data_dir, |
|
show_progress=False, |
|
) |
|
self.reg_data_dir = gr.Textbox( |
|
label='Regularisation folder', |
|
placeholder='(Optional) Folder where where the regularization folders containing the images are located', |
|
) |
|
self.reg_data_dir_folder = gr.Button( |
|
'π', elem_id='open_folder_small', visible=(not self.headless) |
|
) |
|
self.reg_data_dir_folder.click( |
|
get_folder_path, |
|
outputs=self.reg_data_dir, |
|
show_progress=False, |
|
) |
|
with gr.Row(): |
|
self.output_dir = gr.Textbox( |
|
label='Output folder', |
|
placeholder='Folder to output trained model', |
|
) |
|
self.output_dir_folder = gr.Button( |
|
'π', elem_id='open_folder_small', visible=(not self.headless) |
|
) |
|
self.output_dir_folder.click( |
|
get_folder_path, |
|
outputs=self.output_dir, |
|
show_progress=False, |
|
) |
|
self.logging_dir = gr.Textbox( |
|
label='Logging folder', |
|
placeholder='Optional: enable logging and output TensorBoard log to this folder', |
|
) |
|
self.logging_dir_folder = gr.Button( |
|
'π', elem_id='open_folder_small', visible=(not self.headless) |
|
) |
|
self.logging_dir_folder.click( |
|
get_folder_path, |
|
outputs=self.logging_dir, |
|
show_progress=False, |
|
) |
|
with gr.Row(): |
|
self.output_name = gr.Textbox( |
|
label='Model output name', |
|
placeholder='(Name of the model to output)', |
|
value='last', |
|
interactive=True, |
|
) |
|
self.training_comment = gr.Textbox( |
|
label='Training comment', |
|
placeholder='(Optional) Add training comment to be included in metadata', |
|
interactive=True, |
|
) |
|
self.train_data_dir.blur( |
|
remove_doublequote, |
|
inputs=[self.train_data_dir], |
|
outputs=[self.train_data_dir], |
|
) |
|
self.reg_data_dir.blur( |
|
remove_doublequote, |
|
inputs=[self.reg_data_dir], |
|
outputs=[self.reg_data_dir], |
|
) |
|
self.output_dir.blur( |
|
remove_doublequote, |
|
inputs=[self.output_dir], |
|
outputs=[self.output_dir], |
|
) |
|
self.logging_dir.blur( |
|
remove_doublequote, |
|
inputs=[self.logging_dir], |
|
outputs=[self.logging_dir], |
|
) |