Spaces:
Build error
Build error
| import streamlit as st | |
| from PIL import Image, ImageEnhance, ImageFilter | |
| import numpy as np | |
| import io | |
| import cv2 | |
| from transformers import BlipProcessor, BlipForConditionalGeneration | |
| # Load models for AI enhancements | |
| processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base") | |
| model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base") | |
| # Function to enhance image quality using PIL | |
| def enhance_image(image, enhance_type, factor): | |
| enhancer = None | |
| if enhance_type == 'Brightness': | |
| enhancer = ImageEnhance.Brightness(image) | |
| elif enhance_type == 'Contrast': | |
| enhancer = ImageEnhance.Contrast(image) | |
| elif enhance_type == 'Sharpness': | |
| enhancer = ImageEnhance.Sharpness(image) | |
| elif enhance_type == 'Color': | |
| enhancer = ImageEnhance.Color(image) | |
| if enhancer: | |
| return enhancer.enhance(factor) | |
| return image | |
| # Function for applying filters (Grayscale, etc.) | |
| def apply_filter(image, filter_type): | |
| if filter_type == "Grayscale": | |
| return image.convert("L") | |
| elif filter_type == "Blur": | |
| return image.filter(ImageFilter.GaussianBlur(radius=5)) | |
| return image | |
| # Function to remove background (using a simple model or API) | |
| def remove_background(image): | |
| # Here you can integrate an API for background removal, e.g., remove.bg or Hugging Face models. | |
| # For now, it's a placeholder. | |
| return image # Placeholder for background removal | |
| # Main function | |
| def main(): | |
| st.title("Advanced Image Editor") | |
| st.sidebar.title("Image Editor Tools") | |
| uploaded_file = st.sidebar.file_uploader("Upload Image", type=["jpg", "png", "jpeg"]) | |
| if uploaded_file is not None: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption="Uploaded Image", use_column_width=True) | |
| st.sidebar.subheader("Enhance Image") | |
| enhancement_type = st.sidebar.selectbox("Enhancement Type", ["Brightness", "Contrast", "Sharpness", "Color"]) | |
| enhancement_factor = st.sidebar.slider("Enhancement Factor", 0.5, 2.0, 1.0, 0.1) | |
| enhanced_image = enhance_image(image, enhancement_type, enhancement_factor) | |
| st.sidebar.subheader("Apply Filter") | |
| filter_type = st.sidebar.selectbox("Select Filter", ["None", "Grayscale", "Blur"]) | |
| filtered_image = apply_filter(enhanced_image, filter_type) | |
| st.image(filtered_image, caption="Processed Image", use_column_width=True) | |
| # Background Removal | |
| remove_bg = st.sidebar.checkbox("Remove Background") | |
| if remove_bg: | |
| filtered_image = remove_background(filtered_image) | |
| st.image(filtered_image, caption="Background Removed Image", use_column_width=True) | |
| # Download Button | |
| buf = io.BytesIO() | |
| filtered_image.save(buf, format="PNG") | |
| byte_im = buf.getvalue() | |
| st.sidebar.download_button("Download Edited Image", byte_im, "edited_image.png", "image/png") | |
| if __name__ == "__main__": | |
| main() | |