Skip to content
This repository has been archived by the owner on Jan 30, 2024. It is now read-only.
/ nsfw-api Public archive
forked from arnidan/nsfw-api

Wrapper around NSFWJS to provide API.

Notifications You must be signed in to change notification settings

ChromegleApp/nsfw-api

 
 

Repository files navigation

NSFW API

build TypeScript

Wrapper around NSFWJS to provide API.

Usage

Docker

There are docker images bundled with models v3 from https://github.com/gantman/nsfw_model:

  • ghcr.io/arnidan/nsfw-api:latest - bundled with TensorflowJS 299x299 Image Model (better detection, as for me)
  • ghcr.io/arnidan/nsfw-api:latest-min - bundled with TensorflowJS Quantized 299x299 Image Model (see #39)

Each image is available for linux/amd64 and linux/arm64 platforms.

docker run -p 3000:3000 ghcr.io/arnidan/nsfw-api:latest
docker-compose.yml example
version: "3.9"

services:
  nsfw-api:
    image: "ghcr.io/arnidan/nsfw-api:latest"
    ports:
      - "3000:3000"
    restart: always

Manual deploy

  1. Clone the repo
  2. Download and unpack model from models repo to model folder
  3. yarn
  4. yarn build
  5. yarn start

Now app started on port 3000.

API Methods

  • POST /classify
  • POST /classify-many

POST /classify

Example of the request

POST /classify HTTP/1.1
Content-Type: multipart/form-data

Image should be provided in image field.

Example of the response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "porn": 0.59248286485672,
    "sexy": 0.39802199602127075,
    "hentai": 0.006243097595870495,
    "neutral": 0.0031403270550072193,
    "drawing": 0.00011181648733327165
}

POST /classify-many

Example of the request

POST /classify-many HTTP/1.1
Content-Type: multipart/form-data

Images should be provided in images field.

Example of the response

HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "porn": 0.3996206820011139,
        "neutral": 0.388679563999176,
        "sexy": 0.19470958411693573,
        "hentai": 0.015063910745084286,
        "drawing": 0.001926235854625702
    },
    {
        "sexy": 0.8366416692733765,
        "porn": 0.13645528256893158,
        "neutral": 0.0222245492041111,
        "hentai": 0.004213324282318354,
        "drawing": 0.0004651622730307281
    },
    {
        "sexy": 0.8017168045043945,
        "porn": 0.1770564466714859,
        "neutral": 0.015829339623451233,
        "hentai": 0.005097625777125359,
        "drawing": 0.00029983260901644826
    }
]

About

Wrapper around NSFWJS to provide API.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 65.1%
  • JavaScript 26.2%
  • Dockerfile 8.7%