File size: 3,360 Bytes
efbc792 a1322b1 acb8c94 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 acb8c94 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 efbc792 a1322b1 acb8c94 a1322b1 |
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 |
import streamlit as st
import requests
import tempfile
# Set page config
st.set_page_config(page_title='Image Generation', page_icon=':camera:', layout='wide')
st.title('Image Generation')
# Initialize session state
if 'dynamic_prompt' not in st.session_state:
st.session_state['dynamic_prompt'] = ""
if 'image_url' not in st.session_state:
st.session_state['image_url'] = ""
if 'image_generated' not in st.session_state:
st.session_state['image_generated'] = False
# Define your toppings options
toppings_options = ["Mushroom", "Tomatoes", "Onion", "Arugula", "Bacon", "Basil", "Broccoli", "Cheese", "Chicken", "Corn", "Ham", "Olives", "Pepperoni", "Peppers", "Pineapple"]
# Main content
with st.form(key='prompt_form'):
# Image generation input
size = st.selectbox('Select size of the images', ('256x256', '512x512', '1024x1024'))
num_images = st.selectbox('Select Number of Images to be Generated', ('1', '2', '3', '4', '5'))
# Pizza order input
pizza_names = ["Crispy Chicken", "Chicken Pesto", "..."] # Add the rest of the pizza names
name = st.selectbox("Name of Pizza", pizza_names)
size_pizza = st.selectbox("Size of Pizza", ["Small", "Medium", "Large", "Extra Large"])
toppings = st.multiselect("Toppings", toppings_options, default=["Mushroom", "Tomatoes", "Onion"])
prompt = st.text_input(label='Enter additional Descriptions ')
bg_color_options = ['White', 'Black', 'Light Blue', 'Light Green', 'Light Yellow', 'Light Pink']
bg_color = st.selectbox('Select Background Color', bg_color_options)
orientation = ["Top View", "Side View", "Lateral View"]
orientation_checkbox = st.multiselect("Orientation", orientation, default=["Top View"])
generate_prompt_button = st.form_submit_button(label='Generate Prompt')
# Generate the dynamic prompt
if generate_prompt_button:
st.session_state['dynamic_prompt'] = f"Imagine you are a marketer who wants to post an image on social media for a {size_pizza} {name} Pizza with the following toppings: {', '.join(toppings)}. I want to generate an image for the given description in {', '.join(orientation_checkbox)} with a background color of {bg_color}."
st.write("Prompt:", st.session_state['dynamic_prompt'])
# Display the button to generate the image
with st.form(key='image_form'):
generate_image_button = st.form_submit_button(label='Generate Image')
if generate_image_button and st.session_state['dynamic_prompt']:
# Here, integrate with your custom model to generate the image
# For now, using a placeholder URL
st.session_state['image_url'] = "url_of_your_generated_image"
st.session_state['image_generated'] = True
# Display the generated image
if st.session_state['image_url']:
st.image(st.session_state['image_url'], caption="Generated Image", use_column_width=True)
# Download button for the generated image
if st.session_state['image_generated']:
with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp_file:
response = requests.get(st.session_state['image_url'])
with open(tmp_file.name, "wb") as f:
f.write(response.content) # Save the image data
st.download_button(
label="Download Image",
data=tmp_file,
file_name="generated_image.png",
mime="image/png"
)
|