Spaces:
Sleeping
Sleeping
File size: 5,311 Bytes
5c45309 |
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
import gradio as gr
from gen_tab import create_gen_tab
from train_tab import create_train_tab
from virtualtryon_tab import create_virtualtryon_tab
from faceswap_tab import create_faceswap_tab
from ipadapter_tab import create_ipadaptor_tab
from relighting_tab import gen_relighting_tab
from controlnetmockup_tab import create_cnmu_tab
#from mail_tab import create_mail_tab
from PIL import Image
from pattern_ip_adapter import sam_zest_tab
from dotenv import load_dotenv, find_dotenv
import os
from src.utils import convert_to_pil
from datetime import datetime
gallery_list=[]
# Ensure the base folder for storing images exists
base_dir = "gallery_images"
os.makedirs(base_dir, exist_ok=True)
# Function to convert and save the image to a dated folder, and update the gallery
def update_gallery_local(img):
if img is None:
return gallery_list
print(type(img), len(gallery_list))
try:
# Convert the image to PIL if needed
img = convert_to_pil(img)
except:
print("Error with converting to PIL")
print(type(img),img)
return gallery_list
# Get the current date and create a folder for it
current_date = datetime.now().strftime("%Y-%m-%d")
date_folder = os.path.join(base_dir, current_date)
os.makedirs(date_folder, exist_ok=True)
# Generate a unique filename for the image
img_filename = f"generated_image_{len(gallery_list)}.png"
img_path = os.path.join(date_folder, img_filename)
# Save the image to the date folder
img.save(img_path)
# Add the file path to the gallery list
gallery_list.append(img_path)
# Return the updated gallery list with image paths
return gallery_list
def update_gallery(img):
try:
print(type(img),print(len(gallery_list)))
img=convert_to_pil(img)
gallery_list.append(img)
except:
print("Error with saving image to gallery")
#img=Image.open(img)
#gallery_list.append(img)
return gallery_list
theme= gr.themes.Soft(
primary_hue=gr.themes.colors.emerald,
secondary_hue=gr.themes.colors.green)
css = """
.gradio-container img {
display: block;
width: 100%;
height: auto;
object-fit: cover;
border-radius: 10px;
}
.gradio-container p {
margin: 0;
font-size: 16px;
font-weight: bold;
}
.gen-btn {
background-color: green;
color: white;
}
.gradio-container .gr-button {
width: 100%;
background-color: green;
border: 1px solid #ddd;
padding: 10px;
border-radius: 10px;
}
.output_image {
display: block;
margin-left: auto;
margin-right: auto;
width: 100%;
height: auto;
}
.gradio-container .gr-button:hover {
background-color: #f0f0f0;
}
"""
_ = load_dotenv(find_dotenv())
with gr.Blocks(theme=theme,css=css) as demo:
with gr.Tabs() as tabs:
gen_out,move_to_vto,move_to_ip,move_to_cnmk,move_to_relight = create_gen_tab()
#input_ip,output_ip,move_to_cnmk_fm_ip,move_to_relight_fm_ip=create_ipadaptor_tab()
input_vto,output_vto,move_to_cnmk_fm_try,move_to_relight_fm_try=create_virtualtryon_tab()
#input_zest,output_zest=sam_zest_tab()
#input_fs,output_fs=create_faceswap_tab()
input_cnmu,output_cnmu,move_to_relight_fm_try=create_cnmu_tab()
input_rl,output_rl=gen_relighting_tab()
#create_tinput_iprain_tab()
#Move to Buttons
move_to_vto.click(lambda x:x, inputs=gen_out,outputs=input_vto)
move_to_cnmk.click(lambda x:x,inputs=gen_out,outputs=input_cnmu)
#move_to_fs.click(lambda x:x, inputs=gen_out,outputs=input_fs)
#move_to_ip.click(lambda x:x, inputs=gen_out,outputs=input_ip)
move_to_relight.click(lambda x:x, inputs=gen_out,outputs=input_rl)
#Move to Buttons from Ip Adapter
#move_to_cnmk_fm_ip.click(lambda x:x,inputs=output_ip,outputs=input_cnmu)
#move_to_relight_fm_ip.click(lambda x:x,inputs=output_ip,outputs=input_rl)
#Move to Buttons from Virtual Try On
move_to_cnmk_fm_try.click(lambda x:x,inputs=output_vto,outputs=input_cnmu)
move_to_relight_fm_try.click(lambda x:x,inputs=output_vto,outputs=input_rl)
#Move to Button From Control Net Mockup
move_to_relight_fm_try.click(lambda x:x,inputs=output_cnmu,outputs=input_rl)
#Gallery
image_gallery = gr.Gallery(label="Generated Images Gallery",type="path",elem_id="output_image")
#Gallery updates get all outputs
gen_out.change(update_gallery_local,inputs=gen_out,outputs=image_gallery)
output_vto.change(update_gallery_local,inputs=output_vto,outputs=image_gallery)
#output_fs.change(update_gallery,inputs=output_fs,outputs=image_gallery)
#output_ip.change(update_gallery_local,inputs=output_ip,outputs=image_gallery)
output_cnmu.change(update_gallery_local,inputs=output_cnmu,outputs=image_gallery)
output_rl.change(update_gallery_local,inputs=output_rl,outputs=image_gallery)
#output_zest.change(update_gallery,inputs=output_zest,outputs=image_gallery)
demo.launch(share=True,show_error=True,debug=True) #,auth=[("username", "password"),(os.getenv("APP_USER"),os.getenv("APP_PW"))])
|