mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-12-29 19:05:05 +08:00
updating the displayed generation info when user clicks images in the gallery. feature request 4415
This commit is contained in:
parent
ac08562854
commit
81f2575df9
@ -179,9 +179,17 @@ onUiUpdate(function(){
|
||||
img2img_textarea = gradioApp().querySelector("#img2img_prompt > label > textarea");
|
||||
img2img_textarea?.addEventListener("input", () => update_token_counter("img2img_token_button"));
|
||||
}
|
||||
if (!txt2img_gallery) {
|
||||
txt2img_gallery = gradioApp().querySelector('#txt2img_gallery')
|
||||
txt2img_gallery?.addEventListener('click', () => gradioApp().getElementById("txt2img_generation_info_button").click());
|
||||
}
|
||||
if (!img2img_gallery) {
|
||||
img2img_gallery = gradioApp().querySelector('#img2img_gallery')
|
||||
img2img_gallery?.addEventListener('click', () => gradioApp().getElementById("img2img_generation_info_button").click());
|
||||
}
|
||||
})
|
||||
|
||||
let txt2img_textarea, img2img_textarea = undefined;
|
||||
let txt2img_textarea, img2img_textarea, txt2img_gallery, img2img_gallery = undefined;
|
||||
let wait_time = 800
|
||||
let token_timeout;
|
||||
|
||||
|
@ -566,6 +566,17 @@ def apply_setting(key, value):
|
||||
return value
|
||||
|
||||
|
||||
def update_generation_info(args):
|
||||
generation_info, html_info, img_index = args
|
||||
try:
|
||||
generation_info = json.loads(generation_info)
|
||||
return plaintext_to_html(generation_info["infotexts"][img_index])
|
||||
except Exception:
|
||||
pass
|
||||
# if the json parse or anything else fails, just return the old html_info
|
||||
return html_info
|
||||
|
||||
|
||||
def create_refresh_button(refresh_component, refresh_method, refreshed_args, elem_id):
|
||||
def refresh():
|
||||
refresh_method()
|
||||
@ -638,6 +649,15 @@ Requested path was: {f}
|
||||
with gr.Group():
|
||||
html_info = gr.HTML()
|
||||
generation_info = gr.Textbox(visible=False)
|
||||
if tabname == 'txt2img' or tabname == 'img2img':
|
||||
generation_info_button = gr.Button(visible=False, elem_id=f"{tabname}_generation_info_button")
|
||||
generation_info_button.click(
|
||||
fn=update_generation_info,
|
||||
_js="(x, y) => [x, y, selected_gallery_index()]",
|
||||
inputs=[generation_info, html_info],
|
||||
outputs=[html_info],
|
||||
preprocess=False
|
||||
)
|
||||
|
||||
save.click(
|
||||
fn=wrap_gradio_call(save_files),
|
||||
|
@ -80,6 +80,8 @@ class Script(scripts.Script):
|
||||
grid = images.image_grid(processed.images, p.batch_size, rows=1 << ((len(prompt_matrix_parts) - 1) // 2))
|
||||
grid = images.draw_prompt_matrix(grid, p.width, p.height, prompt_matrix_parts)
|
||||
processed.images.insert(0, grid)
|
||||
processed.index_of_first_image = 1
|
||||
processed.infotexts.insert(0, processed.infotexts[0])
|
||||
|
||||
if opts.grid_save:
|
||||
images.save_image(processed.images[0], p.outpath_grids, "prompt_matrix", prompt=original_prompt, seed=processed.seed, grid=True, p=p)
|
||||
|
@ -145,6 +145,8 @@ class Script(scripts.Script):
|
||||
state.job_count = job_count
|
||||
|
||||
images = []
|
||||
all_prompts = []
|
||||
infotexts = []
|
||||
for n, args in enumerate(jobs):
|
||||
state.job = f"{state.job_no + 1} out of {state.job_count}"
|
||||
|
||||
@ -157,5 +159,7 @@ class Script(scripts.Script):
|
||||
|
||||
if checkbox_iterate:
|
||||
p.seed = p.seed + (p.batch_size * p.n_iter)
|
||||
all_prompts += proc.all_prompts
|
||||
infotexts += proc.infotexts
|
||||
|
||||
return Processed(p, images, p.seed, "")
|
||||
return Processed(p, images, p.seed, "", all_prompts=all_prompts, infotexts=infotexts)
|
||||
|
Loading…
Reference in New Issue
Block a user