File size: 6,843 Bytes
6158815
c92867b
 
 
 
 
a76fcef
6158815
 
 
 
 
 
 
 
 
 
 
50695f9
 
 
 
 
 
 
 
 
c92867b
 
 
 
 
 
 
 
 
6158815
 
 
 
50695f9
c92867b
6158815
1a1bdb2
732b864
1a1bdb2
732b864
c92867b
732b864
 
 
 
 
5dd27e3
 
 
732b864
 
 
 
 
 
 
 
 
 
 
807c35c
 
732b864
 
4d7c5a6
c92867b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50695f9
1a1bdb2
50695f9
1a1bdb2
50695f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2adc529
50695f9
 
 
2adc529
4d7c5a6
 
 
c92867b
4d7c5a6
 
 
 
 
 
 
 
 
 
 
 
 
 
84a1b4f
 
4d7c5a6
c92867b
a76fcef
c92867b
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import gradio as gr
from watermark_remover import convert_video_to_frames, remove_image_watermark, remove_video_watermark
from video_converter import convert_video
from image_converter import convert_image
from image_editing import edit_image
from image_inpainting import inpaint


css = """
    #remove_btn {
        background: linear-gradient(#201d18, #2bbbc3);
        font-weight: bold;
        font-size: 18px;
        color:white;
    }
    #remove_btn:hover {
        background: linear-gradient(#2bbbc3, #201d18);
    }
    #convert_btn {
        background: linear-gradient(#201d18, #2bbbc3);
        font-weight: bold;
        font-size: 18px;
        color:white;
    }
    #convert_btn:hover {
        background: linear-gradient(#2bbbc3, #201d18);
    }
    #button {
        background: linear-gradient(#201d18, #2bbbc3);
        font-weight: bold;
        font-size: 18px;
        color:white;
    }
    #button:hover {
        background: linear-gradient(#2bbbc3, #201d18);
    }
    footer {
        display: none !important;
    }
"""

demo = gr.Blocks(css=css, title="Editing Tools")
with demo:
    with gr.Tab("Image Converter"):
        gr.Markdown("""
        # <center>πŸ–ΌοΈ Image Converter</center>
        """)
        image_format = ['jpg', 'jpeg', 'png', 'bmp', 'tiff', 'gif', 'webp', 'ico']
        with gr.Row():
            with gr.Column():
                input_image = gr.File(label="Upload an Image")
            with gr.Column():
                with gr.Row():
                    image_format = gr.Radio(image_format, label="Select Format", interactive=False)
                with gr.Row():
                    image_convert_btn = gr.Button("Convert Image", interactive=False, elem_id="convert_btn")
        with gr.Row():
            output_image = gr.File(label="Output File", interactive=False)
        image_status = gr.Textbox(label="Status", interactive=False)
        input_image.change(lambda x: gr.Radio.update(interactive=True), inputs=[input_image], outputs=[image_format])
        image_format.change(lambda x: gr.Button.update(interactive=True), None, outputs=[image_convert_btn])
        image_convert_btn.click(convert_image, inputs=[input_image, image_format], outputs=[output_image, image_status])

    with gr.Tab("Image Watermark Remover"):
        gr.Markdown("""
        # <center>πŸ–ΌοΈ Image Watermark Remover</center>
        """)
        input_image_watermark = gr.Image(label="Upload an Image", tool="sketch", type="pil", interactive=True)
        image_remove_btn = gr.Button("Remove Watermark", interactive=True, elem_id="remove_btn")
        output_image_clean = gr.Image(label="Output Image", interactive=True)

        image_remove_btn.click(remove_image_watermark, inputs=[input_image_watermark], outputs=[output_image_clean])
    
    with gr.Tab("Image Editing"):
        gr.Markdown("""
        # <center>πŸ–ΌοΈ Image Editing</center>
        """)
        input_editing_image = gr.Image(label="Upload an Image", type="pil", interactive=True)
        image_editing_options = gr.Radio(["High Res", "Colorize", "Greyscale", "Remove Background"], label="Select Editing Option", interactive=True, value="High Resolution")
        image_editing_btn = gr.Button("Submit", interactive=True, elem_id="button")
        with gr.Row():
            image_editing_output = gr.Image(label="Output Preview", interactive=False)
            image_editing_file = gr.File(label="Download File", interactive=False)

        image_editing_btn.click(edit_image, inputs=[input_editing_image, image_editing_options], outputs=[image_editing_output, image_editing_file])

    with gr.Tab("Image Inpainting"):
        gr.Markdown("""
        # <center>πŸ–ΌοΈ Image Inpainting</center>
        """)
        input_inpainting_image = gr.Image(label="Upload an Image", type="pil", interactive=True, tool="sketch")
        input_inpainting_prompt = gr.Textbox(label="Prompt", interactive=True)
        input_inpainting_btn = gr.Button("Submit", interactive=True, elem_id="button")
        with gr.Row():
            input_inpainting_output = gr.Image(label="Image Preview", interactive=False)
            input_inpainting_file = gr.File(label="Download File", interactive=False)

        input_inpainting_btn.click(inpaint, inputs=[input_inpainting_image, input_inpainting_prompt], outputs=[input_inpainting_output, input_inpainting_file])

    with gr.Tab("Video Converter"):
        gr.Markdown("""
        # <center>πŸŽ₯ Video Converter</center>
        """)
        video_format = ['webm', 'wmv', 'mkv', 'mp4', 'avi', 'mpeg', 'vob', 'flv']
        audio_format = ['mp3', 'wav', 'ogg', 'flac', 'aac']
        with gr.Row():
            with gr.Column():
                input_video = gr.Video(label="Upload a Video")
            with gr.Column():
                with gr.Row():
                    format_select = gr.Radio(["Video", "Audio"], label="Select Format", default="Video")
                with gr.Row():
                    format = gr.Radio(video_format, label="Select Format", interactive=False)
        with gr.Row():
            with gr.Column():
                pass
            with gr.Column():
                convert_btn = gr.Button("Convert Video", interactive=False, elem_id="convert_btn")
            with gr.Column():
                pass
        with gr.Row():
            output = gr.File(label="Output File", interactive=False)
        status = gr.Textbox(label="Status", interactive=False)
        format_select.change(lambda x: gr.Radio.update(choices=video_format if x == "Video" else audio_format, interactive=True), inputs=[format_select], outputs=[format])
        format.change(lambda x: gr.Button.update(interactive=True), None, outputs=[convert_btn])
        convert_btn.click(convert_video, inputs=[input_video, format], outputs=[output, status])
        
    with gr.Tab("Video Watermark Remover"):
        gr.Markdown("""
        # <center>πŸŽ₯ Video Watermark Remover</center>
        """)
        with gr.Row():
            with gr.Column():
                input_video = gr.Video(label="Upload a Video")
            with gr.Column():
                mask = gr.Image(label="Create a mask for the image", tool="sketch", type="pil", interactive=False)
        with gr.Row():
            with gr.Column():
                pass
            with gr.Column():
                remove_btn = gr.Button("Remove Watermark", interactive=False, elem_id="remove_btn")
            with gr.Column():
                pass
        
        with gr.Row():
            output_video = gr.File(label="Output Video", interactive=False)
        input_video.change(convert_video_to_frames, inputs=[input_video], outputs=[mask, remove_btn])
        remove_btn.click(remove_video_watermark, inputs=[mask], outputs=[output_video, remove_btn])

demo.launch(show_api=False, share=True)