diff --git a/.vscode/settings.json b/.vscode/settings.json index 225860810..d5e8da26c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,8 @@ "./repositories/CodeFormer", "./repositories/k-diffusion", "./repositories/taming-transformers", - "./repositories/stable-diffusion-stability-ai" + "./repositories/stable-diffusion-stability-ai", + "./repositories/stable-diffusion-stability-ai/ldm" ], "python.analysis.typeCheckingMode": "off" -} \ No newline at end of file +} diff --git a/extensions-builtin/sd-extension-system-info b/extensions-builtin/sd-extension-system-info index 768a3987d..e3903982f 160000 --- a/extensions-builtin/sd-extension-system-info +++ b/extensions-builtin/sd-extension-system-info @@ -1 +1 @@ -Subproject commit 768a3987d3a1a4a17ce1cf5d0c9dcdd80183ad76 +Subproject commit e3903982f92ddafad6a5836ee4b33d9d634087c6 diff --git a/extensions-builtin/sd-webui-controlnet b/extensions-builtin/sd-webui-controlnet index e900a87aa..2f7d73a29 160000 --- a/extensions-builtin/sd-webui-controlnet +++ b/extensions-builtin/sd-webui-controlnet @@ -1 +1 @@ -Subproject commit e900a87aaaa03ff166cb7981999777094223ebe1 +Subproject commit 2f7d73a299ad10b7c866b3760b09a63812699788 diff --git a/user.css b/javascript/black-orange.css similarity index 100% rename from user.css rename to javascript/black-orange.css diff --git a/javascript/ui.js b/javascript/ui.js index 5280a9eb5..96ec204b9 100644 --- a/javascript/ui.js +++ b/javascript/ui.js @@ -155,10 +155,10 @@ function create_submit_args(args){ } function showSubmitButtons(tabname, show){ - // gradioApp().getElementById(tabname+'_interrupt').style.display = show ? "none" : "block" - // gradioApp().getElementById(tabname+'_skip').style.display = show ? "none" : "block" - gradioApp().getElementById(tabname+'_interrupt').style.display = "block" - gradioApp().getElementById(tabname+'_skip').style.display = "block" + gradioApp().getElementById(tabname+'_interrupt').style.display = show ? "none" : "block" + gradioApp().getElementById(tabname+'_skip').style.display = show ? "none" : "block" + // gradioApp().getElementById(tabname+'_interrupt').style.display = "block" + // gradioApp().getElementById(tabname+'_skip').style.display = "block" } function submit(){ diff --git a/modules/shared.py b/modules/shared.py index a8d1d7bff..1c23c0f75 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -241,7 +241,7 @@ options_templates.update(options_section(('sd', "Stable Diffusion"), { "img2img_color_correction": OptionInfo(False, "Apply color correction to img2img results to match original colors."), "img2img_fix_steps": OptionInfo(False, "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising)."), "img2img_background_color": OptionInfo("#ffffff", "With img2img, fill image's transparent parts with this color.", ui_components.FormColorPicker, {}), - "enable_quantization": OptionInfo(True, "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply."), + "enable_quantization": OptionInfo(True, "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds."), "enable_emphasis": OptionInfo(True, "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention"), "enable_batch_seeds": OptionInfo(True, "Make K-diffusion samplers produce same images in a batch as when making a single image"), "comma_padding_backtrack": OptionInfo(20, "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens", gr.Slider, {"minimum": 0, "maximum": 74, "step": 1 }), @@ -323,7 +323,7 @@ options_templates.update(options_section(('saving-paths', "Image Paths"), { options_templates.update(options_section(('upscaling', "Upscaling"), { "ESRGAN_tile": OptionInfo(192, "Tile size for ESRGAN upscalers. 0 = no tiling.", gr.Slider, {"minimum": 0, "maximum": 512, "step": 16}), "ESRGAN_tile_overlap": OptionInfo(8, "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.", gr.Slider, {"minimum": 0, "maximum": 48, "step": 1}), - "realesrgan_enabled_models": OptionInfo(["R-ESRGAN 4x+", "R-ESRGAN 4x+ Anime6B"], "Select which Real-ESRGAN models to show in the web UI. (Requires restart)", gr.CheckboxGroup, lambda: {"choices": shared_items.realesrgan_models_names()}), + "realesrgan_enabled_models": OptionInfo(["R-ESRGAN 4x+", "R-ESRGAN 4x+ Anime6B"], "Select which Real-ESRGAN models to show in the web UI.", gr.CheckboxGroup, lambda: {"choices": shared_items.realesrgan_models_names()}), "upscaler_for_img2img": OptionInfo("SwinIR_4x", "Upscaler for img2img", gr.Dropdown, lambda: {"choices": [x.name for x in sd_upscalers]}), "use_old_hires_fix_width_height": OptionInfo(False, "For hires fix, use width/height sliders to set final resolution rather than first pass (disables Upscale by, Resize width/height to)."), })) @@ -395,10 +395,10 @@ options_templates.update(options_section(('ui', "User interface"), { "keyedit_precision_attention": OptionInfo(0.1, "Ctrl+up/down precision when editing (attention:1.1)", gr.Slider, {"minimum": 0.01, "maximum": 0.2, "step": 0.001}), "keyedit_precision_extra": OptionInfo(0.05, "Ctrl+up/down precision when editing ", gr.Slider, {"minimum": 0.01, "maximum": 0.2, "step": 0.001}), "quicksettings": OptionInfo("sd_model_checkpoint", "Quicksettings list"), - "hidden_tabs": OptionInfo([], "Hidden UI tabs (requires restart)", ui_components.DropdownMulti, lambda: {"choices": [x for x in tab_names]}), + "hidden_tabs": OptionInfo([], "Hidden UI tabs", ui_components.DropdownMulti, lambda: {"choices": [x for x in tab_names]}), "ui_reorder": OptionInfo(", ".join(ui_reorder_categories), "txt2img/img2img UI item order"), "ui_extra_networks_tab_reorder": OptionInfo("", "Extra networks tab order"), - "gradio_theme": OptionInfo("Default", "Gradio theme (requires restart)", gr.Dropdown, lambda: {"choices": ["Default"] + gradio_hf_hub_themes}), + "gradio_theme": OptionInfo("Default", "UI theme", gr.Dropdown, lambda: {"choices": ["black-orange", "gradio/default"] + gradio_hf_hub_themes}), })) options_templates.update(options_section(('ui', "Live previews"), { @@ -412,7 +412,7 @@ options_templates.update(options_section(('ui', "Live previews"), { })) options_templates.update(options_section(('sampler-params', "Sampler parameters"), { - "hide_samplers": OptionInfo(["Euler", "LMS", "Heun", "DPM2", "DPM2 a", "DPM++ 2M", "DPM fast", "DPM adaptive", "DPM++ 2S a Karras", "DPM++ 2S a", "DPM++ SDE Karras", "DPM2 a Karras", "LMS Karras"], "Hide samplers in user interface (requires restart)", gr.CheckboxGroup, lambda: {"choices": [x.name for x in list_samplers()]}), + "hide_samplers": OptionInfo(["Euler", "LMS", "Heun", "DPM2", "DPM2 a", "DPM++ 2M", "DPM fast", "DPM adaptive", "DPM++ 2S a Karras", "DPM++ 2S a", "DPM++ SDE Karras", "DPM2 a Karras", "LMS Karras"], "Hide samplers in user interface", gr.CheckboxGroup, lambda: {"choices": [x.name for x in list_samplers()]}), "eta_ddim": OptionInfo(0.0, "eta (noise multiplier) for DDIM", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}), "eta_ancestral": OptionInfo(1.0, "eta (noise multiplier) for ancestral samplers", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}), "ddim_discretize": OptionInfo('uniform', "img2img DDIM discretize", gr.Radio, {"choices": ['uniform', 'quad']}), @@ -620,21 +620,19 @@ progress_print_out = sys.stdout gradio_theme = gr.themes.Base() - def reload_gradio_theme(theme_name=None): - global gradio_theme + global gradio_theme # pylint: disable=global-statement if not theme_name: theme_name = opts.gradio_theme - - if theme_name == "Default": + if theme_name == "gradio/default" or theme_name == "black-orange": gradio_theme = gr.themes.Default() else: try: gradio_theme = gr.themes.ThemeClass.from_hub(theme_name) except requests.exceptions.ConnectionError: - print("Can't access HuggingFace Hub, falling back to default Gradio theme") + print("Theme download error accessing HuggingFace") gradio_theme = gr.themes.Default() - + print(f'Loading theme: {theme_name}') class TotalTQDM: diff --git a/modules/ui.py b/modules/ui.py index 355cf4052..b09b7230b 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -1500,7 +1500,7 @@ def create_ui(): for _interface, label, _ifid in interfaces: shared.tab_names.append(label) - with gr.Blocks(css=css, theme=shared.gradio_theme, analytics_enabled=False, title="Stable Diffusion") as demo: + with gr.Blocks(theme=shared.gradio_theme, analytics_enabled=False, title="Stable Diffusion") as demo: with gr.Row(elem_id="quicksettings", variant="compact"): for i, k, item in sorted(quicksettings_list, key=lambda x: quicksettings_names.get(x[1], x[0])): component = create_setting_component(k, is_quicksettings=True) @@ -1515,9 +1515,6 @@ def create_ui(): with gr.TabItem(label, id=ifid, elem_id='tab_' + ifid): interface.render() - if os.path.exists(os.path.join(script_path, "notification.mp3")): - audio_notification = gr.Audio(interactive=False, value=os.path.join(script_path, "notification.mp3"), elem_id="audio_notification", visible=False) - footer = shared.html("footer.html") footer = footer.format(versions=versions_html()) gr.HTML(footer, elem_id="footer") @@ -1725,6 +1722,8 @@ def css_html(): head += stylesheet(cssfile) + if opts.gradio_theme == 'black-orange': + head += stylesheet(os.path.join(data_path, "javascript", "black-orange.css")) if os.path.exists(os.path.join(data_path, "user.css")): head += stylesheet(os.path.join(data_path, "user.css"))