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)
|