Spaces:
Build error
Build error
File size: 5,663 Bytes
75f2d00 0757c55 3ab49e3 75f2d00 1e5bda6 0757c55 1e5bda6 75f2d00 0757c55 75f2d00 4a341a4 1e5bda6 75f2d00 1e5bda6 fe42b63 1e5bda6 4a341a4 75f2d00 1e5bda6 75f2d00 1e5bda6 fe42b63 1e5bda6 fe42b63 1e5bda6 fe42b63 1e5bda6 fe42b63 1e5bda6 fe42b63 1e5bda6 75f2d00 0757c55 |
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
import os
import sys
import gradio as gr
from videocrafter_test import Text2Video
from videocontrol_test import VideoControl
sys.path.insert(1, os.path.join(sys.path[0], 'lvdm'))
t2v_examples = [
['an elephant is walking under the sea, 4K, high definition',50,'origin',1,15,1,],
['an astronaut riding a horse in outer space',25,'origin',1,15,1,],
['a monkey is playing a piano',25,'vangogh',1,15,1,],
['A fire is burning on a candle',25,'frozen',1,15,1,],
['a horse is drinking in the river',25,'yourname',1,15,1,],
['Robot dancing in times square',25,'coco',1,15,1,],
]
control_examples = [
['input/flamingo.mp4', 'An ostrich walking in the desert, photorealistic, 4k', 0, 50, 15, 1]
]
def videocrafter_demo(result_dir='./tmp/'):
text2video = Text2Video(result_dir)
videocontrol = VideoControl(result_dir)
with gr.Blocks(analytics_enabled=False) as videocrafter_iface:
gr.Markdown("<div align='center'> <h2> VideoCrafter: A Toolkit for Text-to-Video Generation and Editing </span> </h2> \
<a style='font-size:18px;color: #efefef' href='https://github.com/VideoCrafter/VideoCrafter'> Github </div>")
#######t2v#######
with gr.Tab(label="Text2Video"):
with gr.Column():
with gr.Row().style(equal_height=False):
with gr.Column():
input_text = gr.Text(label='Prompts')
model_choices=['origin','vangogh','frozen','yourname', 'coco']
with gr.Row():
model_index = gr.Dropdown(label='Models', elem_id=f"model", choices=model_choices, value=model_choices[0], type="index",interactive=True)
with gr.Row():
steps = gr.Slider(minimum=1, maximum=200, step=1, elem_id=f"steps", label="Sampling steps", value=50)
eta = gr.Slider(minimum=0.0, maximum=1.0, step=0.1, label='ETA', value=1.0, elem_id="eta")
with gr.Row():
lora_scale = gr.Slider(minimum=0.0, maximum=2.0, step=0.1, label='Lora Scale', value=1.0, elem_id="lora_scale")
cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='CFG Scale', value=15.0, elem_id="cfg_scale")
send_btn = gr.Button("Send")
with gr.Tab(label='result'):
output_video_1 = gr.Video().style(width=384)
gr.Examples(examples=t2v_examples,
inputs=[input_text,steps,model_index,eta,cfg_scale,lora_scale],
outputs=[output_video_1],
fn=text2video.get_prompt,
cache_examples=False)
#cache_examples=os.getenv('SYSTEM') == 'spaces')
send_btn.click(
fn=text2video.get_prompt,
inputs=[input_text,steps,model_index,eta,cfg_scale,lora_scale,],
outputs=[output_video_1],
)
#######videocontrol######
with gr.Tab(label='VideoControl'):
with gr.Column():
with gr.Row():
# with gr.Tab(label='input'):
with gr.Column():
with gr.Row():
vc_input_video = gr.Video(label="Input Video").style(width=256)
vc_origin_video = gr.Video(label='Center-cropped Video').style(width=256)
with gr.Row():
vc_input_text = gr.Text(label='Prompts')
with gr.Row():
vc_eta = gr.Slider(minimum=0.0, maximum=1.0, step=0.1, label='ETA', value=1.0, elem_id="vc_eta")
vc_cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='CFG Scale', value=15.0, elem_id="vc_cfg_scale")
with gr.Row():
vc_steps = gr.Slider(minimum=1, maximum=200, step=1, elem_id="vc_steps", label="Sampling steps", value=50)
frame_stride = gr.Slider(minimum=0 , maximum=8, step=1, label='Frame Stride', value=0, elem_id="vc_frame_stride")
vc_end_btn = gr.Button("Send")
with gr.Tab(label='Result'):
vc_output_info = gr.Text(label='Info')
with gr.Row():
vc_depth_video = gr.Video(label="Depth Video").style(width=256)
vc_output_video = gr.Video(label="Generated Video").style(width=256)
gr.Examples(examples=control_examples,
inputs=[vc_input_video, vc_input_text, frame_stride, vc_steps, vc_cfg_scale, vc_eta],
outputs=[vc_output_info, vc_origin_video, vc_depth_video, vc_output_video],
fn = videocontrol.get_video,
cache_examples=os.getenv('SYSTEM') == 'spaces',
)
vc_end_btn.click(inputs=[vc_input_video, vc_input_text, frame_stride, vc_steps, vc_cfg_scale, vc_eta],
outputs=[vc_output_info, vc_origin_video, vc_depth_video, vc_output_video],
fn = videocontrol.get_video
)
return videocrafter_iface
if __name__ == "__main__":
result_dir = os.path.join('./', 'results')
videocrafter_iface = videocrafter_demo(result_dir)
videocrafter_iface.launch()
# videocrafter_iface.launch(server_name='0.0.0.0', server_port=80) |