File size: 2,373 Bytes
d948530
271a7bc
 
 
 
 
 
 
 
c2eddce
07d05ef
c2eddce
 
b4d6bb3
 
 
 
c2eddce
b4d6bb3
 
c2eddce
 
 
 
 
 
 
 
 
fcaff26
92f472f
c4bf23b
92f472f
c2eddce
4da45b0
c4bf23b
4da45b0
60efdc5
c2eddce
1d4176a
 
d948530
1d4176a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c2eddce
1d4176a
 
 
 
 
c2eddce
1d4176a
 
 
509b60d
1d4176a
 
f0978c5
1d4176a
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
import time
import subprocess
import os
import argparse
import cv2
import sys
from PIL import Image
import torch
import gradio as gr

TESTdevice = "cpu"
index = 1

def mainTest(inputpath, outpath):
    watermark = deep_nude_process(inputpath)
    watermark1 = cv2.cvtColor(watermark, cv2.COLOR_BGRA2RGBA)
    return watermark1

def deep_nude_process(inputpath):
    dress = cv2.imread(inputpath)
    h = dress.shape[0]
    w = dress.shape[1]
    dress = cv2.resize(dress, (512, 512), interpolation=cv2.INTER_CUBIC)
    watermark = process(dress)
    watermark = cv2.resize(watermark, (w, h), interpolation=cv2.INTER_CUBIC)
    return watermark

def inference(img):
    global index
    bgra = cv2.cvtColor(img, cv2.COLOR_RGBA2BGRA)
    inputpath = f"input_{index}.jpg"
    cv2.imwrite(inputpath, bgra)
    outputpath = f"out_{index}.jpg"
    index += 1
    print(time.strftime("START!!!!!!!!! %Y-%m-%d %H:%M:%S", time.localtime()))
    output = mainTest(inputpath, outputpath)
    print(time.strftime("Finish!!!!!!!!! %Y-%m-%d %H:%M:%S", time.localtime()))
    return output

def update_status(img):
    return inference(img), gr.update(value="Processing complete!")

def init_interface(request: gr.Request):
    query_params = request.query_params
    bg_color = query_params.get('bg_color', 'rgb(17, 24, 39)')
    image_height = query_params.get('image_height', '90%')
    css = f"""
    body {{
        background-color: {bg_color};
        color: white;
        overflow: hidden;
    }}
    .gradio-container {{
        background-color: {bg_color} !important;
        border: none !important;
    }}
    .image-container {{
        height: {image_height} !important;
        display: flex;
        align-items: center;
        justify-content: center;
    }}
    .image-container img {{
        width: auto !important;
        height: 100% !important;
    }}
    footer {{
        display: none !important;
    }}
    """

    with gr.Blocks(css=css) as demo:
        with gr.Column():
            with gr.Row(elem_id="image-container"):
                image_input = gr.Image(type="numpy", label="Upload Image")
            process_button = gr.Button("Process Image")

        process_button.click(update_status, inputs=image_input, outputs=[image_input])
    
    return demo

with gr.Blocks() as outer_demo:
    outer_demo.load(init_interface)

outer_demo.launch()