File size: 1,623 Bytes
2917b9c
 
 
 
f0b0938
 
 
 
 
 
1fd7cd3
 
73c739d
f0b0938
 
 
9547cc1
f0b0938
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2917b9c
 
 
 
 
 
 
73c739d
 
1fd7cd3
 
515de26
1101fa6
1fd7cd3
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import imageio
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage.transform import resize
import warnings
from demo import make_animation
from skimage import img_as_ubyte
from demo import load_checkpoints

warnings.filterwarnings("ignore")
source_image = imageio.imread('harold.jpg')
driving_video = imageio.mimread('part1.mp4')


#Resize image and video to 256x256

source_image = resize(source_image, (256, 256))[..., :3]
driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]

def display(source, driving, generated=None):
    fig = plt.figure(figsize=(8 + 4 * (generated is not None), 6))

    ims = []
    for i in range(len(driving)):
        cols = [source]
        cols.append(driving[i])
        if generated is not None:
            cols.append(generated[i])
        im = plt.imshow(np.concatenate(cols, axis=1), animated=True)
        plt.axis('off')
        ims.append([im])

    ani = animation.ArtistAnimation(fig, ims, interval=50, repeat_delay=1000)
    plt.close()
    return ani


# Create some example data
st.write("Hello, World!")

# display HTML

# display Markdown
st.write("# Hello, World!")

generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml',checkpoint_path='vox-cpk.pth.tar')

predictions = make_animation(source_image, driving_video, generator, kp_detector, relative=True)
st.write(predictions)
#save resulting video
imageio.mimsave('generated.mp4', [img_as_ubyte(frame) for frame in predictions])