File size: 2,408 Bytes
40e52db
 
 
88e4b1c
 
 
 
 
a87a1d9
 
 
 
88e4b1c
 
 
 
 
6d9b79c
88e4b1c
6d9b79c
88e4b1c
6d9b79c
 
 
88e4b1c
 
 
6d9b79c
 
88e4b1c
 
 
a87a1d9
 
 
 
 
 
 
 
 
 
 
 
a6626fd
88e4b1c
a6626fd
b024c7c
40e52db
 
 
6477da7
88e4b1c
a0b93f8
9306cd3
f3f13cf
a87a1d9
 
0ce80a6
 
 
8d533d0
a87a1d9
 
 
 
 
 
 
 
 
 
 
 
99053e9
a87a1d9
40e52db
 
 
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
import gradio as gr
import os

css = """
p {
    font-size: 120%;
}

li {
    font-size: 110%;
}

.container {
    height: initial;
}

video {
    max-height: 400px;
}

.image-container {
    width: 200px; 
    max-height: 300px;
    margin: auto;
}

img {
    width: auto;
    height: auto;
}
"""

# Optional CSS stuff for the header example image:
#example {
#    width: 80%;
#    height: 60%
#}

#example img {
#    width: 80%;
#    height: 80%
#}


a = os.path.join(os.path.dirname(__file__), "files/barkley_balloon.mp4")
b = os.path.join(os.path.dirname(__file__), "files/eiffel_tower.mp4")
w1 = os.path.join(os.path.dirname(__file__), "files/AI_generated.png")

def generate_video(original_video, watermark):
    return gr.Video(original_video, watermark=watermark)

# Use RGBA image mode to preserve transparency for png images.
with gr.Blocks(css=css) as demo:
with gr.Row():
    with gr.Column():
            gr.Markdown("# Centurion Watermarking")
            gr.Markdown("Watermarks can be **visible** or **invisible**.")
            gr.Markdown("""They can provide information directly, or provide a link for more information.  
                           - Visible watermarks are useful to disclose when content is AI-generated.  
                           - Invisible watermarks can mark content as authentic.
                           - ...And vice versa! There are many possibilities for what watermarks can provide.""")
            with gr.Column():
            with gr.Column():
                gr.Image('files/watermark_example.png', visible=False)
            with gr.Column():
                gr.Image('files/watermark_example.png', show_label=False, show_download_button=False, elem_id='example', container=False, interactive=False)
                gr.Code('import gradio as gr\n\nwatermarked_video = gr.Video(original_video_file, watermark=watermark_file)', lines=3)
            with gr.Column():
                gr.Image('files/watermark_example.png', visible=False)
    with gr.Row():
        with gr.Column():
            gr.Markdown("**Inputs**: Video and watermark file")
        with gr.Column():
            gr.Markdown("**Output**: Watermarked video")
    gr.Interface(generate_video, [gr.Video(), gr.Image(type='filepath', image_mode=None)], gr.Video(),
                            examples=[[a, w1], [b, w2], [a, w3], [b, w4]])

if __name__ == "__main__":
    demo.launch()