diff --git a/main.py b/main.py index 5d2d46d..6c94e03 100644 --- a/main.py +++ b/main.py @@ -206,8 +206,11 @@ def main(): md_dropdown.select(on_md_dropdown_changed, [md_dropdown], [chatbot] ) def on_theme_dropdown_changed(theme, secret_css): - adjust_theme, css_part1, _ = load_dynamic_theme(theme) - css_part2 = adjust_theme()._get_theme_css() + adjust_theme, css_part1, _, adjust_dynamic_theme = load_dynamic_theme(theme) + if adjust_dynamic_theme: + css_part2 = adjust_dynamic_theme._get_theme_css() + else: + css_part2 = adjust_theme()._get_theme_css() return css_part2 + css_part1 theme_handle = theme_dropdown.select(on_theme_dropdown_changed, [theme_dropdown, secret_css], [secret_css]) diff --git a/themes/gradios.py b/themes/gradios.py index 8b661a5..acabf75 100644 --- a/themes/gradios.py +++ b/themes/gradios.py @@ -3,6 +3,15 @@ import logging from toolbox import get_conf, ProxyNetworkActivate CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT') +def dynamic_set_theme(THEME): + set_theme = gr.themes.ThemeClass() + with ProxyNetworkActivate(): + logging.info('正在下载Gradio主题,请稍等。') + if THEME.startswith('Huggingface-'): THEME = THEME.lstrip('Huggingface-') + if THEME.startswith('huggingface-'): THEME = THEME.lstrip('huggingface-') + set_theme = set_theme.from_hub(THEME.lower()) + return set_theme + def adjust_theme(): try: diff --git a/themes/theme.py b/themes/theme.py index 8aecd17..42ee750 100644 --- a/themes/theme.py +++ b/themes/theme.py @@ -3,6 +3,7 @@ from toolbox import get_conf THEME, = get_conf('THEME') def load_dynamic_theme(THEME): + adjust_dynamic_theme = None if THEME == 'Chuanhu-Small-and-Beautiful': from .green import adjust_theme, advanced_css theme_declaration = "

[Chuanhu-Small-and-Beautiful主题]

" @@ -11,10 +12,12 @@ def load_dynamic_theme(THEME): theme_declaration = "" elif '/' in THEME: from .gradios import adjust_theme, advanced_css + from .gradios import dynamic_set_theme + adjust_dynamic_theme = dynamic_set_theme(THEME) theme_declaration = "" else: from .default import adjust_theme, advanced_css theme_declaration = "" - return adjust_theme, advanced_css, theme_declaration + return adjust_theme, advanced_css, theme_declaration, adjust_dynamic_theme -adjust_theme, advanced_css, theme_declaration = load_dynamic_theme(THEME) \ No newline at end of file +adjust_theme, advanced_css, theme_declaration, _ = load_dynamic_theme(THEME) \ No newline at end of file