Spaces:
Runtime error
Runtime error
| from flask import Flask, request, jsonify, send_from_directory | |
| from nsfw_detector import predict | |
| import requests | |
| import io | |
| import random | |
| import os | |
| from PIL import Image | |
| from datetime import datetime | |
| import string | |
| import re | |
| app = Flask(__name__) | |
| model = predict.load_model('./nsfw_mobilenet2.224x224.h5') | |
| def check(): | |
| try: | |
| data = request.get_json() | |
| imgdata = data["data"] | |
| #imgdata is like 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', save it to a file in ./TEMP | |
| imgdata = re.sub('^data:image/.+;base64,', '', imgdata) | |
| imgdata = bytes(imgdata, encoding="utf-8") | |
| img = Image.open(io.BytesIO(imgdata)) | |
| filename = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + ".jpg" | |
| img.save(f"./TEMP/{filename}") | |
| #predict the image | |
| result = predict.predict(model, f"./TEMP/{filename}") | |
| response = { | |
| "success": True, | |
| "result": result | |
| } | |
| except Exception as e: | |
| response = { | |
| "success": False, | |
| "error": str(e) | |
| } | |
| return jsonify(response) | |
| def checkUrl(): | |
| try: | |
| data = request.get_json() | |
| url = data["url"] | |
| #download the image | |
| response = requests.get(url) | |
| img = Image.open(io.BytesIO(response.content)) | |
| filename = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + ".jpg" | |
| img.save(f"./TEMP/{filename}") | |
| #predict the image | |
| result = predict.predict(model, f"./TEMP/{filename}") | |
| response = { | |
| "success": True, | |
| "result": result | |
| } | |
| except Exception as e: | |
| response = { | |
| "success": False, | |
| "error": str(e) | |
| } | |
| return jsonify(response) | |
| if __name__ == "__main__": | |
| if not os.path.exists("./TEMP"): | |
| os.makedirs("./TEMP") | |
| app.run(debug=True, host="0.0.0.0", port=7860) |