refactor monolithic shared.py and separate legacy options with logging

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-07-12 13:35:41 -04:00
parent 4cec2db9a3
commit 4e449ca9b2
13 changed files with 599 additions and 572 deletions
+71 -1
View File
@@ -19,6 +19,76 @@ def active():
return [x for x in extensions if x.enabled]
def temp_disable_extensions():
disable_safe = [
'sd-webui-controlnet',
'multidiffusion-upscaler-for-automatic1111',
'a1111-sd-webui-lycoris',
'sd-webui-agent-scheduler',
'clip-interrogator-ext',
'stable-diffusion-webui-images-browser',
]
disable_diffusers = [
'sd-webui-controlnet',
'multidiffusion-upscaler-for-automatic1111',
'a1111-sd-webui-lycoris',
'sd-webui-animatediff',
]
disable_themes = [
'sd-webui-lobe-theme',
'cozy-nest',
'sdnext-modernui',
]
disabled = []
if shared.cmd_opts.theme is not None:
theme_name = shared.cmd_opts.theme
else:
theme_name = f'{shared.opts.theme_type.lower()}/{shared.opts.gradio_theme}'
if theme_name == 'lobe':
disable_themes.remove('sd-webui-lobe-theme')
elif theme_name == 'cozy-nest' or theme_name == 'cozy':
disable_themes.remove('cozy-nest')
elif '/' not in theme_name: # set default themes per type
if theme_name == 'standard' or theme_name == 'default':
theme_name = 'standard/black-teal'
if theme_name == 'modern':
theme_name = 'modern/Default'
if theme_name == 'gradio':
theme_name = 'gradio/default'
if theme_name == 'huggingface':
theme_name = 'huggingface/blaaa'
if theme_name.lower().startswith('standard') or theme_name.lower().startswith('default'):
shared.opts.data['theme_type'] = 'Standard'
shared.opts.data['gradio_theme'] = theme_name[9:]
elif theme_name.lower().startswith('modern'):
shared.opts.data['theme_type'] = 'Modern'
shared.opts.data['gradio_theme'] = theme_name[7:]
disable_themes.remove('sdnext-modernui')
elif theme_name.lower().startswith('huggingface') or theme_name.lower().startswith('gradio') or theme_name.lower().startswith('none'):
shared.opts.data['theme_type'] = 'None'
shared.opts.data['gradio_theme'] = theme_name
else:
shared.log.error(f'UI theme invalid: theme="{theme_name}" available={["standard/*", "modern/*", "none/*"]} fallback="standard/black-teal"')
shared.opts.data['theme_type'] = 'Standard'
shared.opts.data['gradio_theme'] = 'black-teal'
for ext in disable_themes:
if ext.lower() not in shared.opts.disabled_extensions:
disabled.append(ext)
if shared.cmd_opts.safe:
for ext in disable_safe:
if ext.lower() not in shared.opts.disabled_extensions:
disabled.append(ext)
for ext in disable_diffusers:
if ext.lower() not in shared.opts.disabled_extensions:
disabled.append(ext)
disabled.append('Lora')
shared.cmd_opts.controlnet_loglevel = 'WARNING'
return disabled
class Extension:
def __init__(self, name, path, enabled=True, is_builtin=False):
self.name = name
@@ -152,7 +222,7 @@ def list_extensions():
extension_paths.append((extension_dirname, path, dirname == extensions_builtin_dir))
if shared.opts.theme_type == 'Modern' and 'sdnext-modernui' in shared.opts.disabled_extensions:
shared.opts.disabled_extensions.remove('sdnext-modernui')
disabled_extensions = [e.lower() for e in shared.opts.disabled_extensions + shared.temp_disable_extensions()]
disabled_extensions = [e.lower() for e in shared.opts.disabled_extensions + temp_disable_extensions()]
for dirname, path, is_builtin in extension_paths:
enabled = dirname.lower() not in disabled_extensions
extension = Extension(name=dirname, path=path, enabled=enabled, is_builtin=is_builtin)