import collections from numpy.core.defchararray import lower import streamlit as st import numpy as np import pandas as pd import zipfile import io import os from streamlit.elements.image import image_to_url import gzip import requests from io import BytesIO from PIL import Image, ImageDraw import base64 import datetime import random, os, time import threading #List of files to use for each image object, 40 images total files = [None]*40 def randomFile(ix): path = r"exampleImages" dd = list(os.listdir(path)) random.shuffle(dd) #Parse through each file in directory for file in dd: #If file is not in files list, use it for next image if file not in files: files[ix] = file return "exampleImages/"+file def gen(_p): if(_p is not False): st.session_state.prompt = _p st.session_state.page = 0 return _1 = ["A modern ","A post-modern ","A classical ", "A contemporary ", "A minimalist "] _2 = ["museum architecture","home architecture","interior design"] _3 = [""," in the style of I.M. Pei"," in the style of Frank Gehry"," in the style of John Lautner"," in the style of Frank Lloyd Wright"] _4 = [" photograph",", watercolor painting",", oil painting", ", digital art"] st.session_state.prompt = str(random.choice(_1)+random.choice(_2)+random.choice(_3)+random.choice(_4)) st.session_state.page = 0 def app(): #Array of image objects images = [] for i in range(30): files.append( randomFile(i) ) placeholder = st.empty() with placeholder.container(): columns = [col1, col2, col3, col4, col5] = st.columns(5) ix = 0 for column in columns: with column: for i in range(2): images.append( st.empty() ) with images[ix].container(): st.image("exampleImages/"+files[ix],width=None) ix += 1 st.title('AI-Generated Architecture') prompt = st.text_input(label="Describe the architecture you want to see",value="") c1,c2,c3 = st.columns(3) with c1: if st.button("Generate Architecture"): if prompt: gen(prompt) elif prompt == "": gen(False) return with c2: if st.button("Random Prompt"): gen(False) return st.text("") columns2 = [col1, col2, col3, col4, col5] = st.columns(5) for column in columns2: with column: for i in range(4): images.append( st.empty() ) with images[ix].container(): st.image("exampleImages/"+files[ix]) ix += 1 last = -1 while(True): ch = random.randrange(30) with images[ch].container(): st.image(randomFile(ch)) time.sleep(0.33) #download_thread = threading.Thread(target=background, name="Downloader") #download_thread.start()