mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-12-21 07:30:02 +08:00
images history speed up
This commit is contained in:
parent
272d979d1c
commit
f62905fdf9
@ -20,7 +20,7 @@ var images_history_click_image = function(){
|
|||||||
var images_history_click_tab = function(){
|
var images_history_click_tab = function(){
|
||||||
var tabs_box = gradioApp().getElementById("images_history_tab");
|
var tabs_box = gradioApp().getElementById("images_history_tab");
|
||||||
if (!tabs_box.classList.contains(this.getAttribute("tabname"))) {
|
if (!tabs_box.classList.contains(this.getAttribute("tabname"))) {
|
||||||
gradioApp().getElementById(this.getAttribute("tabname") + "_images_history_renew_page").click();
|
gradioApp().getElementById(this.getAttribute("tabname") + "_images_history_start").click();
|
||||||
tabs_box.classList.add(this.getAttribute("tabname"))
|
tabs_box.classList.add(this.getAttribute("tabname"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -96,7 +96,7 @@ function images_history_get_current_img(tabname, img_index, files){
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function images_history_delete(del_num, tabname, img_file_name, page_index, filenames, image_index){
|
function images_history_delete(del_num, tabname, image_index){
|
||||||
image_index = parseInt(image_index);
|
image_index = parseInt(image_index);
|
||||||
var tab = gradioApp().getElementById(tabname + '_images_history');
|
var tab = gradioApp().getElementById(tabname + '_images_history');
|
||||||
var set_btn = tab.querySelector(".images_history_set_index");
|
var set_btn = tab.querySelector(".images_history_set_index");
|
||||||
@ -107,6 +107,7 @@ function images_history_delete(del_num, tabname, img_file_name, page_index, file
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
var img_num = buttons.length / 2;
|
var img_num = buttons.length / 2;
|
||||||
|
del_num = Math.min(img_num - image_index, del_num)
|
||||||
if (img_num <= del_num){
|
if (img_num <= del_num){
|
||||||
setTimeout(function(tabname){
|
setTimeout(function(tabname){
|
||||||
gradioApp().getElementById(tabname + '_images_history_renew_page').click();
|
gradioApp().getElementById(tabname + '_images_history_renew_page').click();
|
||||||
@ -114,30 +115,29 @@ function images_history_delete(del_num, tabname, img_file_name, page_index, file
|
|||||||
} else {
|
} else {
|
||||||
var next_img
|
var next_img
|
||||||
for (var i = 0; i < del_num; i++){
|
for (var i = 0; i < del_num; i++){
|
||||||
if (image_index + i < image_index + img_num){
|
buttons[image_index + i].style.display = 'none';
|
||||||
buttons[image_index + i].style.display = 'none';
|
buttons[image_index + i + img_num].style.display = 'none';
|
||||||
buttons[image_index + img_num + 1].style.display = 'none';
|
next_img = image_index + i + 1
|
||||||
next_img = image_index + i + 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var bnt;
|
var bnt;
|
||||||
if (next_img >= img_num){
|
if (next_img >= img_num){
|
||||||
btn = buttons[image_index - del_num];
|
btn = buttons[image_index - 1];
|
||||||
} else {
|
} else {
|
||||||
btn = buttons[next_img];
|
btn = buttons[next_img];
|
||||||
}
|
}
|
||||||
setTimeout(function(btn){btn.click()}, 30, btn);
|
setTimeout(function(btn){btn.click()}, 30, btn);
|
||||||
}
|
}
|
||||||
images_history_disabled_del();
|
images_history_disabled_del();
|
||||||
return [del_num, tabname, img_file_name, page_index, filenames, image_index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function images_history_turnpage(img_path, page_index, image_index, tabname, date_from, date_to){
|
function images_history_turnpage(tabname){
|
||||||
|
console.log("del_button")
|
||||||
|
gradioApp().getElementById(tabname + '_images_history_del_button').setAttribute('disabled','disabled');
|
||||||
var buttons = gradioApp().getElementById(tabname + '_images_history').querySelectorAll(".gallery-item");
|
var buttons = gradioApp().getElementById(tabname + '_images_history').querySelectorAll(".gallery-item");
|
||||||
buttons.forEach(function(elem) {
|
buttons.forEach(function(elem) {
|
||||||
elem.style.display = 'block';
|
elem.style.display = 'block';
|
||||||
})
|
})
|
||||||
return [img_path, page_index, image_index, tabname, date_from, date_to];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function images_history_enable_del_buttons(){
|
function images_history_enable_del_buttons(){
|
||||||
@ -147,7 +147,7 @@ function images_history_enable_del_buttons(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function images_history_init(){
|
function images_history_init(){
|
||||||
var load_txt2img_button = gradioApp().getElementById('txt2img_images_history_renew_page')
|
var load_txt2img_button = gradioApp().getElementById('saved_images_history_start')
|
||||||
if (load_txt2img_button){
|
if (load_txt2img_button){
|
||||||
for (var i in images_history_tab_list ){
|
for (var i in images_history_tab_list ){
|
||||||
tab = images_history_tab_list[i];
|
tab = images_history_tab_list[i];
|
||||||
@ -166,7 +166,8 @@ function images_history_init(){
|
|||||||
|
|
||||||
// this refreshes history upon tab switch
|
// this refreshes history upon tab switch
|
||||||
// until the history is known to work well, which is not the case now, we do not do this at startup
|
// until the history is known to work well, which is not the case now, we do not do this at startup
|
||||||
//tab_btns[i].addEventListener('click', images_history_click_tab);
|
// -- load page very fast now, so better user experience by automatically activating pages
|
||||||
|
tab_btns[i].addEventListener('click', images_history_click_tab);
|
||||||
}
|
}
|
||||||
tabs_box.classList.add(images_history_tab_list[0]);
|
tabs_box.classList.add(images_history_tab_list[0]);
|
||||||
|
|
||||||
@ -177,7 +178,7 @@ function images_history_init(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var images_history_tab_list = ["txt2img", "img2img", "extras"];
|
var images_history_tab_list = ["saved", "txt2img", "img2img", "extras"];
|
||||||
setTimeout(images_history_init, 500);
|
setTimeout(images_history_init, 500);
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
var mutationObserver = new MutationObserver(function(m){
|
var mutationObserver = new MutationObserver(function(m){
|
||||||
@ -188,18 +189,16 @@ document.addEventListener("DOMContentLoaded", function() {
|
|||||||
bnt.addEventListener('click', images_history_click_image, true);
|
bnt.addEventListener('click', images_history_click_image, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
// same as load_txt2img_button.click() above
|
|
||||||
/*
|
|
||||||
var cls_btn = gradioApp().getElementById(tabname + '_images_history_gallery').querySelector("svg");
|
var cls_btn = gradioApp().getElementById(tabname + '_images_history_gallery').querySelector("svg");
|
||||||
if (cls_btn){
|
if (cls_btn){
|
||||||
cls_btn.addEventListener('click', function(){
|
cls_btn.addEventListener('click', function(){
|
||||||
gradioApp().getElementById(tabname + '_images_history_renew_page').click();
|
gradioApp().getElementById(tabname + '_images_history_del_button').setAttribute('disabled','disabled');
|
||||||
}, false);
|
}, false);
|
||||||
}*/
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mutationObserver.observe( gradioApp(), { childList:true, subtree:true });
|
mutationObserver.observe(gradioApp(), { childList:true, subtree:true });
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3,8 +3,10 @@ import shutil
|
|||||||
import time
|
import time
|
||||||
import hashlib
|
import hashlib
|
||||||
import gradio
|
import gradio
|
||||||
show_max_dates_num = 3
|
|
||||||
system_bak_path = "webui_log_and_bak"
|
system_bak_path = "webui_log_and_bak"
|
||||||
|
loads_files_num = 216
|
||||||
|
num_of_imgs_per_page = 36
|
||||||
def is_valid_date(date):
|
def is_valid_date(date):
|
||||||
try:
|
try:
|
||||||
time.strptime(date, "%Y%m%d")
|
time.strptime(date, "%Y%m%d")
|
||||||
@ -53,38 +55,7 @@ def traverse_all_files(curr_path, image_list, all_type=False):
|
|||||||
image_list = traverse_all_files(file, image_list)
|
image_list = traverse_all_files(file, image_list)
|
||||||
return image_list
|
return image_list
|
||||||
|
|
||||||
def get_recent_images(dir_name, page_index, step, image_index, tabname, date_from, date_to):
|
def auto_sorting(dir_name):
|
||||||
#print(f"turn_page {page_index}",date_from)
|
|
||||||
if date_from is None or date_from == "":
|
|
||||||
return None, 1, None, ""
|
|
||||||
image_list = []
|
|
||||||
date_list = auto_sorting(dir_name)
|
|
||||||
page_index = int(page_index)
|
|
||||||
today = time.strftime("%Y%m%d",time.localtime(time.time()))
|
|
||||||
for date in date_list:
|
|
||||||
if date >= date_from and date <= date_to:
|
|
||||||
path = os.path.join(dir_name, date)
|
|
||||||
if date == today and not os.path.exists(path):
|
|
||||||
continue
|
|
||||||
image_list = traverse_all_files(path, image_list)
|
|
||||||
|
|
||||||
image_list = sorted(image_list, key=lambda file: -os.path.getctime(file))
|
|
||||||
num = 48 if tabname != "extras" else 12
|
|
||||||
max_page_index = len(image_list) // num + 1
|
|
||||||
page_index = max_page_index if page_index == -1 else page_index + step
|
|
||||||
page_index = 1 if page_index < 1 else page_index
|
|
||||||
page_index = max_page_index if page_index > max_page_index else page_index
|
|
||||||
idx_frm = (page_index - 1) * num
|
|
||||||
image_list = image_list[idx_frm:idx_frm + num]
|
|
||||||
image_index = int(image_index)
|
|
||||||
if image_index < 0 or image_index > len(image_list) - 1:
|
|
||||||
current_file = None
|
|
||||||
else:
|
|
||||||
current_file = image_list[image_index]
|
|
||||||
return image_list, page_index, image_list, ""
|
|
||||||
|
|
||||||
def auto_sorting(dir_name):
|
|
||||||
#print(f"auto sorting")
|
|
||||||
bak_path = os.path.join(dir_name, system_bak_path)
|
bak_path = os.path.join(dir_name, system_bak_path)
|
||||||
if not os.path.exists(bak_path):
|
if not os.path.exists(bak_path):
|
||||||
os.mkdir(bak_path)
|
os.mkdir(bak_path)
|
||||||
@ -126,102 +97,131 @@ def auto_sorting(dir_name):
|
|||||||
today = time.strftime("%Y%m%d",time.localtime(time.time()))
|
today = time.strftime("%Y%m%d",time.localtime(time.time()))
|
||||||
if today not in date_list:
|
if today not in date_list:
|
||||||
date_list.append(today)
|
date_list.append(today)
|
||||||
return sorted(date_list)
|
return sorted(date_list, reverse=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def archive_images(dir_name):
|
def archive_images(dir_name, date_to):
|
||||||
date_list = auto_sorting(dir_name)
|
date_list = auto_sorting(dir_name)
|
||||||
date_from = date_list[-show_max_dates_num] if len(date_list) > show_max_dates_num else date_list[0]
|
today = time.strftime("%Y%m%d",time.localtime(time.time()))
|
||||||
|
date_to = today if date_to is None or date_to == "" else date_to
|
||||||
|
filenames = []
|
||||||
|
for date in date_list:
|
||||||
|
if date <= date_to:
|
||||||
|
path = os.path.join(dir_name, date)
|
||||||
|
if date == today and not os.path.exists(path):
|
||||||
|
continue
|
||||||
|
filenames = traverse_all_files(path, filenames)
|
||||||
|
if len(filenames) > loads_files_num:
|
||||||
|
break
|
||||||
|
filenames = sorted(filenames, key=lambda file: -os.path.getctime(file))
|
||||||
|
_, image_list, _, visible_num = get_recent_images(1, 0, filenames)
|
||||||
return (
|
return (
|
||||||
gradio.update(visible=False),
|
gradio.update(visible=False),
|
||||||
gradio.update(visible=True),
|
gradio.update(visible=True),
|
||||||
gradio.Dropdown.update(choices=date_list, value=date_list[-1]),
|
gradio.Dropdown.update(choices=date_list, value=date_to),
|
||||||
gradio.Dropdown.update(choices=date_list, value=date_from)
|
date,
|
||||||
|
filenames,
|
||||||
|
1,
|
||||||
|
image_list,
|
||||||
|
"",
|
||||||
|
visible_num
|
||||||
)
|
)
|
||||||
|
def system_init(dir_name):
|
||||||
|
ret = [x for x in archive_images(dir_name, None)]
|
||||||
|
ret += [gradio.update(visible=False)]
|
||||||
|
return ret
|
||||||
|
|
||||||
def date_to_change(dir_name, page_index, image_index, tabname, date_from, date_to):
|
def newest_click(dir_name, date_to):
|
||||||
#print("date_to", date_to)
|
if date_to == "start":
|
||||||
date_list = auto_sorting(dir_name)
|
return True, False, "start", None, None, 1, None, ""
|
||||||
date_from_list = [date for date in date_list if date <= date_to]
|
else:
|
||||||
date_from = date_from_list[0] if len(date_from_list) < show_max_dates_num else date_from_list[-show_max_dates_num]
|
return archive_images(dir_name, time.strftime("%Y%m%d",time.localtime(time.time())))
|
||||||
image_list, page_index, image_list, _ =get_recent_images(dir_name, 1, 0, image_index, tabname, date_from, date_to)
|
|
||||||
return image_list, page_index, image_list, _, gradio.Dropdown.update(choices=date_from_list, value=date_from)
|
|
||||||
|
|
||||||
def first_page_click(dir_name, page_index, image_index, tabname, date_from, date_to):
|
def delete_image(delete_num, name, filenames, image_index, visible_num):
|
||||||
return get_recent_images(dir_name, 1, 0, image_index, tabname, date_from, date_to)
|
|
||||||
|
|
||||||
|
|
||||||
def end_page_click(dir_name, page_index, image_index, tabname, date_from, date_to):
|
|
||||||
return get_recent_images(dir_name, -1, 0, image_index, tabname, date_from, date_to)
|
|
||||||
|
|
||||||
|
|
||||||
def prev_page_click(dir_name, page_index, image_index, tabname, date_from, date_to):
|
|
||||||
return get_recent_images(dir_name, page_index, -1, image_index, tabname, date_from, date_to)
|
|
||||||
|
|
||||||
|
|
||||||
def next_page_click(dir_name, page_index, image_index, tabname, date_from, date_to):
|
|
||||||
return get_recent_images(dir_name, page_index, 1, image_index, tabname, date_from, date_to)
|
|
||||||
|
|
||||||
|
|
||||||
def page_index_change(dir_name, page_index, image_index, tabname, date_from, date_to):
|
|
||||||
return get_recent_images(dir_name, page_index, 0, image_index, tabname, date_from, date_to)
|
|
||||||
|
|
||||||
|
|
||||||
def show_image_info(tabname_box, num, filenames):
|
|
||||||
# #print(f"select image {num}")
|
|
||||||
file = filenames[int(num)]
|
|
||||||
return file, num, file
|
|
||||||
|
|
||||||
def delete_image(delete_num, tabname, name, page_index, filenames, image_index):
|
|
||||||
if name == "":
|
if name == "":
|
||||||
return filenames, delete_num
|
return filenames, delete_num
|
||||||
else:
|
else:
|
||||||
delete_num = int(delete_num)
|
delete_num = int(delete_num)
|
||||||
|
visible_num = int(visible_num)
|
||||||
|
image_index = int(image_index)
|
||||||
index = list(filenames).index(name)
|
index = list(filenames).index(name)
|
||||||
i = 0
|
i = 0
|
||||||
new_file_list = []
|
new_file_list = []
|
||||||
for name in filenames:
|
for name in filenames:
|
||||||
if i >= index and i < index + delete_num:
|
if i >= index and i < index + delete_num:
|
||||||
if os.path.exists(name):
|
if os.path.exists(name):
|
||||||
#print(f"Delete file {name}")
|
if visible_num == image_index:
|
||||||
|
new_file_list.append(name)
|
||||||
|
continue
|
||||||
|
print(f"Delete file {name}")
|
||||||
os.remove(name)
|
os.remove(name)
|
||||||
|
visible_num -= 1
|
||||||
txt_file = os.path.splitext(name)[0] + ".txt"
|
txt_file = os.path.splitext(name)[0] + ".txt"
|
||||||
if os.path.exists(txt_file):
|
if os.path.exists(txt_file):
|
||||||
os.remove(txt_file)
|
os.remove(txt_file)
|
||||||
else:
|
else:
|
||||||
#print(f"Not exists file {name}")
|
print(f"Not exists file {name}")
|
||||||
else:
|
else:
|
||||||
new_file_list.append(name)
|
new_file_list.append(name)
|
||||||
i += 1
|
i += 1
|
||||||
return new_file_list, 1
|
return new_file_list, 1, visible_num
|
||||||
|
|
||||||
|
def get_recent_images(page_index, step, filenames):
|
||||||
|
page_index = int(page_index)
|
||||||
|
max_page_index = len(filenames) // num_of_imgs_per_page + 1
|
||||||
|
page_index = max_page_index if page_index == -1 else page_index + step
|
||||||
|
page_index = 1 if page_index < 1 else page_index
|
||||||
|
page_index = max_page_index if page_index > max_page_index else page_index
|
||||||
|
idx_frm = (page_index - 1) * num_of_imgs_per_page
|
||||||
|
image_list = filenames[idx_frm:idx_frm + num_of_imgs_per_page]
|
||||||
|
length = len(filenames)
|
||||||
|
visible_num = num_of_imgs_per_page if idx_frm + num_of_imgs_per_page <= length else length % num_of_imgs_per_page
|
||||||
|
visible_num = num_of_imgs_per_page if visible_num == 0 else visible_num
|
||||||
|
return page_index, image_list, "", visible_num
|
||||||
|
|
||||||
|
def first_page_click(page_index, filenames):
|
||||||
|
return get_recent_images(1, 0, filenames)
|
||||||
|
|
||||||
|
def end_page_click(page_index, filenames):
|
||||||
|
return get_recent_images(-1, 0, filenames)
|
||||||
|
|
||||||
|
def prev_page_click(page_index, filenames):
|
||||||
|
return get_recent_images(page_index, -1, filenames)
|
||||||
|
|
||||||
|
def next_page_click(page_index, filenames):
|
||||||
|
return get_recent_images(page_index, 1, filenames)
|
||||||
|
|
||||||
|
def page_index_change(page_index, filenames):
|
||||||
|
return get_recent_images(page_index, 0, filenames)
|
||||||
|
|
||||||
|
def show_image_info(tabname_box, num, page_index, filenames):
|
||||||
|
file = filenames[int(num) + int((page_index - 1) * num_of_imgs_per_page)]
|
||||||
|
return file, num, file
|
||||||
|
|
||||||
def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
||||||
if opts.outdir_samples != "":
|
if tabname == "txt2img":
|
||||||
dir_name = opts.outdir_samples
|
|
||||||
elif tabname == "txt2img":
|
|
||||||
dir_name = opts.outdir_txt2img_samples
|
dir_name = opts.outdir_txt2img_samples
|
||||||
elif tabname == "img2img":
|
elif tabname == "img2img":
|
||||||
dir_name = opts.outdir_img2img_samples
|
dir_name = opts.outdir_img2img_samples
|
||||||
elif tabname == "extras":
|
elif tabname == "extras":
|
||||||
dir_name = opts.outdir_extras_samples
|
dir_name = opts.outdir_extras_samples
|
||||||
|
elif tabname == "saved":
|
||||||
|
dir_name = opts.outdir_save
|
||||||
|
if not os.path.exists(dir_name):
|
||||||
|
os.makedirs(dir_name)
|
||||||
d = dir_name.split("/")
|
d = dir_name.split("/")
|
||||||
dir_name = "/" if dir_name.startswith("/") else d[0]
|
dir_name = d[0]
|
||||||
for p in d[1:]:
|
for p in d[1:]:
|
||||||
dir_name = os.path.join(dir_name, p)
|
dir_name = os.path.join(dir_name, p)
|
||||||
|
|
||||||
f_list = os.listdir(dir_name)
|
f_list = os.listdir(dir_name)
|
||||||
sorted_flag = os.path.exists(os.path.join(dir_name, system_bak_path)) or len(f_list) == 0
|
sorted_flag = os.path.exists(os.path.join(dir_name, system_bak_path)) or len(f_list) == 0
|
||||||
date_list, date_from, date_to = None, None, None
|
date_list, date_from, date_to = None, None, None
|
||||||
if sorted_flag:
|
|
||||||
#print(sorted_flag)
|
|
||||||
date_list = auto_sorting(dir_name)
|
|
||||||
date_to = date_list[-1]
|
|
||||||
date_from = date_list[-show_max_dates_num] if len(date_list) > show_max_dates_num else date_list[0]
|
|
||||||
|
|
||||||
with gr.Column(visible=sorted_flag) as page_panel:
|
with gr.Column(visible=sorted_flag) as page_panel:
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
renew_page = gr.Button('Refresh', elem_id=tabname + "_images_history_renew_page", interactive=sorted_flag)
|
#renew_page = gr.Button('Refresh')
|
||||||
first_page = gr.Button('First Page')
|
first_page = gr.Button('First Page')
|
||||||
prev_page = gr.Button('Prev Page')
|
prev_page = gr.Button('Prev Page')
|
||||||
page_index = gr.Number(value=1, label="Page Index")
|
page_index = gr.Number(value=1, label="Page Index")
|
||||||
@ -231,9 +231,9 @@ def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
|||||||
with gr.Row(elem_id=tabname + "_images_history"):
|
with gr.Row(elem_id=tabname + "_images_history"):
|
||||||
with gr.Column(scale=2):
|
with gr.Column(scale=2):
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
newest = gr.Button('Newest')
|
newest = gr.Button('Refresh', elem_id=tabname + "_images_history_start")
|
||||||
date_to = gr.Dropdown(choices=date_list, value=date_to, label="Date to")
|
date_from = gr.Textbox(label="Date from", interactive=False)
|
||||||
date_from = gr.Dropdown(choices=date_list, value=date_from, label="Date from")
|
date_to = gr.Dropdown(value="start" if not sorted_flag else None, label="Date to")
|
||||||
|
|
||||||
history_gallery = gr.Gallery(show_label=False, elem_id=tabname + "_images_history_gallery").style(grid=6)
|
history_gallery = gr.Gallery(show_label=False, elem_id=tabname + "_images_history_gallery").style(grid=6)
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
@ -247,66 +247,72 @@ def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
|||||||
with gr.Column():
|
with gr.Column():
|
||||||
img_file_info = gr.Textbox(label="Generate Info", interactive=False)
|
img_file_info = gr.Textbox(label="Generate Info", interactive=False)
|
||||||
img_file_name = gr.Textbox(value="", label="File Name", interactive=False)
|
img_file_name = gr.Textbox(value="", label="File Name", interactive=False)
|
||||||
|
|
||||||
# hiden items
|
# hiden items
|
||||||
with gr.Row(visible=False):
|
with gr.Row(visible=False):
|
||||||
|
visible_img_num = gr.Number()
|
||||||
img_path = gr.Textbox(dir_name)
|
img_path = gr.Textbox(dir_name)
|
||||||
tabname_box = gr.Textbox(tabname)
|
tabname_box = gr.Textbox(tabname)
|
||||||
image_index = gr.Textbox(value=-1)
|
image_index = gr.Textbox(value=-1)
|
||||||
set_index = gr.Button('set_index', elem_id=tabname + "_images_history_set_index")
|
set_index = gr.Button('set_index', elem_id=tabname + "_images_history_set_index")
|
||||||
filenames = gr.State()
|
filenames = gr.State()
|
||||||
|
all_images_list = gr.State()
|
||||||
hidden = gr.Image(type="pil")
|
hidden = gr.Image(type="pil")
|
||||||
info1 = gr.Textbox()
|
info1 = gr.Textbox()
|
||||||
info2 = gr.Textbox()
|
info2 = gr.Textbox()
|
||||||
|
|
||||||
with gr.Column(visible=not sorted_flag) as init_warning:
|
with gr.Column(visible=not sorted_flag) as init_warning:
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
gr.Textbox("The system needs to archive the files according to the date. This requires changing the directory structure of the files",
|
warning = gr.Textbox(
|
||||||
label="Waring",
|
label="Waring",
|
||||||
css="")
|
value=f"The system needs to archive the files according to the date. This requires changing the directory structure of the files.If you have doubts about this operation, you can first back up the files in the '{dir_name}' directory"
|
||||||
|
)
|
||||||
|
warning.style(height=100, width=50)
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
sorted_button = gr.Button('Confirme')
|
sorted_button = gr.Button('Confirme')
|
||||||
|
|
||||||
|
change_date_output = [init_warning, page_panel, date_to, date_from, filenames, page_index, history_gallery, img_file_name, visible_img_num]
|
||||||
|
sorted_button.click(system_init, inputs=[img_path], outputs=change_date_output + [sorted_button])
|
||||||
|
newest.click(newest_click, inputs=[img_path, date_to], outputs=change_date_output)
|
||||||
|
date_to.change(archive_images, inputs=[img_path, date_to], outputs=change_date_output)
|
||||||
|
date_to.change(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
newest.click(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
|
||||||
|
delete.click(delete_image, inputs=[delete_num, img_file_name, filenames, image_index, visible_img_num], outputs=[filenames, delete_num, visible_img_num])
|
||||||
|
delete.click(fn=None, _js="images_history_delete", inputs=[delete_num, tabname_box, image_index], outputs=None)
|
||||||
|
|
||||||
|
|
||||||
# turn pages
|
# turn pages
|
||||||
gallery_inputs = [img_path, page_index, image_index, tabname_box, date_from, date_to]
|
gallery_inputs = [page_index, filenames]
|
||||||
gallery_outputs = [history_gallery, page_index, filenames, img_file_name]
|
gallery_outputs = [page_index, history_gallery, img_file_name, visible_img_num]
|
||||||
|
|
||||||
first_page.click(first_page_click, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
first_page.click(first_page_click, inputs=gallery_inputs, outputs=gallery_outputs)
|
||||||
next_page.click(next_page_click, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
next_page.click(next_page_click, inputs=gallery_inputs, outputs=gallery_outputs)
|
||||||
prev_page.click(prev_page_click, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
prev_page.click(prev_page_click, inputs=gallery_inputs, outputs=gallery_outputs)
|
||||||
end_page.click(end_page_click, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
end_page.click(end_page_click, inputs=gallery_inputs, outputs=gallery_outputs)
|
||||||
page_index.submit(page_index_change, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
page_index.submit(page_index_change, inputs=gallery_inputs, outputs=gallery_outputs)
|
||||||
renew_page.click(page_index_change, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs)
|
|
||||||
# page_index.change(page_index_change, inputs=[tabname_box, img_path, page_index], outputs=[history_gallery, page_index])
|
first_page.click(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
next_page.click(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
prev_page.click(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
end_page.click(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
page_index.submit(fn=None, inputs=[tabname_box], outputs=None, _js="images_history_turnpage")
|
||||||
|
|
||||||
# other funcitons
|
# other funcitons
|
||||||
set_index.click(show_image_info, _js="images_history_get_current_img", inputs=[tabname_box, image_index, filenames], outputs=[img_file_name, image_index, hidden])
|
set_index.click(show_image_info, _js="images_history_get_current_img", inputs=[tabname_box, image_index, page_index, filenames], outputs=[img_file_name, image_index, hidden])
|
||||||
img_file_name.change(fn=None, _js="images_history_enable_del_buttons", inputs=None, outputs=None)
|
img_file_name.change(fn=None, _js="images_history_enable_del_buttons", inputs=None, outputs=None)
|
||||||
delete.click(delete_image, _js="images_history_delete", inputs=[delete_num, tabname_box, img_file_name, page_index, filenames, image_index], outputs=[filenames, delete_num])
|
|
||||||
hidden.change(fn=run_pnginfo, inputs=[hidden], outputs=[info1, img_file_info, info2])
|
hidden.change(fn=run_pnginfo, inputs=[hidden], outputs=[info1, img_file_info, info2])
|
||||||
date_to.change(date_to_change, _js="images_history_turnpage", inputs=gallery_inputs, outputs=gallery_outputs + [date_from])
|
|
||||||
# pnginfo.click(fn=run_pnginfo, inputs=[hidden], outputs=[info1, img_file_info, info2])
|
|
||||||
switch_dict["fn"](pnginfo_send_to_txt2img, switch_dict["t2i"], img_file_info, 'switch_to_txt2img')
|
switch_dict["fn"](pnginfo_send_to_txt2img, switch_dict["t2i"], img_file_info, 'switch_to_txt2img')
|
||||||
switch_dict["fn"](pnginfo_send_to_img2img, switch_dict["i2i"], img_file_info, 'switch_to_img2img_img2img')
|
switch_dict["fn"](pnginfo_send_to_img2img, switch_dict["i2i"], img_file_info, 'switch_to_img2img_img2img')
|
||||||
|
|
||||||
sorted_button.click(archive_images, inputs=[img_path], outputs=[init_warning, page_panel, date_to, date_from])
|
|
||||||
newest.click(archive_images, inputs=[img_path], outputs=[init_warning, page_panel, date_to, date_from])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def create_history_tabs(gr, opts, run_pnginfo, switch_dict):
|
def create_history_tabs(gr, opts, run_pnginfo, switch_dict):
|
||||||
with gr.Blocks(analytics_enabled=False) as images_history:
|
with gr.Blocks(analytics_enabled=False) as images_history:
|
||||||
with gr.Tabs() as tabs:
|
with gr.Tabs() as tabs:
|
||||||
with gr.Tab("txt2img history"):
|
for tab in ["saved", "txt2img", "img2img", "extras"]:
|
||||||
with gr.Blocks(analytics_enabled=False) as images_history_txt2img:
|
with gr.Tab(tab):
|
||||||
show_images_history(gr, opts, "txt2img", run_pnginfo, switch_dict)
|
with gr.Blocks(analytics_enabled=False) as images_history_img2img:
|
||||||
with gr.Tab("img2img history"):
|
show_images_history(gr, opts, tab, run_pnginfo, switch_dict)
|
||||||
with gr.Blocks(analytics_enabled=False) as images_history_img2img:
|
|
||||||
show_images_history(gr, opts, "img2img", run_pnginfo, switch_dict)
|
|
||||||
with gr.Tab("extras history"):
|
|
||||||
with gr.Blocks(analytics_enabled=False) as images_history_img2img:
|
|
||||||
show_images_history(gr, opts, "extras", run_pnginfo, switch_dict)
|
|
||||||
return images_history
|
return images_history
|
||||||
|
Loading…
Reference in New Issue
Block a user