Spaces:
Runtime error
Runtime error
File size: 2,257 Bytes
db12400 b127fd6 5e44253 bbf9a90 db12400 5e44253 54d06ee 55c9cad 5e44253 55c9cad 5e44253 55c9cad 6a04784 5e44253 55c9cad 5e44253 db12400 9e2421a 6a04784 e38439c 4b109d4 dafd4d1 7a6bc70 54d06ee 4b109d4 55c9cad dafd4d1 6a04784 db12400 54d06ee 5cd1978 9e2421a f90f58c db12400 9e2421a |
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import gradio as gr
import os
import cv2
import numpy as np
from moviepy.editor import *
token = os.environ.get('HF_TOKEN')
pix2pix = gr.Blocks.load(name="spaces/fffiloni/instruct-pix2pix-clone", api_key=token)
def get_frames(video_in):
frames = []
# Opens the Video file
cap= cv2.VideoCapture(video_in)
fps = cap.get(cv2.CAP_PROP_FPS)
i=0
while(cap.isOpened()):
ret, frame = cap.read()
if ret == False:
break
cv2.imwrite('kang'+str(i)+'.jpg',frame)
frames.append('kang'+str(i)+'.jpg')
i+=1
cap.release()
cv2.destroyAllWindows()
return frames, fps
def create_video(frames, fps):
clip = ImageSequenceClip(frames, fps=fps)
clip.write_videofile("movie.mp4", fps=fps)
return 'movie.mp4'
def infer(prompt,video_in, seed_in, trim_value):
break_vid = get_frames(video_in)
frames_list= break_vid[0]
fps = break_vid[1]
n_frame = trim_value*fps
result_frames = []
for i in frames_list[0:n_frame]:
pix2pix_img = pix2pix(prompt,5.5,1.5,i,15,"",512,512,seed_in,fn_index=0)
images = [os.path.join(pix2pix_img[0], img) for img in os.listdir(pix2pix_img[0])]
result_frames.append(images[0])
print("frame " + i + ": done;")
final_vid = create_video(result_frames, fps)
return final_vid
with gr.Blocks(css='style.css') as demo:
with gr.Column(elem_id="col-container"):
with gr.Row():
with gr.Column():
prompt = gr.Textbox(placeholder="enter prompt", show_label=False)
video_inp = gr.Video(label="Video source", source="upload", type="filepath")
with gr.Column():
with gr.Row():
seed_inp = gr.Slider(minimum=0, maximum=10000, step=1, value=123456)
trim_in = gr.Slider(label="Cut video at (s)", minimun=2, maximum=10, step=1, value=2)
video_out = gr.Video(label="Pix2pix video result")
submit_btn = gr.Button("Generate Pix2Pix video")
inputs = [prompt,video_inp,seed_inp, trim_in]
outputs = [video_out]
submit_btn.click(infer, inputs, outputs)
demo.launch().queue(max_size=12)
|