qqwjq1981 commited on
Commit
49914b6
·
verified ·
1 Parent(s): d124c09

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -12
app.py CHANGED
@@ -1,10 +1,10 @@
1
-
2
  # --- app.py ---
3
  import json
4
  import math
5
  import gradio as gr
6
  from PIL import Image
7
- import random
 
8
 
9
  # Load segments JSON
10
  def load_segments():
@@ -12,20 +12,23 @@ def load_segments():
12
  segments = json.load(f)
13
  return segments
14
 
15
- # Simulated keyframe image generator (use local placeholder or generate random colors)
16
- def get_placeholder_image(seed):
17
- random.seed(seed)
18
- img = Image.new("RGB", (256, 144), color=(random.randint(100,255), random.randint(100,255), random.randint(100,255)))
19
- return img
 
 
 
 
 
20
 
21
  # UI component for a single segment row
22
  def segment_display(segment):
23
  description = segment["description"]
24
  seg_id = segment["segment_id"]
25
  row = [f"Segment {seg_id}", description]
26
- for i in range(3):
27
- img = get_placeholder_image(seed=(seg_id * 10 + i))
28
- row.append(img)
29
  return row
30
 
31
  # Pagination logic
@@ -60,12 +63,10 @@ def build_interface():
60
  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])
61
  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])
62
 
63
- # Initial load
64
  demo.load(fn=update, inputs=page_state, outputs=[table, total_pages_text, page_state])
65
 
66
  return demo
67
 
68
- # Launch app
69
  if __name__ == "__main__":
70
  demo = build_interface()
71
  demo.launch()
 
 
1
  # --- app.py ---
2
  import json
3
  import math
4
  import gradio as gr
5
  from PIL import Image
6
+ import os
7
+ from utils.keyframe_utils import generate_keyframe_prompt
8
 
9
  # Load segments JSON
10
  def load_segments():
 
12
  segments = json.load(f)
13
  return segments
14
 
15
+ # Load pre-generated keyframe images (3 per segment)
16
+ def get_keyframe_images(segment_id):
17
+ images = []
18
+ for i in range(1, 4):
19
+ img_path = f"keyframes/segment_{segment_id}_v{i}.png"
20
+ if os.path.exists(img_path):
21
+ images.append(Image.open(img_path))
22
+ else:
23
+ images.append(Image.new("RGB", (256, 144), color=(200, 200, 200)))
24
+ return images
25
 
26
  # UI component for a single segment row
27
  def segment_display(segment):
28
  description = segment["description"]
29
  seg_id = segment["segment_id"]
30
  row = [f"Segment {seg_id}", description]
31
+ row.extend(get_keyframe_images(seg_id))
 
 
32
  return row
33
 
34
  # Pagination logic
 
63
  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])
64
  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])
65
 
 
66
  demo.load(fn=update, inputs=page_state, outputs=[table, total_pages_text, page_state])
67
 
68
  return demo
69
 
 
70
  if __name__ == "__main__":
71
  demo = build_interface()
72
  demo.launch()