Undress-AI / app.py
nsfwalex's picture
Update app.py
f0978c5 verified
raw
history blame
2.67 kB
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():
# Default values
bg_color = 'rgb(17, 24, 39)'
width = 'auto'
height = '100%'
# Function to update the interface based on the URL parameters
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...") # Temporary placeholder
demo.load(update_interface)
return demo
demo = create_interface()
with gr.Blocks() as outer_demo:
outer_demo.mount(demo)
demo.launch()