mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-06-07 21:20:49 +00:00
Image browser improve
This commit is contained in:
parent
c6f778d9b1
commit
b7e78ef692
@ -100,14 +100,15 @@ def auto_sorting(dir_name):
|
||||
date_list.append(today)
|
||||
return sorted(date_list, reverse=True)
|
||||
|
||||
def archive_images(dir_name, date_to):
|
||||
|
||||
def archive_images(dir_name, date_to):
|
||||
filenames = []
|
||||
loads_num =int(opts.images_history_num_per_page * opts.images_history_pages_num)
|
||||
batch_size =int(opts.images_history_num_per_page * opts.images_history_pages_num)
|
||||
if batch_size <= 0:
|
||||
batch_size = opts.images_history_num_per_page * 6
|
||||
today = time.strftime("%Y%m%d",time.localtime(time.time()))
|
||||
date_to = today if date_to is None or date_to == "" else date_to
|
||||
date_to_bak = date_to
|
||||
if opts.images_history_reconstruct_directory:
|
||||
if False: #opts.images_history_reconstruct_directory:
|
||||
date_list = auto_sorting(dir_name)
|
||||
for date in date_list:
|
||||
if date <= date_to:
|
||||
@ -115,11 +116,13 @@ def archive_images(dir_name, date_to):
|
||||
if date == today and not os.path.exists(path):
|
||||
continue
|
||||
filenames = traverse_all_files(path, filenames)
|
||||
if len(filenames) > loads_num:
|
||||
if len(filenames) > batch_size:
|
||||
break
|
||||
filenames = sorted(filenames, key=lambda file: -os.path.getmtime(file))
|
||||
else:
|
||||
filenames = traverse_all_files(dir_name, filenames)
|
||||
filenames = traverse_all_files(dir_name, filenames)
|
||||
total_num = len(filenames)
|
||||
batch_count = len(filenames) + 1 // batch_size + 1
|
||||
tmparray = [(os.path.getmtime(file), file) for file in filenames ]
|
||||
date_stamp = time.mktime(time.strptime(date_to, "%Y%m%d")) + 86400
|
||||
filenames = []
|
||||
@ -132,8 +135,8 @@ def archive_images(dir_name, date_to):
|
||||
filenames.append((t, f ,date))
|
||||
date_list = sorted(list(date_list.keys()), reverse=True)
|
||||
sort_array = sorted(filenames, key=lambda x:-x[0])
|
||||
if len(sort_array) > loads_num:
|
||||
date = sort_array[loads_num][2]
|
||||
if len(sort_array) > batch_size:
|
||||
date = sort_array[batch_size][2]
|
||||
filenames = [x[1] for x in sort_array]
|
||||
else:
|
||||
date = date_to if len(sort_array) == 0 else sort_array[-1][2]
|
||||
@ -141,9 +144,9 @@ def archive_images(dir_name, date_to):
|
||||
filenames = [x[1] for x in sort_array if x[2]>= date]
|
||||
num = len(filenames)
|
||||
last_date_from = date_to_bak if num == 0 else time.strftime("%Y%m%d", time.localtime(time.mktime(time.strptime(date, "%Y%m%d")) - 1000))
|
||||
date = date[:4] + "-" + date[4:6] + "-" + date[6:8]
|
||||
date_to_bak = date_to_bak[:4] + "-" + date_to_bak[4:6] + "-" + date_to_bak[6:8]
|
||||
load_info = f"Loaded {(num + 1) // opts.images_history_pages_num} pades, {num} images, during {date} - {date_to_bak}"
|
||||
date = date[:4] + "/" + date[4:6] + "/" + date[6:8]
|
||||
date_to_bak = date_to_bak[:4] + "/" + date_to_bak[4:6] + "/" + date_to_bak[6:8]
|
||||
load_info = f"{total_num} images in this directory. Loaded {num} images during {date} - {date_to_bak}, divided into {int((num + 1) // opts.images_history_num_per_page + 1)} pages"
|
||||
_, image_list, _, _, visible_num = get_recent_images(1, 0, filenames)
|
||||
return (
|
||||
gradio.Dropdown.update(choices=date_list, value=date_to),
|
||||
@ -154,12 +157,10 @@ def archive_images(dir_name, date_to):
|
||||
"",
|
||||
"",
|
||||
visible_num,
|
||||
last_date_from
|
||||
last_date_from,
|
||||
#gradio.update(visible=batch_count > 1)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
def delete_image(delete_num, name, filenames, image_index, visible_num):
|
||||
if name == "":
|
||||
return filenames, delete_num
|
||||
@ -295,16 +296,16 @@ def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
||||
|
||||
with gr.Column() as page_panel:
|
||||
with gr.Row():
|
||||
img_path = gr.Textbox(dir_name, label="Images directory", placeholder="Input images directory")
|
||||
img_path = gr.Textbox(dir_name, label="Images directory", placeholder="Input images directory", interactive=custom_dir)
|
||||
with gr.Row(visible=False) as warning:
|
||||
warning_box = gr.Textbox("Message", interactive=False)
|
||||
|
||||
with gr.Row(visible=not custom_dir, elem_id=tabname + "_images_history") as main_panel:
|
||||
with gr.Column(scale=2):
|
||||
with gr.Row():
|
||||
backward = gr.Button('Backward')
|
||||
date_to = gr.Dropdown(label="Date to")
|
||||
forward = gr.Button('Forward')
|
||||
with gr.Row() as batch_panel:
|
||||
forward = gr.Button('Forward')
|
||||
date_to = gr.Dropdown(label="Date to")
|
||||
backward = gr.Button('Backward')
|
||||
newest = gr.Button('Reload', elem_id=tabname + "_images_history_start")
|
||||
with gr.Row():
|
||||
load_info = gr.Textbox(show_label=False, interactive=False)
|
||||
@ -335,7 +336,7 @@ def show_images_history(gr, opts, tabname, run_pnginfo, switch_dict):
|
||||
|
||||
|
||||
# hiden items
|
||||
with gr.Row(): #visible=False):
|
||||
with gr.Row(visible=False):
|
||||
visible_img_num = gr.Number()
|
||||
date_to_recorder = gr.State([])
|
||||
last_date_from = gr.Textbox()
|
||||
|
Loading…
Reference in New Issue
Block a user