Unverified Commit e018c8a3 authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #8945 from space-nuko/gradio-theme-support

Support Gradio's theme API
parents 2c935d8e e6cbfcfe
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import json
import os
import sys
import time
import requests

from PIL import Image
import gradio as gr
@@ -55,6 +56,21 @@ ui_reorder_categories = [
    "scripts",
]

# https://huggingface.co/datasets/freddyaboulton/gradio-theme-subdomains/resolve/main/subdomains.json
gradio_hf_hub_themes = [
    "gradio/glass",
    "gradio/monochrome",
    "gradio/seafoam",
    "gradio/soft",
    "freddyaboulton/dracula_revamped",
    "gradio/dracula_test",
    "abidlabs/dracula_test",
    "abidlabs/pakistan",
    "dawood/microsoft_windows",
    "ysharma/steampunk"
]


cmd_opts.disable_extension_access = (cmd_opts.share or cmd_opts.listen or cmd_opts.server_name) and not cmd_opts.enable_insecure_extension_access

devices.device, devices.device_interrogate, devices.device_gfpgan, devices.device_esrgan, devices.device_codeformer = \
@@ -394,6 +410,7 @@ options_templates.update(options_section(('ui', "User interface"), {
    "ui_reorder": OptionInfo(", ".join(ui_reorder_categories), "txt2img/img2img UI item order"),
    "ui_extra_networks_tab_reorder": OptionInfo("", "Extra networks tab order"),
    "localization": OptionInfo("None", "Localization (requires restart)", gr.Dropdown, lambda: {"choices": ["None"] + list(localization.localizations.keys())}, refresh=lambda: localization.list_localizations(cmd_opts.localizations_dir)),
    "gradio_theme": OptionInfo("Default", "Gradio theme (requires restart)", gr.Dropdown, lambda: {"choices": ["Default"] + gradio_hf_hub_themes})
}))

options_templates.update(options_section(('ui', "Live previews"), {
@@ -607,6 +624,24 @@ clip_model = None

progress_print_out = sys.stdout

gradio_theme = gr.themes.Base()


def reload_gradio_theme(theme_name=None):
    global gradio_theme
    if not theme_name:
        theme_name = opts.gradio_theme

    if theme_name == "Default":
        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")
            gradio_theme = gr.themes.Default()



class TotalTQDM:
    def __init__(self):
+1 −1
Original line number Diff line number Diff line
@@ -1565,7 +1565,7 @@ def create_ui():
    for _interface, label, _ifid in interfaces:
        shared.tab_names.append(label)

    with gr.Blocks(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)
+1 −0
Original line number Diff line number Diff line
@@ -192,6 +192,7 @@ def initialize():
    shared.opts.onchange("sd_vae", wrap_queued_call(lambda: modules.sd_vae.reload_vae_weights()), call=False)
    shared.opts.onchange("sd_vae_as_default", wrap_queued_call(lambda: modules.sd_vae.reload_vae_weights()), call=False)
    shared.opts.onchange("temp_dir", ui_tempdir.on_tmpdir_changed)
    shared.opts.onchange("gradio_theme", shared.reload_gradio_theme)
    startup_timer.record("opts onchange")

    shared.reload_hypernetworks()