File size: 3,381 Bytes
3908ca3
12ab8c5
 
 
 
3908ca3
 
12ab8c5
3908ca3
d0ff55a
 
 
 
 
 
3908ca3
 
 
 
 
 
 
 
 
4f60628
3908ca3
 
 
 
 
 
 
 
 
 
348d8aa
3908ca3
 
 
 
 
4f60628
3908ca3
 
 
 
 
 
 
 
 
 
 
 
 
5a0e0b9
3908ca3
 
4f60628
3908ca3
 
 
 
 
5a0e0b9
3908ca3
9c6e8b9
 
 
 
 
 
 
 
 
 
 
8435f43
9c6e8b9
 
 
 
 
3908ca3
 
aac714a
3908ca3
d0ff55a
 
 
9c6e8b9
3908ca3
 
 
 
 
 
 
 
9c6e8b9
 
3908ca3
 
 
 
 
9c6e8b9
3908ca3
 
 
 
 
 
 
9c6e8b9
 
3908ca3
 
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
import gradio as gr

import os
hf_token = os.environ.get("HF_TOKEN")

from gradio_client import Client

client = Client("https://fffiloni-gradio-api-tests.hf.space/", hf_token=hf_token)

examples = [
    "examples/image.jpg",
    "examples/audio.mp3", 
    "examples/video.mp4"
]

def api_t2i(prompt):
    result = client.predict(
		prompt,
		api_name="/text2image"
    )
    print(result)
    return result

def api_i2i(image):
    print(f"trying to send {image}")
    result = client.predict(
		image,
		api_name="/image2image"
    )
    print(result)
    return result

def api_t2a(prompt):
    result = client.predict(
		prompt,
		api_name="/text2audio"
    )
    print(result)
    return result

def api_a2a(audio):
    print(f"trying to send {audio}")
    result = client.predict(
		audio,
		api_name="/audio2audio"
    )
    print(result)
    return result

def api_t2v(prompt):
    result = client.predict(
		prompt,
		api_name="/text2video"
    )
    print(result)
    return result["video"]

def api_v2v(video):
    print(f"trying to send {video}")
    result = client.predict(
		video,
		api_name="/video2video"
    )
    print(result)
    return result["video"]

def api_t2f(prompt):
    result = client.predict(
		prompt,
		api_name="/text2files"
    )
    print(result)
    return result

def api_f2f(files):
    print(f"trying to send {files}")
    result = client.predict(
		files,
		api_name="/files2files"
    )
    print(result)
    return result

with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column():
            prompt_in = gr.Textbox(label="Prompt IN", value="testing prompt")
            image_in = gr.Image(label="Image IN", type="filepath", value=examples[0])
            audio_in = gr.Audio(label="Audio IN", type="filepath", value=examples[1])
            video_in = gr.Video(label="Video IN", value=examples[2])
            files_in = gr.File(label="Files IN", value=examples, file_count="multiple")

            with gr.Row():
                prompt_t2i_btn = gr.Button("Run text 2 image")
                prompt_i2i_btn = gr.Button("Run image 2 image")
                prompt_t2a_btn = gr.Button("Run text 2 audio")
                prompt_a2a_btn = gr.Button("Run audio 2 audio")
                prompt_t2v_btn = gr.Button("Run text 2 video")
                prompt_v2v_btn = gr.Button("Run video 2 video")
                prompt_t2f_btn = gr.Button("Run text 2 files")
                prompt_f2f_btn = gr.Button("Run files 2 files")

        with gr.Column():
            image_out = gr.Image(label="Image OUT")
            audio_out = gr.Audio(label="Audio OUT")
            video_out = gr.Video(label="Video OUT")
            files_out = gr.File(label="Files OUT", file_count="multiple")

    prompt_t2i_btn.click(fn=api_t2i, inputs=[prompt_in], outputs=[image_out])
    prompt_i2i_btn.click(fn=api_i2i, inputs=[image_in], outputs=[image_out])
    prompt_t2a_btn.click(fn=api_t2a, inputs=[prompt_in], outputs=[audio_out])
    prompt_a2a_btn.click(fn=api_a2a, inputs=[audio_in], outputs=[audio_out])
    prompt_t2v_btn.click(fn=api_t2v, inputs=[prompt_in], outputs=[video_out])
    prompt_v2v_btn.click(fn=api_v2v, inputs=[video_in], outputs=[video_out])
    prompt_t2f_btn.click(fn=api_t2f, inputs=[prompt_in], outputs=[files_out])
    prompt_f2f_btn.click(fn=api_f2f, inputs=[files_in], outputs=[files_out])

demo.queue().launch()