JustClothify / app.py
Brasd99's picture
Added logging
87653fe
raw
history blame
2.01 kB
import gradio as gr
import os
import wget
import subprocess
subprocess.call(['pip', 'install', 'git+https://github.com/facebookresearch/detectron2@main#subdirectory=projects/DensePose'])
from helpers.processor import TextureProcessor
def image_processing(person_img, model_img, request: gr.Request):
if request:
print("IP address: ", request.client.host)
return texture_processor.extract(person_img, model_img)
def load_model(current_path):
data_path = os.path.join(current_path, 'data')
if not os.path.isdir(data_path):
os.mkdir(data_path)
url = "https://raw.githubusercontent.com/facebookresearch/detectron2/main/projects/DensePose/configs/densepose_rcnn_R_50_FPN_WC1M_s1x.yaml"
wget.download(url, os.path.join(data_path, 'config.yaml'))
url = "https://dl.fbaipublicfiles.com/densepose/densepose_rcnn_R_50_FPN_WC1M_s1x/217144516/model_final_48a9d9.pkl"
wget.download(url, os.path.join(data_path, 'weights.pkl'))
url = "https://raw.githubusercontent.com/facebookresearch/detectron2/main/projects/DensePose/configs/Base-DensePose-RCNN-FPN.yaml"
wget.download(url, os.path.join(data_path, 'Base-DensePose-RCNN-FPN.yaml'))
current_path = os.getcwd()
load_model(current_path)
densepose_config = os.path.join(current_path, 'data', 'config.yaml')
densepose_weights = os.path.join(current_path, 'data', 'weights.pkl')
texture_processor = TextureProcessor(densepose_config, densepose_weights)
inputs = [
gr.inputs.Image(label="Person Image", type='numpy'),
gr.inputs.Image(label="Model Image (with clothes)", type='numpy')
]
outputs = gr.outputs.Image(label="Result Image", type='numpy')
title = "JustClothify"
description = "Upload an image of a person and an image of a model with clothes, the system will generate an image of a person wearing these clothes."
gr.Interface(
fn=image_processing,
inputs=inputs,
outputs=outputs,
theme='soft',
title=title,
description=description).launch()