Spaces:
Sleeping
Sleeping
File size: 2,374 Bytes
6d580b8 9c9afb9 6d580b8 bcfb055 8cf7460 35d2c61 51cca02 32767fa 9c9afb9 35d2c61 bcfb055 8cf7460 2ab7dd8 bcfb055 8c84c61 6d580b8 8cf7460 6d580b8 50a090f 6d580b8 18ca939 40329b6 50a090f 6d580b8 bcfb055 8cf7460 bcfb055 8cf7460 6d580b8 bc19878 6d580b8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# Portrait Photo Generator App
# Imports
from PIL import Image, ImageFilter
import numpy as np
from transformers import pipeline
import gradio as gr
import os
model = pipeline("image-segmentation", model="facebook/detr-resnet-50-panoptic")
pred = []
def img_resize(image):
width = 1280
width_percent = (width / float(image.size[0]))
height = int((float(image.size[1]) * float(width_percent)))
return image.resize((width, height))
def image_objects(image):
global pred
image = img_resize(image)
pred = model(image)
pred_object_list = [str(i)+'_'+x['label'] for i, x in enumerate(pred)]
return gr.Dropdown.update(choices = pred_object_list, interactive = True)
def get_seg(image, object):
image = img_resize(image)
pred = model(image)
pred_object_list = [str(i)+'_'+x['label'] for i, x in enumerate(pred)]
seg_box=[]
for i in range(len(pred)):
#object_number = int(object.split('_')[0])
mask_array = np.asarray(pred[i]['mask'])/255
image_array = np.asarray(image)
mask_array_three_channel = np.zeros_like(image_array)
mask_array_three_channel[:,:,0] = mask_array
mask_array_three_channel[:,:,1] = mask_array
mask_array_three_channel[:,:,2] = mask_array
segmented_image = image_array*mask_array_three_channel
seg_out=segmented_image.astype(np.uint8)
seg_box.append(seg_out)
return(seg_box,gr.Dropdown.update(choices = pred_object_list, interactive = True))
app = gr.Blocks()
with app:
gr.Markdown(
"""
## Image Dissector
""")
with gr.Row():
with gr.Column():
gr.Markdown(
"""
### Input Image
""")
image_input = gr.Image(type="pil")
with gr.Row():
with gr.Column():
object_output = gr.Dropdown(label="Select Object From Dropdown")
with gr.Row():
with gr.Column():
seg_btn = gr.Button(label="Run")
gal1=gr.Gallery(type="filepath").style(grid=4)
seg_btn.click(get_seg, inputs=[image_input,object_output], outputs=gal1)
image_input.change(get_seg, inputs=[image_input], outputs=[gal1,object_output])
#image_input.change(fn=image_objects,inputs=image_input,outputs=object_output)
app.launch() |