Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,22 +1,48 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
-
from generator import load_model, generate_image
|
| 3 |
-
from PIL import Image
|
| 4 |
import io
|
| 5 |
|
|
|
|
| 6 |
st.set_page_config(page_title="AI Image Generator", layout="centered")
|
| 7 |
-
st.title("π¨ AI Image Generator
|
| 8 |
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
|
| 12 |
-
steps = st.slider("Quality (steps)", min_value=4, max_value=15, value=8)
|
| 13 |
-
guidance = st.slider("Prompt Accuracy (guidance scale)", min_value=0.0, max_value=10.0, value=2.5)
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
if st.button("Generate"):
|
| 16 |
with st.spinner("Generating image..."):
|
|
|
|
| 17 |
image = generate_image(pipe, prompt, steps, guidance)
|
| 18 |
-
st.image(image, caption="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
|
|
|
| 20 |
buf = io.BytesIO()
|
| 21 |
-
|
| 22 |
-
st.download_button(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
+
from generator import load_model, generate_image, upscale_image
|
|
|
|
| 3 |
import io
|
| 4 |
|
| 5 |
+
# Set Streamlit page configuration
|
| 6 |
st.set_page_config(page_title="AI Image Generator", layout="centered")
|
| 7 |
+
st.title("π¨ AI Image Generator")
|
| 8 |
|
| 9 |
+
# Load model
|
| 10 |
+
@st.cache_resource
|
| 11 |
+
def get_pipe():
|
| 12 |
+
return load_model()
|
| 13 |
|
| 14 |
+
pipe = get_pipe()
|
|
|
|
|
|
|
| 15 |
|
| 16 |
+
# Prompt input
|
| 17 |
+
prompt = st.text_input("Enter your prompt", "A scenic landscape with mountains and a river")
|
| 18 |
+
|
| 19 |
+
# Optional parameters
|
| 20 |
+
with st.expander("βοΈ Advanced Options"):
|
| 21 |
+
steps = st.slider("Inference Steps", 1, 50, 8)
|
| 22 |
+
guidance = st.slider("Guidance Scale", 1.0, 20.0, 2.5)
|
| 23 |
+
upscale = st.checkbox("π Upscale Image (2x resolution)", value=True)
|
| 24 |
+
|
| 25 |
+
# Generate button
|
| 26 |
if st.button("Generate"):
|
| 27 |
with st.spinner("Generating image..."):
|
| 28 |
+
# Generate image from prompt
|
| 29 |
image = generate_image(pipe, prompt, steps, guidance)
|
| 30 |
+
st.image(image, caption="πΌοΈ Original Image", use_column_width=True)
|
| 31 |
+
|
| 32 |
+
# Upscale if selected
|
| 33 |
+
if upscale:
|
| 34 |
+
upscaled = upscale_image(image)
|
| 35 |
+
st.image(upscaled, caption="π Upscaled Image", use_column_width=True)
|
| 36 |
+
img_to_download = upscaled
|
| 37 |
+
else:
|
| 38 |
+
img_to_download = image
|
| 39 |
|
| 40 |
+
# Prepare image for download
|
| 41 |
buf = io.BytesIO()
|
| 42 |
+
img_to_download.save(buf, format="PNG")
|
| 43 |
+
st.download_button(
|
| 44 |
+
label="π₯ Download Image",
|
| 45 |
+
data=buf.getvalue(),
|
| 46 |
+
file_name="generated_image.png",
|
| 47 |
+
mime="image/png"
|
| 48 |
+
)
|