This is a fork of Yahoo's open_nsfw. The goal is to make the Not Suitable for Work (NSFW) classification model easily accessible through an HTTP API deployable with Docker.
As I couldn't make this work on Buster due to insufficient knowledge of the tread system, I have edited the requirements to support Python 3.5.
First install Docker (available in Debian as docker.io), then give the user you want to run the API as permission to use Docker:
sudo gpasswd -a $USER docker
You need to logout and login again for this to take effect.
Now build the image, this might take a while:
docker build -t open_nsfw https://raw.githubusercontent.com/rahiel/open_nsfw--/master/Dockerfile
Then you can start the API:
docker run -p <port>:8080 open_nsfw
where you replace <port>
with the port number you want to have the API
accessible on your local machine.
The API is very simple, you POST an url
of an image and the API will then
fetch it, classify it and return the probability that it's NSFW. The probability
is expressed as a real number between 0 and 1.
In the following examples I assume you picked 8080 for the port number, so the
API is running at localhost:8080
.
With curl:
curl -d 'url=http://example.com/image.jpg' localhost:8080
With Python:
import requests
r = requests.post("http://localhost:8080", data={"url": "http://example.com/image.jpg"})
nsfw_prob = float(r.text)
You need to specify url
as a POST parameter.
The requested url
leads to an HTTP 404 Not Found error.
The requested url
is not a valid image.