|
import gradio as gr |
|
import cv2 |
|
import time |
|
from urllib.parse import parse_qs, urlparse |
|
|
|
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 get_css(bg_color, width, height): |
|
return f""" |
|
body {{ |
|
background-color: {bg_color}; |
|
color: white; |
|
overflow: hidden; /* Prevent scrolling */ |
|
}} |
|
.gradio-container {{ |
|
background-color: {bg_color} !important; |
|
border: none !important; |
|
width: {width}px !important; /* Set the width */ |
|
height: {height}px !important; /* Set the height */ |
|
max-width: 100%; /* Ensure it does not exceed the container's width */ |
|
max-height: 100%; /* Ensure it does not exceed the container's height */ |
|
overflow: hidden; /* Prevent internal scrolling */ |
|
}} |
|
footer {{display: none !important;}} /* Hide footer */ |
|
""" |
|
|
|
def update_status(img): |
|
return inference(img), gr.update(value="Processing complete!") |
|
|
|
def create_interface(): |
|
|
|
bg_color = 'rgb(17, 24, 39)' |
|
width = 'auto' |
|
height = '100%' |
|
|
|
|
|
def update_interface(request: gr.Request): |
|
nonlocal bg_color, width, height |
|
query_params = parse_qs(urlparse(request.url).query) |
|
bg_color = query_params.get('bg_color', [bg_color])[0] |
|
width = int(query_params.get('width', [width])[0]) |
|
height = int(query_params.get('height', [height])[0]) |
|
css = get_css(bg_color, width, height) |
|
return gr.Blocks(css=css) |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("Loading...") |
|
|
|
demo.load(update_interface) |
|
|
|
return demo |
|
|
|
demo = create_interface() |
|
|
|
with gr.Blocks() as outer_demo: |
|
outer_demo.mount(demo) |
|
|
|
demo.launch() |
|
|