Spaces:
Running
on
Zero
Running
on
Zero
Revert
Browse files
app.py
CHANGED
@@ -219,34 +219,26 @@ def generate(
|
|
219 |
pipe.scheduler = backup_scheduler
|
220 |
utils.free_memory()
|
221 |
|
222 |
-
|
223 |
-
image_files = [f for f in os.listdir(OUTPUT_DIR) if f.endswith('.png')]
|
224 |
-
image_files.sort(key=lambda x: os.path.getmtime(os.path.join(OUTPUT_DIR, x)), reverse=True)
|
225 |
-
recent_images = []
|
226 |
-
|
227 |
-
for img_file in image_files[:num_images]:
|
228 |
-
img_path = os.path.join(OUTPUT_DIR, img_file)
|
229 |
-
img = Image.open(img_path)
|
230 |
-
metadata = utils.get_image_metadata(img_path)
|
231 |
-
recent_images.append({
|
232 |
-
"image": img_path,
|
233 |
-
"prompt": metadata.get("prompt", ""),
|
234 |
-
"timestamp": datetime.fromtimestamp(os.path.getmtime(img_path)).strftime("%Y-%m-%d %H:%M:%S"),
|
235 |
-
"metadata": metadata
|
236 |
-
})
|
237 |
-
|
238 |
-
return recent_images
|
239 |
|
240 |
def update_history_list():
|
241 |
-
return
|
242 |
|
243 |
def handle_image_click(evt: gr.SelectData):
|
244 |
-
selected =
|
245 |
return selected["image"], json.dumps(selected["metadata"], indent=2)
|
246 |
|
247 |
def generate_and_update_history(*args, **kwargs):
|
248 |
images, metadata = generate(*args, **kwargs)
|
249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
return images[0], json.dumps(metadata, indent=2), update_history_list()
|
251 |
|
252 |
with open('characterfull.txt', 'r') as f:
|
@@ -380,13 +372,12 @@ with gr.Blocks(css="style.css") as demo:
|
|
380 |
generate_from_json = gr.Button("Generate from JSON")
|
381 |
|
382 |
with gr.Accordion("Generation History", open=False) as history_accordion:
|
383 |
-
update_gallery_button = gr.Button("Update Gallery")
|
384 |
history_gallery = gr.Gallery(
|
385 |
label="History",
|
386 |
show_label=False,
|
387 |
elem_id="history_gallery",
|
388 |
columns=5,
|
389 |
-
rows=
|
390 |
height="auto"
|
391 |
)
|
392 |
with gr.Row():
|
@@ -492,11 +483,5 @@ with gr.Blocks(css="style.css") as demo:
|
|
492 |
inputs=[],
|
493 |
outputs=[selected_image, selected_metadata]
|
494 |
)
|
495 |
-
|
496 |
-
update_gallery_button.click(
|
497 |
-
fn=update_history_list,
|
498 |
-
inputs=[],
|
499 |
-
outputs=[history_gallery]
|
500 |
-
)
|
501 |
-
|
502 |
demo.queue(max_size=20).launch(debug=IS_COLAB, share=IS_COLAB)
|
|
|
219 |
pipe.scheduler = backup_scheduler
|
220 |
utils.free_memory()
|
221 |
|
222 |
+
generation_history = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
|
224 |
def update_history_list():
|
225 |
+
return [item["image"] for item in generation_history]
|
226 |
|
227 |
def handle_image_click(evt: gr.SelectData):
|
228 |
+
selected = generation_history[evt.index]
|
229 |
return selected["image"], json.dumps(selected["metadata"], indent=2)
|
230 |
|
231 |
def generate_and_update_history(*args, **kwargs):
|
232 |
images, metadata = generate(*args, **kwargs)
|
233 |
+
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
234 |
+
generation_history.insert(0, {
|
235 |
+
"prompt": metadata["prompt"],
|
236 |
+
"timestamp": timestamp,
|
237 |
+
"image": images[0],
|
238 |
+
"metadata": metadata
|
239 |
+
})
|
240 |
+
if len(generation_history) > 20:
|
241 |
+
generation_history.pop()
|
242 |
return images[0], json.dumps(metadata, indent=2), update_history_list()
|
243 |
|
244 |
with open('characterfull.txt', 'r') as f:
|
|
|
372 |
generate_from_json = gr.Button("Generate from JSON")
|
373 |
|
374 |
with gr.Accordion("Generation History", open=False) as history_accordion:
|
|
|
375 |
history_gallery = gr.Gallery(
|
376 |
label="History",
|
377 |
show_label=False,
|
378 |
elem_id="history_gallery",
|
379 |
columns=5,
|
380 |
+
rows=2,
|
381 |
height="auto"
|
382 |
)
|
383 |
with gr.Row():
|
|
|
483 |
inputs=[],
|
484 |
outputs=[selected_image, selected_metadata]
|
485 |
)
|
486 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
demo.queue(max_size=20).launch(debug=IS_COLAB, share=IS_COLAB)
|