File size: 1,801 Bytes
c74f664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182a35c
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
import gradio as gr
import os
import tempfile
from PIL import Image
import time
import torch
temp_dir=tempfile.gettempdir()

def process_images(condition_images, input_images):
    start = time.time()
    output_images = []
    for img in input_images:
        if img is not None:
            output_images.append(img) 
        else:
            gr.Error("Please upload at least one  image")
    pth_path = os.path.join(temp_dir, "output.pth")
    temp_data = {"test": "test"}
    PTH_data={"test":"test"}
    torch.save(PTH_data,pth_path)
    end=time.time()
    process_time = f"{end-start:.2f} s"
    return output_images, pth_path, process_time

with gr.Blocks() as demo:
        gr.Markdown("Title")
        with gr.Row():
            with gr.Group():
                condition_inputs = gr.Files(label="Condition Img", file_types=[".png", ".jpg", ".jpeg"], type='filepath')
                input_images = gr.Files(label="Input Img", file_types=[".png", ".jpg", ".jpeg"], type='filepath')
            with gr.Group():
                output_gallery = gr.Gallery(label="Output Img", show_label=True, columns=2)
                pth_output = gr.File(label="Download PTH ")
                process_time = gr.Textbox(label="Processing Time",  type="text",interactive=False)
        button1 = gr.Button("Upload Images")
        def func1(condition_files, input_files):
            condition_imgs = [Image.open(f) for f in condition_files] if condition_files else []
            input_imgs = [Image.open(f) for f in input_files] if input_files else []
            return process_images(condition_imgs, input_imgs)
        button1.click(
            fn=func1,
            inputs=[condition_inputs, input_images],
            outputs=[output_gallery, pth_output, process_time]
        )

    
demo.launch()