File size: 1,447 Bytes
9df91a5
7b1849c
388f757
4a0ca8c
9df91a5
a30b14f
0186403
afbbb7c
 
 
7b1849c
5c6616d
 
7b1849c
388f757
 
 
4a0ca8c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a30b14f
 
 
 
3024720
 
4a0ca8c
a30b14f
 
 
 
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
import gradio as gr
import os
import tempfile
import shutil

# Function to execute the anime upscaler command
def execute_upscaler(input_video_path, output_path, save_intermediate, async_mode):
    if input_video_path is None:
        raise ValueError("No video file provided.")

    # Determine the path to the model file in the same directory
    script_directory = os.path.dirname(os.path.realpath(__file__))
    model_path = os.path.join(script_directory, "RealESRGAN_x4plus_anime_6B.pth")

    # Create a temporary directory to store the uploaded video
    temp_dir = tempfile.mkdtemp()

    try:
        # Build the command
        command = [
            "python3",
            "anime_upscaler.py",
            "-m", model_path,
            "-i", input_video_path,
            "-o", output_path
        ]

        # Add optional flags
        if save_intermediate:
            command.append("-s")
        if async_mode:
            command.append("-a")

        # Execute the command
        import subprocess
        result = subprocess.run(command, capture_output=True, text=True)

        # Return the output of the command
        return result.stdout

    finally:
        # Cleanup: Remove the temporary directory
        shutil.rmtree(temp_dir)

# Define the Gradio interface
iface = gr.Interface(
    fn=execute_upscaler,
    inputs=gr.Video(),
    outputs=gr.Video(),
    live=True
)

# Launch the Gradio interface
iface.launch()