mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 09:14:35 +02:00
add quicksettings reset button
Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Submodule extensions-builtin/sdnext-modernui updated: 9ee81f7cb6...d6c42efe59
@@ -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
@@ -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
@@ -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()
|
||||
|
||||
|
||||
@@ -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')
|
||||
Reference in New Issue
Block a user