Spaces:
Runtime error
Runtime error
import streamlit as st | |
from PIL import Image | |
import cv2 | |
from texture_transfer import create_image_tile, create_layover, create_image_cutout, paste_image | |
from create_print_layover import create_image_with_feather_tile, control_texture | |
st.title("Texture Correction App") | |
if 'clicked' not in st.session_state: | |
st.session_state.clicked = False | |
def click_button(): | |
st.session_state.clicked = True | |
with st.sidebar: | |
st.text("Play around this values") | |
choice = st.selectbox( | |
'what are you looking for?', | |
("Direct Texture", "Feathered Texture", "Direction Print"), | |
index=None, | |
placeholder="please choose an option" | |
) | |
overlap_width = st.slider("Overlap Width", min_value=0, max_value=100, step=1, value=50) | |
what_overlap = st.selectbox( | |
'how you want to overlap?', | |
('vertical', 'horizontal'), | |
index=None, | |
placeholder="please choose an option" | |
) | |
opacity = st.slider("Control opacity", min_value=0.0, max_value=1.0, value=1.0) | |
product, generated, texture_correct = st.columns(3) | |
with product: | |
st.header("Input product texture patch") | |
product_image = st.file_uploader("Patch of the Garment(Cut out an area from the garment)", | |
type=["png", "jpg", "jpeg"]) | |
if product_image: | |
st.image(product_image) | |
with generated: | |
st.header("Input generated product Image & Mask") | |
generated_image = st.file_uploader("Generated Image", type=["png", "jpg", "jpeg"]) | |
gen_image_mask = st.file_uploader("Generated Mask", type=["png", "jpg", "jpeg"]) | |
if generated_image: | |
st.image(generated_image) | |
with texture_correct: | |
st.button("Texture Correct", on_click=click_button) | |
if st.session_state.clicked: | |
with st.spinner("Texture correcting🫡..."): | |
product_image_n = Image.open(generated_image) | |
product_image_dim = product_image_n.size | |
x_dim = product_image_dim[0] | |
y_dim = product_image_dim[1] | |
if choice == "Direct Texture": | |
create_image_tile(product_image, x_dim, y_dim) | |
elif choice == "Feathered Texture": | |
create_image_with_feather_tile(product_image, x_dim, y_dim, overlap_width) | |
elif choice == "Direction Print": | |
control_texture(product_image, what_overlap, overlap_width, x_dim, y_dim) | |
color_texture_image = cv2.imread('tiled_image_2.png') | |
resized_image = cv2.resize(color_texture_image, (x_dim, y_dim)) | |
cv2.imwrite('tiled_image.png', resized_image) | |
overlay = create_layover(generated_image, 'tiled_image.png', opacity) | |
create_image_cutout('lay_over_image.png', gen_image_mask) | |
paste_image(generated_image, 'cut_out_image.png', gen_image_mask) | |
# st.image("tiled_image.png", caption="tiled_image.png") | |
# st.image("lay_over_image.png", caption="lay_over_image.png") | |
# st.image("cut_out_image.png", caption="cut_out_image.png") | |
st.image("result.png", caption="Texture Corrected Image", use_column_width=True) | |