Spaces:
Running
Running
nalin0503
commited on
Commit
·
64a9e02
1
Parent(s):
ca501e3
add checks FILM.py
Browse files
FILM.py
CHANGED
@@ -53,15 +53,17 @@ def _recursive_generator(frame1, frame2, num_recursions, interpolator):
|
|
53 |
if num_recursions == 0:
|
54 |
yield frame1 # exit condition
|
55 |
else:
|
56 |
-
|
57 |
mid_frame = interpolator(
|
58 |
-
np.expand_dims(frame1, axis=0), np.expand_dims(frame2, axis=0),
|
59 |
yield from _recursive_generator(frame1, mid_frame, num_recursions - 1, interpolator) # 1st half
|
60 |
yield from _recursive_generator(mid_frame, frame2, num_recursions - 1, interpolator) # 2nd half
|
61 |
|
62 |
def interpolate_recursively(frames, num_recursions, interpolator):
|
63 |
"""Apply recursive interpolation to a list of input frames."""
|
64 |
n = len(frames)
|
|
|
|
|
65 |
for i in range(1, n):
|
66 |
yield from _recursive_generator(frames[i - 1], frames[i], num_recursions, interpolator)
|
67 |
yield frames[-1]
|
@@ -69,6 +71,12 @@ def interpolate_recursively(frames, num_recursions, interpolator):
|
|
69 |
def process_keyframes(input_folder, output_folder, fps=30, num_recursions=3):
|
70 |
"""Process keyframes to create an interpolated video, using functions above"""
|
71 |
keyframes = sorted(glob(os.path.join(input_folder, '*.png')))
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
frames = [preprocess_image(frame).numpy() for frame in keyframes]
|
73 |
|
74 |
interpolator = Interpolator()
|
|
|
53 |
if num_recursions == 0:
|
54 |
yield frame1 # exit condition
|
55 |
else:
|
56 |
+
dt_value = np.full(shape=(1,), fill_value=0.5, dtype=np.float32)
|
57 |
mid_frame = interpolator(
|
58 |
+
np.expand_dims(frame1, axis=0), np.expand_dims(frame2, axis=0), dt_value)[0]
|
59 |
yield from _recursive_generator(frame1, mid_frame, num_recursions - 1, interpolator) # 1st half
|
60 |
yield from _recursive_generator(mid_frame, frame2, num_recursions - 1, interpolator) # 2nd half
|
61 |
|
62 |
def interpolate_recursively(frames, num_recursions, interpolator):
|
63 |
"""Apply recursive interpolation to a list of input frames."""
|
64 |
n = len(frames)
|
65 |
+
if n == 0:
|
66 |
+
raise ValueError("No input frames found.")
|
67 |
for i in range(1, n):
|
68 |
yield from _recursive_generator(frames[i - 1], frames[i], num_recursions, interpolator)
|
69 |
yield frames[-1]
|
|
|
71 |
def process_keyframes(input_folder, output_folder, fps=30, num_recursions=3):
|
72 |
"""Process keyframes to create an interpolated video, using functions above"""
|
73 |
keyframes = sorted(glob(os.path.join(input_folder, '*.png')))
|
74 |
+
if not keyframes:
|
75 |
+
raise ValueError(f"No PNG keyframes found in {input_folder}")
|
76 |
+
|
77 |
+
# Ensure the output folder exists
|
78 |
+
os.makedirs(output_folder, exist_ok=True)
|
79 |
+
|
80 |
frames = [preprocess_image(frame).numpy() for frame in keyframes]
|
81 |
|
82 |
interpolator = Interpolator()
|