Spaces:
Runtime error
Runtime error
File size: 1,241 Bytes
6d1ad5e |
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 |
from flask import Flask, jsonify, request
import cv2
from rembg.session_factory import new_session
from rembg import remove
import requests
import base64
import numpy as np
import streamlit as st
app = Flask(__name__)
@app.route("/")
def indexApi():
return jsonify({"output": "okay"})
@app.route("/remove")
def removeApi():
image_url = request.form.get("image_url")
key = request.form.get("key")
model = request.form.get("model")
if (model == None):
model = "u2netp"
# reject if key not the same
apiKey = st.secrets["Api-Key"]
if apiKey != key:
return jsonify({
"image_url": image_url,
"model": model,
"result": "Invalid API Key",
}), 400
response = requests.get(image_url)
arr = np.asarray(bytearray(response.content), dtype=np.uint8)
image = cv2.imdecode(arr, -1) # 'Load it as it is'
result = remove(image, session=new_session(model))
#encode result
base64_string = base64.b64encode(cv2.imencode('.png', result)[1]).decode()
return jsonify({
"image_url": image_url,
"model": model,
"result": base64_string,
})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860) |