Spaces:
Sleeping
Sleeping
File size: 1,497 Bytes
800d968 3a395e0 800d968 3a395e0 800d968 6f246e5 800d968 6f246e5 800d968 db5c2fe 800d968 1402482 800d968 1402482 800d968 4f2d4d3 2f1e708 4f2d4d3 800d968 3a395e0 800d968 3a395e0 | 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, request, redirect, url_for, flash, jsonify
from detect_object import predict_object_function
import os
from flask_wtf import CSRFProtect
from waitress import serve
app = Flask(__name__)
app.config['SECRET_KEY'] = '8BYkEfBA6O6zWlSihBXox7C0sKR6b'
csrf = CSRFProtect(app)
@app.route('/')
def home():
return "Hello Wav2Lip - Flask API Running on Hugging Face Spaces!"
@app.route('/predict_object', methods=['POST'])
@csrf.exempt
def predict_object():
# Receive image file from frontend
image_file = request.files['media']
image_path = os.path.join('predict_image', image_file.filename)
image_file.save(image_path)
try:
result = predict_object_function(image_path)
print(result)
except RuntimeError as e:
text = f"{str(e)})", 'danger'
return {"response": text}
except Exception as e:
print(str(e))
text = "An error occurred during prediction. Please try again"
return {"response": text}
finally:
os.remove(image_path)
imgs = result
no_p = len(imgs)
if no_p < 1:
response = {"response": "No object detected."}
return jsonify(response)
percentage = result[1]
# response = {'response': f"Detected {result[0]} with confidence of {round(percentage, 2)}%"}
response = {'response': f"{result[0]}", "confidence": round(percentage, 2)}
return jsonify(response)
if __name__ == '__main__':
serve(app, host='0.0.0.0', port=7860) |