Update app.py
Browse files
app.py
CHANGED
@@ -109,37 +109,39 @@ def generate_image(prompt):
|
|
109 |
return Image.open(io.BytesIO(image_bytes))
|
110 |
return None
|
111 |
|
112 |
-
def
|
113 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
st.session_state["image"] = None
|
118 |
-
if "prompt" not in st.session_state:
|
119 |
-
st.session_state["prompt"] = ""
|
120 |
|
121 |
# Input field for the prompt, tied to session state
|
122 |
-
|
123 |
"Enter a prompt for image generation:",
|
124 |
-
value=st.session_state
|
125 |
key="prompt_input"
|
126 |
)
|
127 |
|
128 |
-
# Generate Image button
|
129 |
-
|
130 |
-
if prompt:
|
131 |
-
# Save prompt to session state
|
132 |
-
st.session_state["prompt"] = prompt
|
133 |
-
# Add a spinner while generating the image
|
134 |
-
with st.spinner('Generating image...'):
|
135 |
-
image = generate_image(prompt)
|
136 |
-
if image:
|
137 |
-
st.session_state["image"] = image # Store generated image in session state
|
138 |
-
else:
|
139 |
-
st.warning("Please enter a prompt.")
|
140 |
|
141 |
# Show the image if it exists in the session state
|
142 |
-
if st.session_state
|
143 |
st.image(st.session_state["image"], caption="Generated Image")
|
144 |
|
145 |
# Download button
|
@@ -150,19 +152,15 @@ def main():
|
|
150 |
label="Download Image",
|
151 |
data=image_bytes.getvalue(),
|
152 |
file_name="generated_image.png",
|
153 |
-
mime="image/png"
|
154 |
-
key="download_button"
|
155 |
)
|
156 |
|
157 |
# Reset button
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
# Clear UI by resetting query params
|
165 |
-
st.query_params = {}
|
166 |
|
167 |
#------------------------------------------------------------------------
|
168 |
# Main Guard
|
|
|
109 |
return Image.open(io.BytesIO(image_bytes))
|
110 |
return None
|
111 |
|
112 |
+
def generate_image_callback():
|
113 |
+
prompt = st.session_state.get("prompt_input", "")
|
114 |
+
if prompt:
|
115 |
+
st.session_state["prompt"] = prompt
|
116 |
+
# Add a spinner while generating the image
|
117 |
+
with st.spinner('Generating image...'):
|
118 |
+
image = generate_image(prompt)
|
119 |
+
if image:
|
120 |
+
st.session_state["image"] = image
|
121 |
+
else:
|
122 |
+
st.warning("Please enter a prompt.")
|
123 |
+
|
124 |
+
def reset_callback():
|
125 |
+
# Clear session state variables
|
126 |
+
st.session_state["prompt"] = ""
|
127 |
+
st.session_state["prompt_input"] = ""
|
128 |
+
st.session_state["image"] = None
|
129 |
|
130 |
+
def main():
|
131 |
+
st.title("MiImage Creator | Image Generation")
|
|
|
|
|
|
|
132 |
|
133 |
# Input field for the prompt, tied to session state
|
134 |
+
st.text_input(
|
135 |
"Enter a prompt for image generation:",
|
136 |
+
value=st.session_state.get("prompt_input", ""),
|
137 |
key="prompt_input"
|
138 |
)
|
139 |
|
140 |
+
# Generate Image button with callback
|
141 |
+
st.button("Generate Image", on_click=generate_image_callback)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
# Show the image if it exists in the session state
|
144 |
+
if st.session_state.get("image"):
|
145 |
st.image(st.session_state["image"], caption="Generated Image")
|
146 |
|
147 |
# Download button
|
|
|
152 |
label="Download Image",
|
153 |
data=image_bytes.getvalue(),
|
154 |
file_name="generated_image.png",
|
155 |
+
mime="image/png"
|
|
|
156 |
)
|
157 |
|
158 |
# Reset button
|
159 |
+
st.button("Reset", on_click=reset_callback)
|
160 |
+
|
161 |
+
# If no image but prompt exists, show reset button to clear prompt
|
162 |
+
elif st.session_state.get("prompt_input"):
|
163 |
+
st.button("Reset", on_click=reset_callback)
|
|
|
|
|
|
|
164 |
|
165 |
#------------------------------------------------------------------------
|
166 |
# Main Guard
|