File size: 2,915 Bytes
21fc34d
 
 
 
 
 
4335e0e
21fc34d
 
 
 
 
 
 
 
 
 
 
 
d673498
21fc34d
d673498
21fc34d
 
 
 
48af642
 
21fc34d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d673498
21fc34d
 
 
 
 
d673498
21fc34d
 
 
 
 
 
 
 
 
d673498
21fc34d
 
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
import argparse
import os
import random

import gradio as gr

from video_super_resolution.scripts.inference_sr import VEnhancer_sr

examples = [
    ["prompts/astronaut.mp4", "An astronaut flying in space, featuring a steady and smooth perspective", 4, 24, 250],
    ["prompts/cat.mp4", "A cat wearing sunglasses at a pool", 4, 24, 250],
    ["prompts/fish.mp4", "Clown fish swimming through the coral reef", 4, 24, 300],
    ["prompts/iron_man.mp4", "Iron Man flying in the sky", 4, 24, 250],
    ["prompts/raccoon.mp4", "A cute raccoon playing guitar in a boat on the ocean", 4, 24, 250],
    ["prompts/shanghai.mp4", "The bund Shanghai by Hokusai, in the style of Ukiyo", 4, 24, 250],
    ["prompts/gwen.mp4", "Gwen Stacy reading a book, black and white", 4, 24, 250],
]


def venhancer_demo(result_dir="./tmp/"):
    css = """#input_video {max-width: 1024px !important} #output_vid {max-width: 2048px; max-height:1280px}"""
    venhancer = VEnhancer_sr(result_dir)
    with gr.Blocks(analytics_enabled=False, css=css) as venhancer_iface:
        gr.Markdown(
            "<div align='center'> <h1> VEnhancer </span> </h1> \

                     <a style='font-size:18px;color: #000000' href='https://arxiv.org/abs/2407.07667'> [ArXiv] </a>\

                     <a style='font-size:18px;color: #000000' href='https://yhliu04.github.io/STAR/'> [Project Page] </a> \

                     <a style='font-size:18px;color: #000000' href='https://github.com/NJU-PCALab/STAR'> [Github] </a> </div>"
        )
        with gr.Tab(label="VEnhancer"):
            with gr.Column():
                with gr.Row():
                    with gr.Column():
                        with gr.Row():
                            input_video = gr.Video(label="Input Video", elem_id="input_video")
                        with gr.Row():
                            input_text = gr.Text(label="Prompts")
                        end_btn = gr.Button("Generate")
                    with gr.Row():
                        output_video = gr.Video(
                            label="Generated Video", elem_id="output_vid", autoplay=True, show_share_button=True
                        )

                gr.Examples(
                    examples=examples,
                    inputs=[input_video, input_text],
                    outputs=[output_video],
                    fn=venhancer.enhance_a_video,
                    cache_examples=False,
                )
            end_btn.click(
                inputs=[input_video, input_text],
                outputs=[output_video],
                fn=venhancer.enhance_a_video,
            )

    return venhancer_iface


if __name__ == "__main__":
    result_dir = os.path.join("./", "results")
    venhancer_iface = venhancer_demo(result_dir)
    venhancer_iface.queue(max_size=12)
    venhancer_iface.launch(max_threads=1)