Spaces:
Runtime error
Runtime error
| from PIL import Image | |
| from utils import pipe_image | |
| import streamlit as st | |
| from streamlit_drawable_canvas import st_canvas | |
| import gettext | |
| import numpy as np | |
| _ = gettext.gettext | |
| #language = st.selectbox(_('Choose your language'), ['en', 'it']) | |
| # try: | |
| # localizator = gettext.translation('base', localedir='locales', languages=[language]) | |
| # localizator.install() | |
| # _ = localizator.gettext | |
| # except: | |
| # pass | |
| st.markdown("<h1 style='text-align:center;'> Magic Board - CPU version</h1>", unsafe_allow_html=True) | |
| # Specify canvas parameters in application | |
| drawing_mode = st.sidebar.selectbox( | |
| _("Drawing tool:"), ("freedraw", "line", "rect", "circle", "transform") | |
| ) | |
| stroke_width = st.sidebar.slider(_("Stroke width: "), 1, 25, 3) | |
| stroke_color = st.sidebar.color_picker(_("Stroke color hex: ")) | |
| bg_color = st.sidebar.color_picker(_("Background color hex: "), "#eee") | |
| bg_image = st.sidebar.file_uploader(_("Background image:"), type=["png", "jpg"]) | |
| strength = st.sidebar.slider(_("Strength value: "), 0.0, 1.0, 0.1) | |
| # Create a canvas component | |
| canvas_result = st_canvas( | |
| fill_color="rgba(255, 165, 0, 0.3)", # Fixed fill color with some opacity | |
| stroke_width=stroke_width, | |
| stroke_color=stroke_color, | |
| background_color=bg_color, | |
| background_image=Image.open(bg_image) if bg_image else None, | |
| update_streamlit=True, | |
| height=450, | |
| width=680, | |
| drawing_mode=drawing_mode, | |
| #point_display_radius=point_display_radius if drawing_mode == 'point' else 0, | |
| key="canvas", | |
| ) | |
| prompt = st.text_input(_('Prompt to generate your cool image'), | |
| placeholder=_('write you text here to improve the image with your favourite style')) | |
| if st.button('Submit'): | |
| img_size = (512,512) | |
| if bg_image: | |
| img_back=Image.open(bg_image).convert('RGB').resize(img_size) | |
| comp_img = img_back | |
| elif np.any(canvas_result.image_data): | |
| img_draw=Image.fromarray(canvas_result.image_data).convert('RGB').resize(img_size) | |
| comp_img = img_draw | |
| elif bg_image and np.any(canvas_result.image_data): | |
| img_back=Image.open(bg_image).convert('RGB').resize(img_size) | |
| img_draw=Image.fromarray(canvas_result.image_data).convert('RGB').resize(img_size) | |
| comp_img = Image.new("RGB", img_size) | |
| comp_img = Image.blend(img_draw, img_back, alpha=0.5) | |
| else: | |
| st.write("Upload an image or draw something") | |
| if prompt is None: | |
| st.write("No prompt, no magic! :(") | |
| with st.spinner('Wait for it... ~ 5 minutes '): | |
| images = pipe_image(prompt=prompt, | |
| init_image=comp_img, | |
| strength=strength) | |
| if images["nsfw_content_detected"]: | |
| st.write("NSFW content detected, retry with another prompt or image") | |
| else: | |
| st.image(images.images) | |
| st.warning("If you don't see any image could be the NSFW content checker or a Memory error. " | |
| "Please, re-run the submission and modify the prompt. " | |
| "Taking care that, each word in the prompt result in much more token for the model" | |
| "which means much more memory usage.") |