add description to VAE setting page

This commit is contained in:
AUTOMATIC1111 2023-08-05 11:18:13 +03:00
parent 36ca80d004
commit 60183eebc3
2 changed files with 27 additions and 0 deletions

View File

@ -259,6 +259,7 @@ class OptionInfo:
self.onchange = onchange self.onchange = onchange
self.section = section self.section = section
self.refresh = refresh self.refresh = refresh
self.do_not_save = False
self.comment_before = comment_before self.comment_before = comment_before
"""HTML text that will be added after label in UI""" """HTML text that will be added after label in UI"""
@ -291,6 +292,13 @@ class OptionInfo:
return self return self
class OptionHTML(OptionInfo):
def __init__(self, text):
super().__init__(str(text).strip(), label='', component=lambda **kwargs: gr.HTML(elem_classes="settings-info", **kwargs))
self.do_not_save = True
def options_section(section_identifier, options_dict): def options_section(section_identifier, options_dict):
for v in options_dict.values(): for v in options_dict.values():
v.section = section_identifier v.section = section_identifier
@ -443,6 +451,12 @@ options_templates.update(options_section(('sdxl', "Stable Diffusion XL"), {
})) }))
options_templates.update(options_section(('vae', "VAE"), { options_templates.update(options_section(('vae', "VAE"), {
"sd_vae_explanation": OptionHTML("""
<abbr title='Variational autoencoder'>VAE</abbr> is a neural network that transforms a standard <abbr title='red/green/blue'>RGB</abbr>
image into latent space representation and back. Latent space representation is what stable diffusion is working on during sampling
(i.e. when the progress bar is between empty and full). For txt2img, VAE is used to create a resulting image after the sampling is finished.
For img2img, VAE is used to process user's input image before the sampling, and to create an image after sampling.
"""),
"sd_vae_checkpoint_cache": OptionInfo(0, "VAE Checkpoints to cache in RAM", gr.Slider, {"minimum": 0, "maximum": 10, "step": 1}), "sd_vae_checkpoint_cache": OptionInfo(0, "VAE Checkpoints to cache in RAM", gr.Slider, {"minimum": 0, "maximum": 10, "step": 1}),
"sd_vae": OptionInfo("Automatic", "SD VAE", gr.Dropdown, lambda: {"choices": shared_items.sd_vae_items()}, refresh=shared_items.refresh_vae_list).info("choose VAE model: Automatic = use one with same filename as checkpoint; None = use VAE from checkpoint"), "sd_vae": OptionInfo("Automatic", "SD VAE", gr.Dropdown, lambda: {"choices": shared_items.sd_vae_items()}, refresh=shared_items.refresh_vae_list).info("choose VAE model: Automatic = use one with same filename as checkpoint; None = use VAE from checkpoint"),
"sd_vae_as_default": OptionInfo(True, "Ignore selected VAE for stable diffusion checkpoints that have their own .vae.pt next to them"), "sd_vae_as_default": OptionInfo(True, "Ignore selected VAE for stable diffusion checkpoints that have their own .vae.pt next to them"),
@ -619,6 +633,9 @@ class Options:
assert not cmd_opts.freeze_settings, "changing settings is disabled" assert not cmd_opts.freeze_settings, "changing settings is disabled"
info = opts.data_labels.get(key, None) info = opts.data_labels.get(key, None)
if info.do_not_save:
return
comp_args = info.component_args if info else None comp_args = info.component_args if info else None
if isinstance(comp_args, dict) and comp_args.get('visible', True) is False: if isinstance(comp_args, dict) and comp_args.get('visible', True) is False:
raise RuntimeError(f"not possible to set {key} because it is restricted") raise RuntimeError(f"not possible to set {key} because it is restricted")
@ -648,6 +665,9 @@ class Options:
if oldval == value: if oldval == value:
return False return False
if self.data_labels[key].do_not_save:
return False
try: try:
setattr(self, key, value) setattr(self, key, value)
except RuntimeError: except RuntimeError:

View File

@ -494,6 +494,13 @@ table.popup-table .link{
font-size: 18pt; font-size: 18pt;
} }
#settings .settings-info{
max-width: 48em;
border: 1px dotted #777;
margin: 0;
padding: 1em;
}
/* live preview */ /* live preview */
.progressDiv{ .progressDiv{