Download extensions/sd-model-organizer/scripts/mo/ui_main.py from dikdimon/ext: direct link, hf CLI and curl.
- Browser
- Download file 4.19 kB
-
https://huggingface.co/dikdimon/ext/resolve/main/extensions/sd-model-organizer/scripts/mo/ui_main.py
- Command line
-
hf download hf://dikdimon/ext/extensions/sd-model-organizer/scripts/mo/ui_main.py
-
curl -L -o ui_main.py https://huggingface.co/dikdimon/ext/resolve/main/extensions/sd-model-organizer/scripts/mo/ui_main.py
4.19 kB
| import gradio as gr | |
| import scripts.mo.ui_navigation as nav | |
| import scripts.mo.ui_styled_html as styled | |
| from scripts.mo.environment import env | |
| from scripts.mo.ui_debug import debug_ui_block | |
| from scripts.mo.ui_details import details_ui_block | |
| from scripts.mo.ui_download import download_ui_block | |
| from scripts.mo.ui_edit import edit_ui_block | |
| from scripts.mo.ui_home import home_ui_block | |
| from scripts.mo.ui_import_export import import_export_ui_block | |
| from scripts.mo.ui_remove import remove_ui_block | |
| from scripts.mo.utils import get_json_record_data | |
| def on_json_box_change(json_state, home_refresh_token): | |
| state = nav.get_nav_state(json_state) | |
| is_home_visible = state['is_home_visible'] | |
| if is_home_visible: | |
| home_refresh_token = nav.generate_ui_token() | |
| return [ | |
| gr.Column.update(visible=is_home_visible), | |
| gr.Column.update(visible=state['is_details_visible']), | |
| gr.Column.update(visible=state['is_edit_visible']), | |
| gr.Column.update(visible=state['is_remove_visible']), | |
| gr.Column.update(visible=state['is_download_visible']), | |
| gr.Column.update(visible=state['is_import_export_visible']), | |
| gr.Column.update(visible=state['is_debug_visible']), | |
| gr.Textbox.update(value=home_refresh_token), | |
| gr.Textbox.update(value=state['details_record_id']), | |
| gr.Textbox.update(value=state['edit_data']), | |
| gr.Textbox.update(value=state['remove_record_id']), | |
| gr.Textbox.update(value=state['download_info']), | |
| gr.Textbox.update(value=state['filter_state']), | |
| gr.Textbox.update(value=get_json_record_data(state['details_record_info_id'])) | |
| ] | |
| def main_ui_block(): | |
| with gr.Blocks(elem_id='model_organizer_tab') as main_block: | |
| if env.is_storage_has_errors(): | |
| gr.HTML(styled.alert_danger(env.storage_error)) | |
| return main_block | |
| elif not env.is_storage_initialized(): | |
| gr.HTML(styled.alert_danger('Storage not initialized')) | |
| return main_block | |
| _json_nav_box = gr.Textbox(value=nav.navigate_home(), label='mo_json_nav_box', elem_id='mo_json_nav_box', | |
| elem_classes='mo-alert-warning', visible=False) | |
| with gr.Column(visible=True, elem_id='mo_home_tab') as home_block: | |
| home_refresh_box = home_ui_block() | |
| with gr.Column(visible=False) as record_details_block: | |
| details_id_box = details_ui_block() | |
| with gr.Column(visible=False) as edit_record_block: | |
| edit_id_box = edit_ui_block() | |
| with gr.Column(visible=False) as remove_record_block: | |
| remove_id_box = remove_ui_block() | |
| with gr.Column(visible=False) as download_block: | |
| download_id_box = download_ui_block() | |
| with gr.Column(visible=False) as import_export_block: | |
| filter_state_box = import_export_ui_block() | |
| with gr.Column(visible=False) as debug_block: | |
| if env.is_debug_mode_enabled(): | |
| debug_ui_block() | |
| else: | |
| gr.Row() | |
| details_data_box = gr.Textbox(value='\{\}', label='mo_record_info_nav_box', elem_id='mo_record_info_nav_box', elem_classes='mo-alert-warning', visible=False) | |
| _json_nav_box.change(on_json_box_change, | |
| inputs=[_json_nav_box, home_refresh_box], | |
| outputs=[home_block, | |
| record_details_block, | |
| edit_record_block, | |
| remove_record_block, | |
| download_block, | |
| import_export_block, | |
| debug_block, | |
| home_refresh_box, | |
| details_id_box, | |
| edit_id_box, | |
| remove_id_box, | |
| download_id_box, | |
| filter_state_box, | |
| details_data_box | |
| ]) | |
| return main_block | |