Axolotlily commited on
Commit
13b7cc7
1 Parent(s): 79e6ee1

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ os.system("git clone https://github.com/google-research/frame-interpolation")
3
+ import sys
4
+ sys.path.append("frame-interpolation")
5
+ import numpy as np
6
+ import tensorflow as tf
7
+ import mediapy
8
+ from PIL import Image
9
+ from eval import interpolator, util
10
+ import gradio as gr
11
+
12
+ from huggingface_hub import snapshot_download
13
+
14
+ from image_tools.sizes import resize_and_crop
15
+
16
+
17
+ model = snapshot_download(repo_id="akhaliq/frame-interpolation-film-style")
18
+
19
+ interpolator = interpolator.Interpolator(model, None)
20
+
21
+ ffmpeg_path = util.get_ffmpeg_path()
22
+ mediapy.set_ffmpeg(ffmpeg_path)
23
+
24
+ def resize(width,img):
25
+ basewidth = width
26
+ img = Image.open(img)
27
+ wpercent = (basewidth/float(img.size[0]))
28
+ hsize = int((float(img.size[1])*float(wpercent)))
29
+ img = img.resize((basewidth,hsize), Image.ANTIALIAS)
30
+ return img
31
+
32
+
33
+ def resize_img(img1,img2):
34
+ img_target_size = Image.open(img1)
35
+ img_to_resize = resize_and_crop(
36
+ img2,
37
+ (img_target_size.size[0],img_target_size.size[1]), #set width and height to match img1
38
+ crop_origin="middle"
39
+ )
40
+ img_to_resize.save('resized_img2.png')
41
+
42
+ def predict(frame1, frame2, times_to_interpolate):
43
+
44
+ frame1 = resize(780,frame1)
45
+ frame2 = resize(780,frame2)
46
+
47
+ frame1.save("test1.png")
48
+ frame2.save("test2.png")
49
+
50
+ resize_img("test1.png","test2.png")
51
+ input_frames = ["test1.png", "resized_img2.png"]
52
+
53
+ frames = list(
54
+ util.interpolate_recursively_from_files(
55
+ input_frames, times_to_interpolate, interpolator))
56
+
57
+ mediapy.write_video("out.mp4", frames, fps=30)
58
+ return "out.mp4"
59
+
60
+ title="frame-interpolation"
61
+ examples=[['cat3.jpeg','cat4.jpeg',2]]
62
+ gr.Interface(predict,[gr.inputs.Image(type='filepath'),gr.inputs.Image(type='filepath'),gr.inputs.Slider(minimum=2,maximum=8,step=1)],"playable_video",title=title,description=description,article=article,examples=examples).launch(enable_queue=True)