| import gradio as gr |
| import numpy as np |
| from PIL import Image |
| from rembg import remove, new_session |
|
|
| |
| session = new_session("u2net") |
| bg_removal_kwargs = { |
| "alpha_matting": False, |
| "session": session, |
| "only_mask": False, |
| "post_process_mask": True |
| } |
|
|
| def remove_background(input_image): |
| try: |
| |
| if isinstance(input_image, np.ndarray): |
| img = Image.fromarray(input_image) |
| elif isinstance(input_image, dict): |
| img = Image.open(input_image["name"]) |
| else: |
| img = input_image |
| |
| |
| result = remove(img, **bg_removal_kwargs) |
| return result |
| |
| except Exception as e: |
| print(f"Error: {str(e)}") |
| return input_image |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("## 🖼️ Background Remover (No Cropping)") |
| |
| with gr.Row(): |
| input_img = gr.Image( |
| label="Original", |
| type="pil", |
| height=400 |
| ) |
| output_img = gr.Image( |
| label="Result", |
| type="pil", |
| height=400 |
| ) |
| |
| gr.Button("Remove Background").click( |
| remove_background, |
| inputs=input_img, |
| outputs=output_img |
| ) |
|
|
| demo.launch() |