add quicksettings reset button

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-07-31 19:39:20 -04:00
parent b120778c4f
commit 5a9b72ec57
7 changed files with 134 additions and 7 deletions
+2
View File
@@ -14,6 +14,8 @@
- new embedded docs/wiki search!
**Docs** search: fully-local and works in real-time on all document pages
**Wiki** search: uses github api to search online wiki pages
- quicksettings reset button to restore all quicksettings to default values
because things do sometimes get wrong...
- modernui checkbox/radio styling
- **Offloading**
- changed **default** values for offloading based on detected gpu memory
+4 -3
View File
@@ -31,13 +31,14 @@ Main ToDo list can be found at [GitHub projects](https://github.com/users/vladma
## ModernUI
- Extensions tab: Full CSS
- Extensions tab:
- full CSS redesign
- Models tab:
- Current
- Validate: broken table
- Update: broken table
- CivitAI: redesign downloader
- History
- History tab:
- empty?
### Under Consideration
+1
View File
@@ -13,6 +13,7 @@
{"id":"","label":"※","localized":"","hint":"Load model as refiner model when selected, otherwise load as base model"},
{"id":"","label":"🔎︎","localized":"","hint":"Scan CivitAI for missing metadata and previews"},
{"id":"","label":"☲","localized":"","hint":"Change view type"},
{"id":"","label":"⊗","localized":"","hint":"Reset values"},
{"id":"","label":"📐","localized":"","hint":"Measure"},
{"id":"","label":"🔍","localized":"","hint":"Search"},
{"id":"","label":"🖌️","localized":"","hint":"LaMa remove selected object from image"},
+13 -2
View File
@@ -680,8 +680,19 @@ div#extras_scale_to_tab div.form {
#quicksettings>button {
align-self: end;
margin-bottom: 6px;
padding: 0 1em 0 0;
height: 1.3em;
margin: 0em 0.7em 0.3em -0.5em;
line-height: 1em;
background-color: var(--background-fill-primary);
}
#quicksettings>button:hover {
background-color: var(--button-cancel-border-color-hover);
}
button#quicksettings_reset {
position: absolute;
right: 0;
}
#settings {
+18 -1
View File
@@ -1,6 +1,7 @@
import os
import gradio as gr
from modules import timer, shared, paths, theme, sd_models, modelloader, ui_common, ui_loadsave, ui_history, generation_parameters_copypaste, call_queue, script_callbacks
from modules import timer, shared, paths, theme, sd_models, modelloader, generation_parameters_copypaste, call_queue, script_callbacks
from modules import ui_common, ui_loadsave, ui_history, ui_components, ui_symbols
text_settings = None # holds json of entire shared.opts
@@ -275,6 +276,15 @@ def create_ui():
shutdown_submit.click(fn=lambda: shared.restart_server(restart=False), _js="restartReload")
def reset_quicksettings(components):
components = components.split(',')
updates = []
for key in components:
shared.log.warning(f'Reset: setting={key}')
updates.append(gr.update(value=shared.opts.get_default(key)))
return updates
def create_quicksettings(interfaces):
shared.tab_names = []
for _interface, label, _ifid in interfaces:
@@ -282,9 +292,16 @@ def create_quicksettings(interfaces):
with gr.Blocks(theme=theme.gradio_theme, analytics_enabled=False, title="SD.Next") as ui_app:
with gr.Row(elem_id="quicksettings", variant="compact"):
quicksetting_components = []
quicksetting_keys = []
for k, _item in sorted(quicksettings_list, key=lambda x: quicksettings_names.get(x[1], x[0])):
component = create_setting_component(k, is_quicksettings=True)
quicksetting_components.append(component)
quicksetting_keys.append(k)
shared.settings_components[k] = component
quicksetting_keys = gr.State(value=','.join(quicksetting_keys), elem_id="quicksettings_keys")
btn_reset = ui_components.ToolButton(value=ui_symbols.clear, visible=True, elem_id="quicksettings_reset")
btn_reset.click(fn=reset_quicksettings, inputs=[quicksetting_keys], outputs=quicksetting_components)
generation_parameters_copypaste.connect_paste_params_buttons()
+95
View File
@@ -0,0 +1,95 @@
from rich import print as rprint
rprint('starting chroma conversion')
import os
import torch
import transformers
import diffusers
import huggingface_hub as hf
from rich.traceback import install as install_traceback
convert = True
test = False
upload = True
input_files = [
'chroma-unlocked-v48.safetensors',
'chroma-unlocked-v48-detail-calibrated.safetensors',
'chroma-unlocked-v46-flash.safetensors',
]
input_folder = '/mnt/models/UNET'
output_folder = '/mnt/models/Diffusers'
cache_dir = '/mnt/models/huggingface'
hf_token = ''
dtype = torch.bfloat16
device = torch.device('cuda')
install_traceback(show_locals=False)
rprint(f'torch={torch.__version__} diffusers={diffusers.__version__} transformers={transformers.__version__}')
for input_file in input_files:
input_basename = os.path.splitext(input_file)[0]
input_model = os.path.join(input_folder, input_file)
output_model = os.path.join(output_folder, input_basename)
if convert:
rprint(f'load transformer: {input_model}')
transformer = diffusers.ChromaTransformer2DModel.from_single_file(
input_model,
torch_dtype=dtype,
cache_dir=cache_dir,
).to(device)
rprint(f'load text-encoder')
text_encoder = transformers.T5EncoderModel.from_pretrained(
"black-forest-labs/FLUX.1-schnell",
subfolder="text_encoder_2",
torch_dtype=dtype,
cache_dir=cache_dir,
).to(device)
rprint(f'load tokenizer')
tokenizer = transformers.T5Tokenizer.from_pretrained(
"black-forest-labs/FLUX.1-schnell",
subfolder="tokenizer_2",
cache_dir=cache_dir,
)
rprint(f'load pipeline')
pipe = diffusers.ChromaPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev",
transformer=transformer,
text_encoder=text_encoder,
tokenizer=tokenizer,
torch_dtype=dtype,
cache_dir=cache_dir,
).to(device)
rprint(f'save pipeline: {output_model}')
pipe.save_pretrained(
output_model,
)
if test:
rprint('test load')
pipe = diffusers.ChromaPipeline.from_pretrained(
output_model,
torch_dtype=dtype,
cache_dir=cache_dir,
)
if upload:
rprint('hf login')
hf.logout()
hf.login(token=hf_token, add_to_git_credential=False, write_permission=True)
rprint('upload model')
pipe.push_to_hub(
input_basename,
private=False,
token=hf_token,
)
pipe = None
rprint(f'done')