Skip to content

Commit 4c34fc6

Browse files
authored
Merge branch 'AUTOMATIC1111:master' into master
2 parents 667569c + c0ee148 commit 4c34fc6

File tree

7 files changed

+193
-95
lines changed

7 files changed

+193
-95
lines changed

javascript/ui.js

+11
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,17 @@ onUiUpdate(function(){
188188
img2img_textarea = gradioApp().querySelector("#img2img_prompt > label > textarea");
189189
img2img_textarea?.addEventListener("input", () => update_token_counter("img2img_token_button"));
190190
}
191+
192+
show_all_pages = gradioApp().getElementById('settings_show_all_pages')
193+
settings_tabs = gradioApp().querySelector('#settings div')
194+
if(show_all_pages && settings_tabs){
195+
settings_tabs.appendChild(show_all_pages)
196+
show_all_pages.onclick = function(){
197+
gradioApp().querySelectorAll('#settings > div').forEach(function(elem){
198+
elem.style.display = "block";
199+
})
200+
}
201+
}
191202
})
192203

193204
let txt2img_textarea, img2img_textarea = undefined;

modules/generation_parameters_copypaste.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import gradio as gr
99
from modules.shared import script_path
10-
from modules import shared
10+
from modules import shared, ui_tempdir
1111
import tempfile
1212
from PIL import Image
1313

@@ -39,7 +39,7 @@ def quote(text):
3939
def image_from_url_text(filedata):
4040
if type(filedata) == dict and filedata["is_file"]:
4141
filename = filedata["name"]
42-
is_in_right_dir = any([filename in fileset for fileset in shared.demo.temp_file_sets])
42+
is_in_right_dir = ui_tempdir.check_tmp_file(shared.demo, filename)
4343
assert is_in_right_dir, 'trying to open image file outside of allowed directories'
4444

4545
return Image.open(filename)

modules/shared.py

+13
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,17 @@
109109
"outdir_save",
110110
}
111111

112+
ui_reorder_categories = [
113+
"sampler",
114+
"dimensions",
115+
"cfg",
116+
"seed",
117+
"checkboxes",
118+
"hires_fix",
119+
"batch",
120+
"scripts",
121+
]
122+
112123
cmd_opts.disable_extension_access = (cmd_opts.share or cmd_opts.listen or cmd_opts.server_name) and not cmd_opts.enable_insecure_extension_access
113124

114125
devices.device, devices.device_interrogate, devices.device_gfpgan, devices.device_esrgan, devices.device_codeformer = \
@@ -410,7 +421,9 @@ def list_samplers():
410421
"js_modal_lightbox_initially_zoomed": OptionInfo(True, "Show images zoomed in by default in full page image viewer"),
411422
"show_progress_in_title": OptionInfo(True, "Show generation progress in window title."),
412423
"samplers_in_dropdown": OptionInfo(True, "Use dropdown for sampler selection instead of radio group"),
424+
"dimensions_and_batch_together": OptionInfo(True, "Show Witdth/Height and Batch sliders in same row"),
413425
'quicksettings': OptionInfo("sd_model_checkpoint", "Quicksettings list"),
426+
'ui_reorder': OptionInfo(", ".join(ui_reorder_categories), "txt2img/ing2img UI item order"),
414427
'localization': OptionInfo("None", "Localization (requires restart)", gr.Dropdown, lambda: {"choices": ["None"] + list(localization.localizations.keys())}, refresh=lambda: localization.list_localizations(cmd_opts.localizations_dir)),
415428
}))
416429

modules/ui.py

+118-77
Large diffs are not rendered by default.

modules/ui_components.py

+7
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ class FormRow(gr.Row, gr.components.FormComponent):
1616

1717
def get_block_name(self):
1818
return "row"
19+
20+
21+
class FormGroup(gr.Group, gr.components.FormComponent):
22+
"""Same as gr.Row but fits inside gradio forms"""
23+
24+
def get_block_name(self):
25+
return "group"

modules/ui_tempdir.py

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import os
22
import tempfile
33
from collections import namedtuple
4+
from pathlib import Path
45

56
import gradio as gr
67

@@ -12,10 +13,28 @@
1213
Savedfile = namedtuple("Savedfile", ["name"])
1314

1415

16+
def register_tmp_file(gradio, filename):
17+
if hasattr(gradio, 'temp_file_sets'): # gradio 3.15
18+
gradio.temp_file_sets[0] = gradio.temp_file_sets[0] | {os.path.abspath(filename)}
19+
20+
if hasattr(gradio, 'temp_dirs'): # gradio 3.9
21+
gradio.temp_dirs = gradio.temp_dirs | {os.path.abspath(os.path.dirname(filename))}
22+
23+
24+
def check_tmp_file(gradio, filename):
25+
if hasattr(gradio, 'temp_file_sets'):
26+
return any([filename in fileset for fileset in gradio.temp_file_sets])
27+
28+
if hasattr(gradio, 'temp_dirs'):
29+
return any(Path(temp_dir).resolve() in Path(filename).resolve().parents for temp_dir in gradio.temp_dirs)
30+
31+
return False
32+
33+
1534
def save_pil_to_file(pil_image, dir=None):
1635
already_saved_as = getattr(pil_image, 'already_saved_as', None)
1736
if already_saved_as and os.path.isfile(already_saved_as):
18-
shared.demo.temp_file_sets[0] = shared.demo.temp_file_sets[0] | {os.path.abspath(already_saved_as)}
37+
register_tmp_file(shared.demo, already_saved_as)
1938

2039
file_obj = Savedfile(already_saved_as)
2140
return file_obj
@@ -45,7 +64,7 @@ def on_tmpdir_changed():
4564

4665
os.makedirs(shared.opts.temp_dir, exist_ok=True)
4766

48-
shared.demo.temp_file_sets[0] = shared.demo.temp_file_sets[0] | {os.path.abspath(shared.opts.temp_dir)}
67+
register_tmp_file(shared.demo, os.path.join(shared.opts.temp_dir, "x"))
4968

5069

5170
def cleanup_tmpdr():

style.css

+21-14
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@
7474
}
7575

7676
[id$=_random_seed], [id$=_random_subseed], [id$=_reuse_seed], [id$=_reuse_subseed], #open_folder{
77-
min-width: auto;
77+
min-width: 2.3em;
78+
height: 2.5em;
7879
flex-grow: 0;
7980
padding-left: 0.25em;
8081
padding-right: 0.25em;
@@ -86,6 +87,7 @@
8687

8788
[id$=_seed_row], [id$=_subseed_row]{
8889
gap: 0.5rem;
90+
padding: 0.6em;
8991
}
9092

9193
[id$=_subseed_show_box]{
@@ -206,24 +208,24 @@ button{
206208

207209
fieldset span.text-gray-500, .gr-block.gr-box span.text-gray-500, label.block span{
208210
position: absolute;
209-
top: -0.6em;
211+
top: -0.7em;
210212
line-height: 1.2em;
211-
padding: 0 0.5em;
212-
margin: 0;
213+
padding: 0;
214+
margin: 0 0.5em;
213215

214216
background-color: white;
215-
border-top: 1px solid #eee;
216-
border-left: 1px solid #eee;
217-
border-right: 1px solid #eee;
217+
box-shadow: 6px 0 6px 0px white, -6px 0 6px 0px white;
218218

219219
z-index: 300;
220220
}
221221

222222
.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span{
223223
background-color: rgb(31, 41, 55);
224-
border-top: 1px solid rgb(55 65 81);
225-
border-left: 1px solid rgb(55 65 81);
226-
border-right: 1px solid rgb(55 65 81);
224+
box-shadow: 6px 0 6px 0px rgb(31, 41, 55), -6px 0 6px 0px rgb(31, 41, 55);
225+
}
226+
227+
#txt2img_column_batch, #img2img_column_batch{
228+
min-width: min(13.5em, 100%) !important;
227229
}
228230

229231
#settings fieldset span.text-gray-500, #settings .gr-block.gr-box span.text-gray-500, #settings label.block span{
@@ -232,10 +234,6 @@ fieldset span.text-gray-500, .gr-block.gr-box span.text-gray-500, label.block s
232234
margin-right: 8em;
233235
}
234236

235-
.gr-panel div.flex-col div.justify-between label span{
236-
margin: 0;
237-
}
238-
239237
#settings .gr-panel div.flex-col div.justify-between div{
240238
position: relative;
241239
z-index: 200;
@@ -609,6 +607,15 @@ img2maskimg, #img2maskimg > .h-60, #img2maskimg > .h-60 > div, #img2maskimg > .h
609607
}
610608

611609

610+
#img2img_settings > div.gr-form, #txt2img_settings > div.gr-form {
611+
padding-top: 0.9em;
612+
}
613+
614+
#img2img_settings div.gr-form .gr-form, #txt2img_settings div.gr-form .gr-form{
615+
border: none;
616+
padding-bottom: 0.5em;
617+
}
618+
612619

613620
/* The following handles localization for right-to-left (RTL) languages like Arabic.
614621
The rtl media type will only be activated by the logic in javascript/localization.js.

0 commit comments

Comments
 (0)