qqwjq1981 commited on
Commit
8797284
·
verified ·
1 Parent(s): 8a82434

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -15
app.py CHANGED
@@ -4,6 +4,7 @@ import math
4
  import gradio as gr
5
  from PIL import Image, ImageDraw
6
  import os
 
7
  from utils.keyframe_utils import generate_keyframe_prompt, generate_all_keyframe_images
8
 
9
  # Load segments JSON
@@ -51,11 +52,12 @@ def paginate_segments(page=1, page_size=15):
51
  data = [segment_display(seg) for seg in subset]
52
  return headers, data, max_page
53
 
54
- def download_prompts():
55
- if os.path.exists("all_prompts_output.json"):
56
- return "all_prompts_output.json"
57
- else:
58
- return None
 
59
 
60
  def build_interface():
61
  with gr.Blocks() as demo:
@@ -72,15 +74,14 @@ def build_interface():
72
  headers, rows, max_page = paginate_segments(page)
73
  return gr.update(headers=headers, value=rows), f"Page {page} of {max_page}", page
74
 
75
- def generate_and_refresh():
76
  segments = load_segments()
77
  generate_all_keyframe_images(segments)
78
  return update(1)
79
 
80
  with gr.Row():
81
- with gr.Row(elem_id="page-controls"):
82
- prev_btn = gr.Button("", size="sm")
83
- next_btn = gr.Button("➡", size="sm")
84
 
85
  prev_btn.click(fn=lambda p: max(1, p - 1), inputs=page_state, outputs=page_state).then(update, inputs=page_state, outputs=[table, total_pages_text, page_state])
86
  next_btn.click(fn=lambda p: p + 1, inputs=page_state, outputs=page_state).then(update, inputs=page_state, outputs=[table, total_pages_text, page_state])
@@ -89,13 +90,12 @@ def build_interface():
89
 
90
  gr.Markdown("### 🖼️ 生成所有分镜的关键帧图像")
91
  generate_btn = gr.Button("🛠️ 一键生成图像")
92
- generate_btn.click(fn=generate_and_refresh, outputs=[table, total_pages_text, page_state])
93
 
94
- gr.Markdown("### 📥 下载所有生成的图像提示词")
95
- with gr.Row():
96
- download_btn = gr.Button("📥 导出 prompts JSON")
97
- download_output = gr.File(label="下载文件")
98
- download_btn.click(fn=download_prompts, outputs=download_output)
99
 
100
  return demo
101
 
 
4
  import gradio as gr
5
  from PIL import Image, ImageDraw
6
  import os
7
+ import shutil
8
  from utils.keyframe_utils import generate_keyframe_prompt, generate_all_keyframe_images
9
 
10
  # Load segments JSON
 
52
  data = [segment_display(seg) for seg in subset]
53
  return headers, data, max_page
54
 
55
+ def zip_keyframe_folder():
56
+ zip_name = "keyframes.zip"
57
+ if os.path.exists(zip_name):
58
+ os.remove(zip_name)
59
+ shutil.make_archive("keyframes", 'zip', "keyframes")
60
+ return zip_name
61
 
62
  def build_interface():
63
  with gr.Blocks() as demo:
 
74
  headers, rows, max_page = paginate_segments(page)
75
  return gr.update(headers=headers, value=rows), f"Page {page} of {max_page}", page
76
 
77
+ def generate_and_refresh(_):
78
  segments = load_segments()
79
  generate_all_keyframe_images(segments)
80
  return update(1)
81
 
82
  with gr.Row():
83
+ prev_btn = gr.Button("⬅", size="sm")
84
+ next_btn = gr.Button("", size="sm")
 
85
 
86
  prev_btn.click(fn=lambda p: max(1, p - 1), inputs=page_state, outputs=page_state).then(update, inputs=page_state, outputs=[table, total_pages_text, page_state])
87
  next_btn.click(fn=lambda p: p + 1, inputs=page_state, outputs=page_state).then(update, inputs=page_state, outputs=[table, total_pages_text, page_state])
 
90
 
91
  gr.Markdown("### 🖼️ 生成所有分镜的关键帧图像")
92
  generate_btn = gr.Button("🛠️ 一键生成图像")
93
+ generate_btn.click(fn=generate_and_refresh, inputs=[page_state], outputs=[table, total_pages_text, page_state])
94
 
95
+ gr.Markdown("### 📦 打包下载 keyframes 文件夹(包含图片和 prompts.json)")
96
+ zip_btn = gr.Button("📁 生成 ZIP")
97
+ zip_file_output = gr.File(label="下载 ZIP")
98
+ zip_btn.click(fn=zip_keyframe_folder, outputs=zip_file_output)
 
99
 
100
  return demo
101