import gradio as gr from constants import APP_VERSION from frontend.webui.text_to_image_ui import get_text_to_image_ui from frontend.webui.image_to_image_ui import get_image_to_image_ui from frontend.webui.generation_settings_ui import get_generation_settings_ui from frontend.webui.models_ui import get_models_ui from frontend.webui.image_variations_ui import get_image_variations_ui from paths import FastStableDiffusionPaths from state import get_settings app_settings = get_settings() pony_models = [ "Lykon/Pony-Diffusion", "andite/anything-v4.0", "stablediffusionapi/pony-lcm-turbo", ] standard_models = [ "runwayml/stable-diffusion-v1-5", "stabilityai/stable-diffusion-2-1-base", "SG161222/Realistic_Vision_V5.1_noVAE", ] model_list= pony_models + standard_models def update_model_array(text_input): model_list.append(text_input) updated = model_list return gr.update(choices=updated, value=updated[0] if updated else None), "\n".join(updated) def update_choice(): print(f"helloo") def _get_footer_message() -> str: version = f"

{APP_VERSION} " footer_msg = version + ( ' © 2023 ' " Rupesh Sreeraman

" ) return footer_msg mycss=""" #snake1 div label span{display:none;}""" def get_web_ui() -> gr.Blocks: def change_mode(mode): global app_settings app_settings.settings.lcm_diffusion_setting.use_lcm_lora = False app_settings.settings.lcm_diffusion_setting.use_openvino = False if mode == "LCM-LoRA": app_settings.settings.lcm_diffusion_setting.use_lcm_lora = True elif mode == "LCM-OpenVINO": app_settings.settings.lcm_diffusion_setting.use_openvino = True with gr.Blocks( css=mycss, title="FastSD CPU", ) as fastsd_web_ui: gr.HTML("

FastSD CPU

") current_mode = "LCM" if app_settings.settings.lcm_diffusion_setting.use_openvino: current_mode = "LCM-OpenVINO" elif app_settings.settings.lcm_diffusion_setting.use_lcm_lora: current_mode = "LCM-LoRA" with gr.Column(scale=1): with gr.Row(elem_id="snake1"): model_text_area2 = gr.Textbox(value=" ", lines=1, placeholder="Enter a new model") update_button = gr.Button("Update Dropdown" ) model_dropdown = gr.Dropdown(choices=model_list, label="models" ) model_dropdown.change( fn=update_choice, inputs=[], outputs=[], ) model_text_area = gr.Textbox(visible=False, value="\n".join(model_list), lines=10, label="") with gr.Row(elem_id="snake"): update_button.click( fn=update_model_array, inputs=model_text_area2, outputs=[model_dropdown, model_text_area], ) mode = gr.Radio(choices=["LCM", "LCM-LoRA", "LCM-OpenVINO"], label="Mode", info="Current working mode", value=current_mode, ) mode.change(change_mode, inputs=mode) with gr.Tabs(): with gr.TabItem("Text to Image"): get_text_to_image_ui() get_generation_settings_ui() with gr.TabItem("Image to Image"): get_image_to_image_ui() with gr.TabItem("Image Variations"): get_image_variations_ui() #with gr.TabItem("Generation Settings"): # get_generation_settings_ui() with gr.TabItem("Models"): get_models_ui() gr.HTML(_get_footer_message()) return fastsd_web_ui def start_webui( share: bool = False, ): webui = get_web_ui() webui.launch(share=share)