video / app.py
meraj12's picture
Update app.py
af7ddb8 verified
import streamlit as st
from rembg import remove, new_session
from PIL import Image, ImageFilter
import io
# Load high-quality model
session = new_session("u2net")
# Streamlit App Configuration
st.set_page_config(page_title="Background Remover & Changer", layout="wide")
st.title("Background Remover & Changer")
# Upload multiple images
uploaded_files = st.file_uploader("Upload Images (Multiple Allowed)", type=["png", "jpg", "jpeg"], accept_multiple_files=True)
# Upload custom background
bg_image = st.file_uploader("Upload Custom Background (Optional)", type=["png", "jpg", "jpeg"])
# Process images
if uploaded_files:
st.subheader("Processed Images")
for uploaded_file in uploaded_files:
image = Image.open(uploaded_file)
image = image.convert("RGBA")
# Remove background using high-quality model
removed_bg = remove(image, session=session)
# Apply smoothing to improve edges
removed_bg = removed_bg.filter(ImageFilter.SMOOTH)
if bg_image:
bg = Image.open(bg_image).convert("RGBA")
bg = bg.resize(removed_bg.size)
final_image = Image.alpha_composite(bg, removed_bg)
else:
final_image = removed_bg
st.image(final_image, caption="Processed Image", use_column_width=True)
# Download button
img_bytes = io.BytesIO()
final_image.save(img_bytes, format='PNG')
st.download_button(label="Download Image", data=img_bytes.getvalue(), file_name="processed_image.png", mime="image/png")
st.write("Upload images to remove background and optionally change it.")