From 9f0da9f6edfb9be1d69ba3492a61d96db769307b Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Mon, 20 Mar 2023 16:09:36 +0300
Subject: initial gradio 3.22 support
---
style.css | 626 ++++++++++++++++++--------------------------------------------
1 file changed, 177 insertions(+), 449 deletions(-)
(limited to 'style.css')
diff --git a/style.css b/style.css
index 3eac2b17..936930fd 100644
--- a/style.css
+++ b/style.css
@@ -1,270 +1,259 @@
-.container {
- max-width: 100%;
-}
-.token-counter{
- position: absolute;
- display: inline-block;
- right: 2em;
- min-width: 0 !important;
- width: auto;
- z-index: 100;
-}
+/* general gradio fixes */
-.token-counter.error span{
- box-shadow: 0 0 0.0 0.3em rgba(255,0,0,0.15), inset 0 0 0.6em rgba(255,0,0,0.075);
- border: 2px solid rgba(255,0,0,0.4) !important;
+:root{
+ --checkbox-label-gap: 0.25em 0.1em;
+ --section-header-text-size: 12pt;
}
-.token-counter div{
- display: inline;
+.block.padded{
+ padding: 0.2em 0.5em !important;
}
-.token-counter span{
- padding: 0.1em 0.75em;
+div.gradio-container{
+ max-width: unset !important;
}
-#sh{
- min-width: 2em;
- min-height: 2em;
- max-width: 2em;
- max-height: 2em;
- flex-grow: 0;
- padding-left: 0.25em;
- padding-right: 0.25em;
- margin: 0.1em 0;
- opacity: 0%;
- cursor: default;
+.hidden{
+ display: none;
}
-.output-html p {margin: 0 0.5em;}
-
-.row > *,
-.row > .gr-form > * {
- min-width: min(120px, 100%);
- flex: 1 1 0%;
+.compact{
+ background: transparent !important;
+ padding: 0 !important;
}
-.performance {
- font-size: 0.85em;
- color: #444;
+div.form{
+ border-width: 0;
+ box-shadow: none;
+ background: transparent;
+ overflow: visible;
+ gap: 0.5em;
}
-.performance p{
- display: inline-block;
+.block.gradio-dropdown,
+.block.gradio-slider,
+.block.gradio-checkbox,
+.block.gradio-textbox,
+.block.gradio-radio,
+.block.gradio-checkboxgroup,
+.block.gradio-number
+{
+ border-width: 0 !important;
+ box-shadow: none !important;
}
-.performance .time {
- margin-right: 0;
+.gap.compact{
+ padding: 0;
+ gap: 0;
}
-.performance .vram {
+div.compact{
+ gap: 0.5em;
}
-#txt2img_generate, #img2img_generate {
- min-height: 4.5em;
+.gradio-dropdown ul.options{
+ max-height: 35em;
}
-@media screen and (min-width: 2500px) {
- #txt2img_gallery, #img2img_gallery {
- min-height: 768px;
- }
+.gradio-dropdown label span:not(.has-info){
+ margin-bottom: 0;
}
-#txt2img_gallery img, #img2img_gallery img{
- object-fit: scale-down;
-}
-#txt2img_actions_column, #img2img_actions_column {
- margin: 0.35rem 0.75rem 0.35rem 0;
-}
-#script_list {
- padding: .625rem .75rem 0 .625rem;
-}
-.justify-center.overflow-x-scroll {
- justify-content: left;
+.gradio-dropdown div.wrap.wrap.wrap.wrap{
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
-.justify-center.overflow-x-scroll button:first-of-type {
- margin-left: auto;
+.gradio-slider input[type="number"]{
+ width: 6em;
}
-.justify-center.overflow-x-scroll button:last-of-type {
- margin-right: auto;
+.block.gradio-checkbox {
+ margin: 0.75em 1.5em 0 0;
}
-[id$=_random_seed], [id$=_random_subseed], [id$=_reuse_seed], [id$=_reuse_subseed], #open_folder{
- min-width: 2.3em;
- height: 2.5em;
- flex-grow: 0;
- padding-left: 0.25em;
- padding-right: 0.25em;
-}
+/* general styled components */
-#hidden_element{
- display: none;
+.gradio-button.tool{
+ max-width: 2.2em;
+ min-width: 2.2em !important;
+ height: 2.4em;
+ align-self: end;
+ line-height: 1em;
+ border-radius: 0.5em;
}
-[id$=_seed_row], [id$=_subseed_row]{
- gap: 0.5rem;
- padding: 0.6em;
+.checkboxes-row{
+ margin-bottom: 0.5em;
+ margin-left: 0em;
}
-
-[id$=_subseed_show_box]{
+.checkboxes-row > div{
+ flex: 0;
+ white-space: nowrap;
min-width: auto;
- flex-grow: 0;
}
-[id$=_subseed_show_box] > div{
- border: 0;
- height: 100%;
-}
-[id$=_subseed_show]{
- min-width: auto;
- flex-grow: 0;
- padding: 0;
-}
+/* txt2img/img2img specific */
-[id$=_subseed_show] label{
- height: 100%;
+.block.token-counter{
+ position: absolute;
+ display: inline-block;
+ right: 1em;
+ min-width: 0 !important;
+ width: auto;
+ z-index: 100;
}
-#txt2img_actions_column, #img2img_actions_column{
- gap: 0;
- margin-right: .75rem;
+.block.token-counter span{
+ background: var(--input-background-fill) !important;
+ box-shadow: 0 0 0.0 0.3em rgba(192,192,192,0.15), inset 0 0 0.6em rgba(192,192,192,0.075);
+ border: 2px solid rgba(192,192,192,0.4) !important;
+ border-radius: 0.4em;
}
-#txt2img_tools, #img2img_tools{
- gap: 0.4em;
+.block.token-counter.error span{
+ box-shadow: 0 0 0.0 0.3em rgba(255,0,0,0.15), inset 0 0 0.6em rgba(255,0,0,0.075);
+ border: 2px solid rgba(255,0,0,0.4) !important;
}
-#interrogate_col{
- min-width: 0 !important;
- max-width: 8em !important;
- margin-right: 1em;
- gap: 0;
-}
-#interrogate, #deepbooru{
- margin: 0em 0.25em 0.5em 0.25em;
- min-width: 8em;
- max-width: 8em;
+.block.token-counter div{
+ display: inline;
}
-#style_pos_col, #style_neg_col{
- min-width: 8em !important;
+.block.token-counter span{
+ padding: 0.1em 0.75em;
}
-#txt2img_styles_row, #img2img_styles_row{
- gap: 0.25em;
- margin-top: 0.3em;
+[id$=_subseed_show]{
+ min-width: auto !important;
+ flex-grow: 0 !important;
+ display: flex;
}
-#txt2img_styles_row > button, #img2img_styles_row > button{
- margin: 0;
+[id$=_subseed_show] label{
+ margin-bottom: 0.5em;
+ align-self: end;
}
-#txt2img_styles, #img2img_styles{
- padding: 0;
+.performance {
+ font-size: 0.85em;
+ color: #444;
}
-#txt2img_styles > label > div, #img2img_styles > label > div{
- min-height: 3.2em;
+.performance p{
+ display: inline-block;
}
-ul.list-none{
- max-height: 35em;
- z-index: 2000;
+.performance .time {
+ margin-right: 0;
}
-.gr-form{
- background: transparent;
+.performance .vram {
}
-.my-4{
- margin-top: 0;
- margin-bottom: 0;
+#txt2img_generate, #img2img_generate {
+ min-height: 4.5em;
}
-#resize_mode{
- flex: 1.5;
+@media screen and (min-width: 2500px) {
+ #txt2img_gallery, #img2img_gallery {
+ min-height: 768px;
+ }
}
-button{
- align-self: stretch !important;
+#txt2img_gallery img, #img2img_gallery img{
+ object-fit: scale-down;
}
-
-.overflow-hidden, .gr-panel{
- overflow: visible !important;
+#txt2img_actions_column, #img2img_actions_column {
+ gap: 0.5em;
+}
+#txt2img_tools, #img2img_tools{
+ gap: 0.4em;
}
-#x_type, #y_type{
- max-width: 10em;
+.interrogate-col{
+ min-width: 0 !important;
+ max-width: fit-content;
+ gap: 0.5em;
+}
+.interrogate-col > button{
+ min-width: 8em;
+ max-width: 8em;
+ height: 5.45em;
}
-#txt2img_preview, #img2img_preview, #ti_preview{
+.generate-box{
+ position: relative;
+}
+.gradio-button.generate-box-skip, .gradio-button.generate-box-interrupt{
position: absolute;
- width: 320px;
+ width: 50%;
+ height: 100%;
+ display: none;
+}
+.gradio-button.generate-box-interrupt{
left: 0;
+ border-radius: 0.5rem 0 0 0.5rem;
+}
+.gradio-button.generate-box-skip{
right: 0;
- margin-left: auto;
- margin-right: auto;
- margin-top: 34px;
- z-index: 100;
- border: none;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
+ border-radius: 0 0.5rem 0.5rem 0;
}
-@media screen and (min-width: 768px) {
- #txt2img_preview, #img2img_preview, #ti_preview {
- position: absolute;
- }
+#txtimg_hr_finalres{
+ min-height: 0 !important;
+ padding: .625rem .75rem;
+ margin-left: -0.75em
}
-@media screen and (max-width: 767px) {
- #txt2img_preview, #img2img_preview, #ti_preview {
- position: relative;
- }
+#txtimg_hr_finalres .resolution{
+ font-weight: bold;
}
-#txt2img_preview div.left-0.top-0, #img2img_preview div.left-0.top-0, #ti_preview div.left-0.top-0{
- display: none;
+.inactive{
+ opacity: 0.5;
}
-fieldset span.text-gray-500, .gr-block.gr-box span.text-gray-500, label.block span{
- position: absolute;
- top: -0.7em;
- line-height: 1.2em;
- padding: 0;
- margin: 0 0.5em;
-
- background-color: white;
- box-shadow: 6px 0 6px 0px white, -6px 0 6px 0px white;
+[id$=_column_batch]{
+ min-width: min(13.5em, 100%) !important;
+}
- z-index: 300;
+[id$=_dimensions_row]{
+ min-width: 0 !important;
+ max-width: fit-content;
+ padding: 0 1em;
}
-.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span{
- background-color: rgb(31, 41, 55);
- box-shadow: none;
- border: 1px solid rgba(128, 128, 128, 0.1);
- border-radius: 6px;
- padding: 0.1em 0.5em;
+#mode_img2img .gradio-image > div.fixed-height, #mode_img2img .gradio-image > div.fixed-height img{
+ height: 480px !important;
+ max-height: 480px !important;
+ min-height: 480px !important;
}
-#txt2img_column_batch, #img2img_column_batch{
- min-width: min(13.5em, 100%) !important;
+
+/* settings */
+#quicksettings {
+ width: fit-content;
}
-#settings fieldset span.text-gray-500, #settings .gr-block.gr-box span.text-gray-500, #settings label.block span{
- position: relative;
+#quicksettings > div, #quicksettings > fieldset{
+ max-width: 24em;
+ min-width: 24em;
+ padding: 0;
border: none;
- margin-right: 8em;
+ box-shadow: none;
+ background: none;
+ margin-right: 10px;
}
-#settings .gr-panel div.flex-col div.justify-between div{
- position: relative;
- z-index: 200;
+#quicksettings .gradio-dropdown .wrap-inner{
+ flex-wrap: unset;
+}
+
+#quicksettings .gradio-dropdown .single-select{
+ white-space: nowrap;
+ overflow: hidden;
}
#settings{
@@ -276,14 +265,14 @@ fieldset span.text-gray-500, .gr-block.gr-box span.text-gray-500, label.block s
margin-left: 10em;
}
-#settings > div.flex-wrap{
+#settings > div.tab-nav{
float: left;
display: block;
margin-left: 0;
width: 10em;
}
-#settings > div.flex-wrap button{
+#settings > div.tab-nav button{
display: block;
border: none;
text-align: left;
@@ -294,29 +283,8 @@ fieldset span.text-gray-500, .gr-block.gr-box span.text-gray-500, label.block s
margin: 0 1.2em;
}
-input[type="range"]{
- margin: 0.5em 0 -0.3em 0;
-}
-
-#mask_bug_info {
- text-align: center;
- display: block;
- margin-top: -0.75em;
- margin-bottom: -0.75em;
-}
-
-#txt2img_negative_prompt, #img2img_negative_prompt{
-}
-
-/* gradio 3.8 adds opacity to progressbar which makes it blink; disable it here */
-.transition.opacity-20 {
- opacity: 1 !important;
-}
-
-/* more gradio's garbage cleanup */
-.min-h-\[4rem\] { min-height: unset !important; }
-.min-h-\[6rem\] { min-height: unset !important; }
+/* live preview */
.progressDiv{
position: relative;
height: 20px;
@@ -362,6 +330,8 @@ input[type="range"]{
height: 100%;
}
+/* fullscreen popup (ie in Lora's (i) button) */
+
.popup-metadata{
color: black;
background: white;
@@ -402,6 +372,8 @@ input[type="range"]{
padding: 2em;
}
+/* fullpage image viewer */
+
#lightboxModal{
display: none;
position: fixed;
@@ -512,45 +484,7 @@ input[type="range"]{
background-color: rgba(0, 0, 0, 0.8);
}
-#imageARPreview{
- position:absolute;
- top:0px;
- left:0px;
- border:2px solid red;
- background:rgba(255, 0, 0, 0.3);
- z-index: 900;
- pointer-events:none;
- display:none
-}
-
-#txt2img_generate_box, #img2img_generate_box{
- position: relative;
-}
-
-#txt2img_interrupt, #img2img_interrupt, #txt2img_skip, #img2img_skip{
- position: absolute;
- width: 50%;
- height: 100%;
- background: #b4c0cc;
- display: none;
-}
-
-#txt2img_interrupt, #img2img_interrupt{
- left: 0;
- border-radius: 0.5rem 0 0 0.5rem;
-}
-#txt2img_skip, #img2img_skip{
- right: 0;
- border-radius: 0 0.5rem 0.5rem 0;
-}
-
-.red {
- color: red;
-}
-
-.gallery-item {
- --tw-bg-opacity: 0 !important;
-}
+/* context menu (ie for the generate button) */
#context-menu{
z-index:9999;
@@ -579,61 +513,8 @@ input[type="range"]{
background: #a55000;
}
-#quicksettings {
- width: fit-content;
-}
-#quicksettings > div, #quicksettings > fieldset{
- max-width: 24em;
- min-width: 24em;
- padding: 0;
- border: none;
- box-shadow: none;
- background: none;
- margin-right: 10px;
-}
-
-#quicksettings > div > div > div > label > span {
- position: relative;
- margin-right: 9em;
- margin-bottom: -1em;
-}
-
-canvas[key="mask"] {
- z-index: 12 !important;
- filter: invert();
- mix-blend-mode: multiply;
- pointer-events: none;
-}
-
-
-/* gradio 3.4.1 stuff for editable scrollbar values */
-.gr-box > div > div > input.gr-text-input{
- position: absolute;
- right: 0.5em;
- top: -0.6em;
- z-index: 400;
- width: 6em;
-}
-#quicksettings .gr-box > div > div > input.gr-text-input {
- top: -1.12em;
-}
-
-.row.gr-compact{
- overflow: visible;
-}
-
-#img2img_image, #img2img_image > .h-60, #img2img_image > .h-60 > div, #img2img_image > .h-60 > div > img,
-#img2img_sketch, #img2img_sketch > .h-60, #img2img_sketch > .h-60 > div, #img2img_sketch > .h-60 > div > img,
-#img2maskimg, #img2maskimg > .h-60, #img2maskimg > .h-60 > div, #img2maskimg > .h-60 > div > img,
-#inpaint_sketch, #inpaint_sketch > .h-60, #inpaint_sketch > .h-60 > div, #inpaint_sketch > .h-60 > div > img
-{
- height: 480px !important;
- max-height: 480px !important;
- min-height: 480px !important;
-}
-
-/* Extensions */
+/* extensions */
#tab_extensions table{
border-collapse: collapse;
@@ -646,6 +527,7 @@ canvas[key="mask"] {
#tab_extensions table input[type="checkbox"]{
margin-right: 0.5em;
+ appearance: checkbox;
}
#tab_extensions button{
@@ -670,74 +552,7 @@ canvas[key="mask"] {
font-size: 90%;
}
-#image_buttons_txt2img button, #image_buttons_img2img button, #image_buttons_extras button{
- min-width: auto;
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-.gr-form{
- background-color: white;
-}
-
-.dark .gr-form{
- background-color: rgb(31 41 55 / var(--tw-bg-opacity));
-}
-
-.gr-button-tool, .gr-button-tool-top{
- max-width: 2.5em;
- min-width: 2.5em !important;
- height: 2.4em;
-}
-
-.gr-button-tool{
- margin: 0.6em 0em 0.55em 0;
-}
-
-.gr-button-tool-top, #settings .gr-button-tool{
- margin: 1.6em 0.7em 0.55em 0;
-}
-
-
-#modelmerger_results_container{
- margin-top: 1em;
- overflow: visible;
-}
-
-#modelmerger_models{
- gap: 0;
-}
-
-
-#quicksettings .gr-button-tool{
- margin: 0;
- border-color: unset;
- background-color: unset;
-}
-
-#modelmerger_interp_description>p {
- margin: 0!important;
- text-align: center;
-}
-#modelmerger_interp_description {
- margin: 0.35rem 0.75rem 1.23rem;
-}
-#img2img_settings > div.gr-form, #txt2img_settings > div.gr-form {
- padding-top: 0.9em;
- padding-bottom: 0.9em;
-}
-#txt2img_settings {
- padding-top: 1.16em;
- padding-bottom: 0.9em;
-}
-#img2img_settings {
- padding-bottom: 0.9em;
-}
-
-#img2img_settings div.gr-form .gr-form, #txt2img_settings div.gr-form .gr-form, #train_tabs div.gr-form .gr-form{
- border: none;
- padding-bottom: 0.5em;
-}
+/* replace original footer with ours */
footer {
display: none !important;
@@ -756,90 +571,7 @@ footer {
opacity: 0.85;
}
-#txtimg_hr_finalres{
- min-height: 0 !important;
- padding: .625rem .75rem;
- margin-left: -0.75em
-
-}
-
-#txtimg_hr_finalres .resolution{
- font-weight: bold;
-}
-
-#txt2img_checkboxes, #img2img_checkboxes{
- margin-bottom: 0.5em;
- margin-left: 0em;
-}
-#txt2img_checkboxes > div, #img2img_checkboxes > div{
- flex: 0;
- white-space: nowrap;
- min-width: auto;
-}
-
-#img2img_copy_to_img2img, #img2img_copy_to_sketch, #img2img_copy_to_inpaint, #img2img_copy_to_inpaint_sketch{
- margin-left: 0em;
-}
-
-#axis_options {
- margin-left: 0em;
-}
-
-.inactive{
- opacity: 0.5;
-}
-
-[id*='_prompt_container']{
- gap: 0;
-}
-
-[id*='_prompt_container'] > div{
- margin: -0.4em 0 0 0;
-}
-
-.gr-compact {
- border: none;
-}
-
-.dark .gr-compact{
- background-color: rgb(31 41 55 / var(--tw-bg-opacity));
- margin-left: 0;
-}
-
-.gr-compact{
- overflow: visible;
-}
-
-.gr-compact > *{
-}
-
-.gr-compact .gr-block, .gr-compact .gr-form{
- border: none;
- box-shadow: none;
-}
-
-.gr-compact .gr-box{
- border-radius: .5rem !important;
- border-width: 1px !important;
-}
-
-#mode_img2img > div > div{
- gap: 0 !important;
-}
-
-[id*='img2img_copy_to_'] {
- border: none;
-}
-
-[id*='img2img_copy_to_'] > button {
-}
-
-[id*='img2img_label_copy_to_'] {
- font-size: 1.0em;
- font-weight: bold;
- text-align: center;
- line-height: 2.4em;
-}
+/* extra networks UI */
.extra-networks > div > [id *= '_extra_']{
margin: 0.3em;
@@ -1025,7 +757,3 @@ footer {
.extra-network-cards .card ul a:hover{
color: red;
}
-
-[id*='_prompt_container'] > div {
- margin: 0!important;
-}
--
cgit v1.2.3
From 9b2f20540004c47733ee47fb6bf58a41161ac0da Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Tue, 21 Mar 2023 06:49:19 +0300
Subject: fix ctrl+up/down attention edit fix dropdown obscured by live preview
stylistic changes
---
javascript/edit-attention.js | 2 +-
modules/ui.py | 4 ++--
style.css | 12 +++++++++++-
3 files changed, 14 insertions(+), 4 deletions(-)
(limited to 'style.css')
diff --git a/javascript/edit-attention.js b/javascript/edit-attention.js
index 619bb1fa..20a5aadf 100644
--- a/javascript/edit-attention.js
+++ b/javascript/edit-attention.js
@@ -1,6 +1,6 @@
function keyupEditAttention(event){
let target = event.originalTarget || event.composedPath()[0];
- if (!target.matches("[id*='_toprow'] textarea.gr-text-input[placeholder]")) return;
+ if (! target.matches("[id*='_toprow'] [id*='_prompt'] textarea")) return;
if (! (event.metaKey || event.ctrlKey)) return;
let isPlus = event.key == "ArrowUp"
diff --git a/modules/ui.py b/modules/ui.py
index 80807ce3..6e0ac89f 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -587,7 +587,7 @@ def create_ui():
txt2img_prompt.submit(**txt2img_args)
submit.click(**txt2img_args)
- res_switch_btn.click(lambda w, h: (h, w), inputs=[width, height], outputs=[width, height])
+ res_switch_btn.click(lambda w, h: (h, w), inputs=[width, height], outputs=[width, height], show_progress=False)
txt_prompt_img.change(
fn=modules.images.image_data,
@@ -907,7 +907,7 @@ def create_ui():
img2img_prompt.submit(**img2img_args)
submit.click(**img2img_args)
- res_switch_btn.click(lambda w, h: (h, w), inputs=[width, height], outputs=[width, height])
+ res_switch_btn.click(lambda w, h: (h, w), inputs=[width, height], outputs=[width, height], show_progress=False)
img2img_interrogate.click(
fn=lambda *args: process_interrogate(interrogate, *args),
diff --git a/style.css b/style.css
index 936930fd..692833bd 100644
--- a/style.css
+++ b/style.css
@@ -1,9 +1,10 @@
/* general gradio fixes */
-:root{
+:root, .dark{
--checkbox-label-gap: 0.25em 0.1em;
--section-header-text-size: 12pt;
+ --block-background-fill: transparent;
}
.block.padded{
@@ -54,6 +55,7 @@ div.compact{
.gradio-dropdown ul.options{
max-height: 35em;
+ z-index: 3000;
}
.gradio-dropdown label span:not(.has-info){
@@ -72,6 +74,13 @@ div.compact{
margin: 0.75em 1.5em 0 0;
}
+.gradio-html div.wrap{
+ height: 100%;
+}
+div.gradio-html.min{
+ min-height: 0;
+}
+
/* general styled components */
.gradio-button.tool{
@@ -103,6 +112,7 @@ div.compact{
min-width: 0 !important;
width: auto;
z-index: 100;
+ top: -0.75em;
}
.block.token-counter span{
--
cgit v1.2.3
From 43a0912a07376fd045095de0fea54de098b113ef Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Tue, 21 Mar 2023 08:18:14 +0300
Subject: hide delete button for single-item dropdown more stylistic changes
---
modules/scripts.py | 15 +++++++++++++--
modules/ui.py | 2 ++
modules/ui_common.py | 2 +-
style.css | 43 ++++++++++++++++++++++++++++++++++---------
4 files changed, 50 insertions(+), 12 deletions(-)
(limited to 'style.css')
diff --git a/modules/scripts.py b/modules/scripts.py
index 40d8dcc6..8f55cf24 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -513,6 +513,18 @@ def reload_scripts():
scripts_postproc = scripts_postprocessing.ScriptPostprocessingRunner()
+def add_classes_to_gradio_component(comp):
+ """
+ this adds gradio-* to the component for css styling (ie gradio-button to gr.Button), as well as some others
+ """
+
+ comp.elem_classes = ["gradio-" + comp.get_block_name(), *(comp.elem_classes or [])]
+
+ if getattr(comp, 'multiselect', False):
+ comp.elem_classes.append('multiselect')
+
+
+
def IOComponent_init(self, *args, **kwargs):
if scripts_current is not None:
scripts_current.before_component(self, **kwargs)
@@ -521,8 +533,7 @@ def IOComponent_init(self, *args, **kwargs):
res = original_IOComponent_init(self, *args, **kwargs)
- # this adds gradio-* to every component for css styling (ie gradio-button to gr.Button)
- self.elem_classes = ["gradio-" + self.get_block_name(), *(self.elem_classes or [])]
+ add_classes_to_gradio_component(self)
script_callbacks.after_component_callback(self, **kwargs)
diff --git a/modules/ui.py b/modules/ui.py
index 6e0ac89f..c5b0e876 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -1601,11 +1601,13 @@ def create_ui():
for i, k, item in quicksettings_list:
component = component_dict[k]
+ info = opts.data_labels[k]
component.change(
fn=lambda value, k=k: run_settings_single(value, key=k),
inputs=[component],
outputs=[component, text_settings],
+ show_progress=info.refresh is not None,
)
text_settings.change(
diff --git a/modules/ui_common.py b/modules/ui_common.py
index d4e00829..7b752b45 100644
--- a/modules/ui_common.py
+++ b/modules/ui_common.py
@@ -129,7 +129,7 @@ Requested path was: {f}
generation_info = None
with gr.Column():
- with gr.Row(elem_id=f"image_buttons_{tabname}"):
+ with gr.Row(elem_id=f"image_buttons_{tabname}", elem_classes="image-buttons"):
open_folder_button = gr.Button(folder_symbol, visible=not shared.cmd_opts.hide_ui_dir_config)
if tabname != "extras":
diff --git a/style.css b/style.css
index 692833bd..677f03cd 100644
--- a/style.css
+++ b/style.css
@@ -8,7 +8,7 @@
}
.block.padded{
- padding: 0.2em 0.5em !important;
+ padding: 0 !important;
}
div.gradio-container{
@@ -38,7 +38,8 @@ div.form{
.block.gradio-textbox,
.block.gradio-radio,
.block.gradio-checkboxgroup,
-.block.gradio-number
+.block.gradio-number,
+.block.gradio-colorpicker
{
border-width: 0 !important;
box-shadow: none !important;
@@ -46,11 +47,11 @@ div.form{
.gap.compact{
padding: 0;
- gap: 0;
+ gap: 0.2em 0;
}
div.compact{
- gap: 0.5em;
+ gap: 1em;
}
.gradio-dropdown ul.options{
@@ -58,7 +59,10 @@ div.compact{
z-index: 3000;
}
-.gradio-dropdown label span:not(.has-info){
+.gradio-dropdown label span:not(.has-info),
+.gradio-textbox label span:not(.has-info),
+.gradio-number label span:not(.has-info)
+{
margin-bottom: 0;
}
@@ -66,6 +70,14 @@ div.compact{
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
+.gradio-dropdown .token-remove.remove-all.remove-all{
+ display: none;
+}
+
+.gradio-dropdown.multiselect .token-remove.remove-all.remove-all{
+ display: flex;
+}
+
.gradio-slider input[type="number"]{
width: 6em;
}
@@ -81,6 +93,17 @@ div.gradio-html.min{
min-height: 0;
}
+.block.gradio-gallery{
+ background: var(--input-background-fill);
+}
+
+.gradio-container .prose a, .gradio-container .prose a:visited{
+ color: unset;
+ text-decoration: none;
+}
+
+
+
/* general styled components */
.gradio-button.tool{
@@ -188,9 +211,7 @@ div.gradio-html.min{
gap: 0.5em;
}
.interrogate-col > button{
- min-width: 8em;
- max-width: 8em;
- height: 5.45em;
+ flex: 1;
}
.generate-box{
@@ -241,6 +262,10 @@ div.gradio-html.min{
min-height: 480px !important;
}
+.image-buttons button{
+ min-width: auto;
+}
+
/* settings */
#quicksettings {
@@ -254,7 +279,6 @@ div.gradio-html.min{
border: none;
box-shadow: none;
background: none;
- margin-right: 10px;
}
#quicksettings .gradio-dropdown .wrap-inner{
@@ -286,6 +310,7 @@ div.gradio-html.min{
display: block;
border: none;
text-align: left;
+ white-space: initial;
}
#settings_result{
--
cgit v1.2.3
From af2db25c84c9a226ab34959e868fc18740418b4b Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Tue, 21 Mar 2023 08:49:08 +0300
Subject: enable queue by default more stylistic changes
---
modules/shared.py | 3 ++-
modules/ui.py | 4 ++--
modules/ui_extensions.py | 2 +-
style.css | 39 ++++++++++++++++++++++++++++-----------
webui.py | 2 +-
5 files changed, 34 insertions(+), 16 deletions(-)
(limited to 'style.css')
diff --git a/modules/shared.py b/modules/shared.py
index f28a12cc..0b70d104 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -107,7 +107,8 @@ parser.add_argument("--cors-allow-origins-regex", type=str, help="Allowed CORS o
parser.add_argument("--tls-keyfile", type=str, help="Partially enables TLS, requires --tls-certfile to fully function", default=None)
parser.add_argument("--tls-certfile", type=str, help="Partially enables TLS, requires --tls-keyfile to fully function", default=None)
parser.add_argument("--server-name", type=str, help="Sets hostname of server", default=None)
-parser.add_argument("--gradio-queue", action='store_true', help="Uses gradio queue; experimental option; breaks restart UI button")
+parser.add_argument("--gradio-queue", action='store_true', help="does not do anything", default=True)
+parser.add_argument("--no-gradio-queue", action='store_true', help="Disables gradio queue; causes the webpage to use http requests instead of websockets; was the defaul in earlier versions")
parser.add_argument("--skip-version-check", action='store_true', help="Do not check versions of torch and xformers")
parser.add_argument("--no-hashing", action='store_true', help="disable sha256 hashing of checkpoints to help loading performance", default=False)
parser.add_argument("--no-download-sd-model", action='store_true', help="don't download SD1.5 model even if no model is found in --ckpt-dir", default=False)
diff --git a/modules/ui.py b/modules/ui.py
index c5b0e876..9b9bfa8b 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -478,7 +478,7 @@ def create_ui():
width = gr.Slider(minimum=64, maximum=2048, step=8, label="Width", value=512, elem_id="txt2img_width")
height = gr.Slider(minimum=64, maximum=2048, step=8, label="Height", value=512, elem_id="txt2img_height")
- with gr.Column(elem_id="txt2img_dimensions_row", scale=1):
+ with gr.Column(elem_id="txt2img_dimensions_row", scale=1, elem_classes="dimensions-tools"):
res_switch_btn = ToolButton(value=switch_values_symbol, elem_id="txt2img_res_switch_btn")
if opts.dimensions_and_batch_together:
@@ -758,7 +758,7 @@ def create_ui():
width = gr.Slider(minimum=64, maximum=2048, step=8, label="Width", value=512, elem_id="img2img_width")
height = gr.Slider(minimum=64, maximum=2048, step=8, label="Height", value=512, elem_id="img2img_height")
- with gr.Column(elem_id="img2img_dimensions_row", scale=1):
+ with gr.Column(elem_id="img2img_dimensions_row", scale=1, elem_classes="dimensions-tools"):
res_switch_btn = ToolButton(value=switch_values_symbol, elem_id="img2img_res_switch_btn")
if opts.dimensions_and_batch_together:
diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py
index df75a925..50173e68 100644
--- a/modules/ui_extensions.py
+++ b/modules/ui_extensions.py
@@ -244,7 +244,7 @@ def refresh_available_extensions_from_data(hide_tags, sort_column):
hidden += 1
continue
- install_code = f""""""
+ install_code = f""""""
tags_text = ", ".join([f"{x}" for x in extension_tags])
diff --git a/style.css b/style.css
index 677f03cd..cee13cf7 100644
--- a/style.css
+++ b/style.css
@@ -70,6 +70,15 @@ div.compact{
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
+.gradio-dropdown .wrap-inner.wrap-inner.wrap-inner{
+ flex-wrap: unset;
+}
+
+.gradio-dropdown .single-select{
+ white-space: nowrap;
+ overflow: hidden;
+}
+
.gradio-dropdown .token-remove.remove-all.remove-all{
display: none;
}
@@ -125,6 +134,22 @@ div.gradio-html.min{
min-width: auto;
}
+button.custom-button{
+ border-radius: var(--button-large-radius);
+ padding: var(--button-large-padding);
+ font-weight: var(--button-large-text-weight);
+ border: var(--button-border-width) solid var(--button-secondary-border-color);
+ background: var(--button-secondary-background-fill);
+ color: var(--button-secondary-text-color);
+ font-size: var(--button-large-text-size);
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+ transition: var(--button-transition);
+ box-shadow: var(--button-shadow);
+ text-align: center;
+}
+
/* txt2img/img2img specific */
@@ -250,10 +275,11 @@ div.gradio-html.min{
min-width: min(13.5em, 100%) !important;
}
-[id$=_dimensions_row]{
+div.dimensions-tools{
min-width: 0 !important;
max-width: fit-content;
- padding: 0 1em;
+ flex-direction: row;
+ align-content: center;
}
#mode_img2img .gradio-image > div.fixed-height, #mode_img2img .gradio-image > div.fixed-height img{
@@ -281,15 +307,6 @@ div.gradio-html.min{
background: none;
}
-#quicksettings .gradio-dropdown .wrap-inner{
- flex-wrap: unset;
-}
-
-#quicksettings .gradio-dropdown .single-select{
- white-space: nowrap;
- overflow: hidden;
-}
-
#settings{
display: block;
}
diff --git a/webui.py b/webui.py
index aaec79fd..ca725b7d 100644
--- a/webui.py
+++ b/webui.py
@@ -240,7 +240,7 @@ def webui():
shared.demo = modules.ui.create_ui()
startup_timer.record("create ui")
- if cmd_opts.gradio_queue:
+ if not cmd_opts.no_gradio_queue:
shared.demo.queue(64)
gradio_auth_creds = []
--
cgit v1.2.3
From ff216820fd680b5d04ce6cea7bf21e1bbec356b4 Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Tue, 21 Mar 2023 09:24:19 +0300
Subject: fix extra networks ui
---
modules/ui_extra_networks.py | 2 +-
style.css | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
(limited to 'style.css')
diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py
index cdfd6f2a..8cd6d8cf 100644
--- a/modules/ui_extra_networks.py
+++ b/modules/ui_extra_networks.py
@@ -86,7 +86,7 @@ class ExtraNetworksPage:
subdirs = {"": 1, **subdirs}
subdirs_html = "".join([f"""
-