from run import process 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 title = "Undress AI" description = "⛔ Input photos of people, similar to the test picture at the bottom, and undress pictures will be produced. You may have to wait 30 seconds for a picture. 🔞 Do not upload personal photos 🔞 There is a queue system. According to the logic of first come, first served, only one picture will be made at a time. Must be able to at least see the outline of a human body ⛔" examples = [ ['input.png', 'Test'], ['input.jpg', 'Test'], ] css = """ body { background-color: rgb(17, 24, 39); color: white; } .gradio-container { background-color: rgb(17, 24, 39) !important; border: none !important; } footer {display: none !important;} """ with gr.Blocks(css=css) as demo: with gr.Row(): with gr.Column(scale=2): # Adjust scale for proper sizing image_input = gr.Image(type="numpy", label="Upload Image") process_button = gr.Button("Process Image") status = gr.Markdown(value="") with gr.Column(scale=1): # Adjust scale for proper sizing gr.Markdown("### Examples") example_1 = gr.Examples(examples=[examples[0]], inputs=image_input, examples_per_page=1) example_2 = gr.Examples(examples=[examples[1]], inputs=image_input, examples_per_page=1) def update_status(img): status.update(value="Processing... Please wait.") processed_img = inference(img) status.update(value="Processing complete!") return processed_img process_button.click(update_status, inputs=image_input, outputs=image_input) demo.launch()