Spaces:
Running
on
Zero
Running
on
Zero
Change how gr.State is used
Browse files
app.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
import json
|
2 |
import os
|
|
|
3 |
|
4 |
import cv2
|
5 |
import gradio as gr
|
@@ -418,8 +419,8 @@ class ImageConductor:
|
|
418 |
|
419 |
|
420 |
def reset_states(first_frame_path, tracking_points):
|
421 |
-
first_frame_path =
|
422 |
-
tracking_points =
|
423 |
return {input_image: None, first_frame_path_var: first_frame_path, tracking_points_var: tracking_points}
|
424 |
|
425 |
|
@@ -432,7 +433,7 @@ def preprocess_image(image, tracking_points):
|
|
432 |
id = str(uuid.uuid4())[:4]
|
433 |
first_frame_path = os.path.join(output_dir, f"first_frame_{id}.jpg")
|
434 |
image_pil.save(first_frame_path, quality=95)
|
435 |
-
tracking_points =
|
436 |
return {
|
437 |
input_image: first_frame_path,
|
438 |
first_frame_path_var: first_frame_path,
|
@@ -449,26 +450,16 @@ def add_tracking_points(
|
|
449 |
elif drag_mode == "camera":
|
450 |
color = (0, 0, 255, 255)
|
451 |
|
452 |
-
|
453 |
-
|
454 |
-
tracking_points
|
455 |
-
|
456 |
-
tracking_points_values = tracking_points.value
|
457 |
-
else:
|
458 |
-
try:
|
459 |
-
tracking_points[-1].append(evt.index)
|
460 |
-
except Exception as e:
|
461 |
-
tracking_points.append([])
|
462 |
-
tracking_points[-1].append(evt.index)
|
463 |
-
print(f"Solved Error: {e}")
|
464 |
-
|
465 |
-
tracking_points_values = tracking_points
|
466 |
|
467 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
468 |
w, h = transparent_background.size
|
469 |
transparent_layer = np.zeros((h, w, 4))
|
470 |
|
471 |
-
for track in
|
472 |
if len(track) > 1:
|
473 |
for i in range(len(track) - 1):
|
474 |
start_point = track[i]
|
@@ -497,12 +488,7 @@ def add_tracking_points(
|
|
497 |
|
498 |
|
499 |
def add_drag(tracking_points):
|
500 |
-
|
501 |
-
# print("before", tracking_points.value)
|
502 |
-
tracking_points.value.append([])
|
503 |
-
# print(tracking_points.value)
|
504 |
-
else:
|
505 |
-
tracking_points.append([])
|
506 |
return {tracking_points_var: tracking_points}
|
507 |
|
508 |
|
@@ -511,11 +497,11 @@ def delete_last_drag(tracking_points, first_frame_path, drag_mode):
|
|
511 |
color = (255, 0, 0, 255)
|
512 |
elif drag_mode == "camera":
|
513 |
color = (0, 0, 255, 255)
|
514 |
-
tracking_points.
|
515 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
516 |
w, h = transparent_background.size
|
517 |
transparent_layer = np.zeros((h, w, 4))
|
518 |
-
for track in tracking_points
|
519 |
if len(track) > 1:
|
520 |
for i in range(len(track) - 1):
|
521 |
start_point = track[i]
|
@@ -548,11 +534,11 @@ def delete_last_step(tracking_points, first_frame_path, drag_mode):
|
|
548 |
color = (255, 0, 0, 255)
|
549 |
elif drag_mode == "camera":
|
550 |
color = (0, 0, 255, 255)
|
551 |
-
tracking_points
|
552 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
553 |
w, h = transparent_background.size
|
554 |
transparent_layer = np.zeros((h, w, 4))
|
555 |
-
for track in tracking_points
|
556 |
if len(track) > 1:
|
557 |
for i in range(len(track) - 1):
|
558 |
start_point = track[i]
|
@@ -603,7 +589,7 @@ with block:
|
|
603 |
with gr.Row(equal_height=True):
|
604 |
gr.Markdown(instructions)
|
605 |
|
606 |
-
first_frame_path_var = gr.State(
|
607 |
tracking_points_var = gr.State([])
|
608 |
|
609 |
with gr.Row():
|
|
|
1 |
import json
|
2 |
import os
|
3 |
+
import uuid
|
4 |
|
5 |
import cv2
|
6 |
import gradio as gr
|
|
|
419 |
|
420 |
|
421 |
def reset_states(first_frame_path, tracking_points):
|
422 |
+
first_frame_path = None
|
423 |
+
tracking_points = []
|
424 |
return {input_image: None, first_frame_path_var: first_frame_path, tracking_points_var: tracking_points}
|
425 |
|
426 |
|
|
|
433 |
id = str(uuid.uuid4())[:4]
|
434 |
first_frame_path = os.path.join(output_dir, f"first_frame_{id}.jpg")
|
435 |
image_pil.save(first_frame_path, quality=95)
|
436 |
+
tracking_points = []
|
437 |
return {
|
438 |
input_image: first_frame_path,
|
439 |
first_frame_path_var: first_frame_path,
|
|
|
450 |
elif drag_mode == "camera":
|
451 |
color = (0, 0, 255, 255)
|
452 |
|
453 |
+
print(f"You selected {evt.value} at {evt.index} from {evt.target}")
|
454 |
+
if not tracking_points:
|
455 |
+
tracking_points = [[]]
|
456 |
+
tracking_points[-1].append(evt.index)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
457 |
|
458 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
459 |
w, h = transparent_background.size
|
460 |
transparent_layer = np.zeros((h, w, 4))
|
461 |
|
462 |
+
for track in tracking_points:
|
463 |
if len(track) > 1:
|
464 |
for i in range(len(track) - 1):
|
465 |
start_point = track[i]
|
|
|
488 |
|
489 |
|
490 |
def add_drag(tracking_points):
|
491 |
+
tracking_points.append([])
|
|
|
|
|
|
|
|
|
|
|
492 |
return {tracking_points_var: tracking_points}
|
493 |
|
494 |
|
|
|
497 |
color = (255, 0, 0, 255)
|
498 |
elif drag_mode == "camera":
|
499 |
color = (0, 0, 255, 255)
|
500 |
+
tracking_points.pop()
|
501 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
502 |
w, h = transparent_background.size
|
503 |
transparent_layer = np.zeros((h, w, 4))
|
504 |
+
for track in tracking_points:
|
505 |
if len(track) > 1:
|
506 |
for i in range(len(track) - 1):
|
507 |
start_point = track[i]
|
|
|
534 |
color = (255, 0, 0, 255)
|
535 |
elif drag_mode == "camera":
|
536 |
color = (0, 0, 255, 255)
|
537 |
+
tracking_points[-1].pop()
|
538 |
transparent_background = Image.open(first_frame_path).convert("RGBA")
|
539 |
w, h = transparent_background.size
|
540 |
transparent_layer = np.zeros((h, w, 4))
|
541 |
+
for track in tracking_points:
|
542 |
if len(track) > 1:
|
543 |
for i in range(len(track) - 1):
|
544 |
start_point = track[i]
|
|
|
589 |
with gr.Row(equal_height=True):
|
590 |
gr.Markdown(instructions)
|
591 |
|
592 |
+
first_frame_path_var = gr.State()
|
593 |
tracking_points_var = gr.State([])
|
594 |
|
595 |
with gr.Row():
|