|
import gradio as gr |
|
from PIL import Image |
|
import rembg |
|
|
|
|
|
def process_images(images, remove_bg): |
|
final_collage = Image.new("RGBA", (2480, 3508), (255, 255, 255, 0)) |
|
|
|
|
|
x_offset = 0 |
|
y_offset = 0 |
|
for img in images: |
|
img = Image.open(img) |
|
|
|
|
|
if remove_bg: |
|
img = Image.open(rembg.remove(img)) |
|
|
|
|
|
img.thumbnail((500, 500)) |
|
|
|
|
|
final_collage.paste(img, (x_offset, y_offset), img) |
|
|
|
|
|
y_offset += img.height |
|
|
|
return final_collage |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## Sticker Collage Creator (A4)") |
|
|
|
with gr.Row(): |
|
images = gr.File(label="Upload your images", file_types=["image"], multiple=True) |
|
remove_bg = gr.Checkbox(label="Remove background?", value=True) |
|
|
|
output = gr.Image(label="Collage", type="pil") |
|
|
|
submit = gr.Button("Create Collage") |
|
submit.click(process_images, inputs=[images, remove_bg], outputs=output) |
|
|
|
demo.launch() |