sigyllly commited on
Commit
a664879
·
verified ·
1 Parent(s): 5d112e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -0
app.py CHANGED
@@ -61,6 +61,33 @@ def extract_image(pos_prompts, neg_prompts, img, threshold):
61
  output_image.paste(img, mask=final_mask)
62
  return output_image, final_mask
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  # Gradio UI
65
  with gr.Blocks() as demo:
66
  gr.Markdown("# CLIPSeg: Image Segmentation Using Text and Image Prompts")
 
61
  output_image.paste(img, mask=final_mask)
62
  return output_image, final_mask
63
 
64
+
65
+ @app.route('/api', methods=['POST'])
66
+ def api():
67
+ data = request.form
68
+ img_url = data['input_image']
69
+ positive_prompts = data['positive_prompts']
70
+ negative_prompts = data['negative_prompts']
71
+ threshold = float(data['input_slider_T'])
72
+
73
+ # Download image from URL
74
+ response = requests.get(img_url)
75
+ img = Image.open(BytesIO(response.content))
76
+
77
+ # Process image
78
+ masks = get_masks(positive_prompts, negative_prompts, img, threshold)
79
+ final_mask = np.any(np.stack(masks), axis=0)
80
+
81
+ # Convert mask to image
82
+ final_mask = Image.fromarray(final_mask.astype(np.uint8) * 255, "L")
83
+
84
+ # Convert the final image to bytes
85
+ img_bytes = BytesIO()
86
+ final_mask.save(img_bytes, format='PNG')
87
+ img_bytes.seek(0)
88
+
89
+ return send_file(img_bytes, mimetype='image/png')
90
+
91
  # Gradio UI
92
  with gr.Blocks() as demo:
93
  gr.Markdown("# CLIPSeg: Image Segmentation Using Text and Image Prompts")