aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--javascript/ui.js11
-rw-r--r--modules/ui.py12
2 files changed, 21 insertions, 2 deletions
diff --git a/javascript/ui.js b/javascript/ui.js
index dc538231..0ba92ef8 100644
--- a/javascript/ui.js
+++ b/javascript/ui.js
@@ -366,3 +366,14 @@ function currentImg2imgSourceResolution(_, _, scaleBy){
var img = gradioApp().querySelector('#mode_img2img > div[style="display: block;"] img')
return img ? [img.naturalWidth, img.naturalHeight, scaleBy] : [0, 0, scaleBy]
}
+
+function updateImg2imgResizeToTextAfterChangingImage(){
+ // At the time this is called from gradio, the image has no yet been replaced.
+ // There may be a better solution, but this is simple and straightforward so I'm going with it.
+
+ setTimeout(function() {
+ gradioApp().getElementById('img2img_update_resize_to').click()
+ }, 500);
+
+ return []
+}
diff --git a/modules/ui.py b/modules/ui.py
index 1130345c..a32500d1 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -782,8 +782,9 @@ def create_ui():
with FormRow():
scale_by_html = FormHTML(resize_from_to_html(0, 0, 0.0), elem_id="img2img_scale_resolution_preview")
gr.Slider(label="Unused", elem_id="img2img_unused_scale_by_slider")
+ button_update_resize_to = gr.Button(visible=False, elem_id="img2img_update_resize_to")
- scale_by.change(
+ on_change_args = dict(
fn=resize_from_to_html,
_js="currentImg2imgSourceResolution",
inputs=[dummy_component, dummy_component, scale_by],
@@ -791,6 +792,12 @@ def create_ui():
show_progress=False,
)
+ scale_by.release(**on_change_args)
+ button_update_resize_to.click(**on_change_args)
+
+ for component in img2img_image_inputs:
+ component.change(fn=lambda: None, _js="updateImg2imgResizeToTextAfterChangingImage", inputs=[], outputs=[], show_progress=False)
+
tab_scale_to.select(fn=lambda: 0, inputs=[], outputs=[selected_scale_tab])
tab_scale_by.select(fn=lambda: 1, inputs=[], outputs=[selected_scale_tab])
@@ -1647,7 +1654,8 @@ def create_ui():
component = component_dict[k]
info = opts.data_labels[k]
- component.change(
+ change_handler = component.release if hasattr(component, 'release') else component.change
+ change_handler(
fn=lambda value, k=k: run_settings_single(value, key=k),
inputs=[component],
outputs=[component, text_settings],