Spaces:
Running
Running
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"<center><p> {APP_VERSION} " | |
footer_msg = version + ( | |
' © 2023 <a href="https://github.com/rupeshs">' | |
" Rupesh Sreeraman</a></p></center>" | |
) | |
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("<center><H1>FastSD CPU</H1></center>") | |
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) | |