Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import cloudinary | |
| import cloudinary.uploader | |
| from cloudinary.utils import cloudinary_url | |
| import time # Import time for simulating progress | |
| # Cloudinary Configuration | |
| cloudinary.config( | |
| cloud_name='detwd9o8x', # Replace with your Cloudinary cloud name | |
| api_key='439456689456765', # Replace with your API key | |
| api_secret='tk4Ho9pJzTaTbtIcJli6JlXQkCA', # Replace with your API secret | |
| secure=True | |
| ) | |
| # Streamlit App | |
| st.title("Generative Background Replacement with Cloudinary") | |
| st.write("Upload an image to transform the background using Cloudinary's generative AI.") | |
| # Image Upload | |
| uploaded_file = st.file_uploader("Upload an image", type=["jpg", "png", "jpeg"]) | |
| # Prompt Input and Automatic Transformation on Enter | |
| if uploaded_file: | |
| st.success("Image uploaded successfully!") | |
| # Prompt Input appears only after successful upload | |
| prompt = st.text_input("Enter a background replacement prompt", value="", key="prompt") | |
| if prompt: | |
| # Save uploaded image to Cloudinary | |
| with st.spinner("Uploading image to Cloudinary..."): | |
| response = cloudinary.uploader.upload(uploaded_file, folder="streamlit_app") | |
| public_id = response["public_id"] | |
| # Apply Generative Background Replace Transformation | |
| st.spinner("Applying background replacement...") | |
| progress_bar = st.progress(0) # Initialize progress bar | |
| for i in range(100): | |
| time.sleep(0.05) # Simulate a long-running process | |
| progress_bar.progress(i + 1) # Update progress bar | |
| # Once the progress is complete, perform the transformation | |
| transformed_url, options = cloudinary_url( | |
| public_id, | |
| effect=f"gen_background_replace:prompt_{prompt}" | |
| ) | |
| st.success("Transformation complete!") | |
| # Display Original and Transformed Images Side-by-Side | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| st.image(uploaded_file, caption="Original Image - Before", use_column_width=True) | |
| with col2: | |
| st.image(transformed_url, caption="Transformed Image - After", use_column_width=True) | |
| # Provide a Download Link | |
| st.write(f"[Download Transformed Image]({transformed_url})") | |