huedaya's picture
init
6d1ad5e
raw
history blame
1.24 kB
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)