---------------- nsfw-service ---------------- [ Usage ] Send an HTTP POST request to port 9000 with the request body containing raw image data. Supported formats: WEBP, PNG, GIF, JPEG. Animated WEBPs and PNGs are not supported and will return a 415 status code. For GIFs, only the first frame is used. --- Response Status Codes --- 400 – Invalid image data 405 – Method not allowed (Use POST for inference and HEAD or GET for health) 411 – Failed to read request body 413 – Request body too large 415 – Unsupported image type 422 – Invalid image dimensions (>8192x4096px or <32px) 500 – Server error, response body is plaintext --- Example Response Body --- { "allowed": true, "image": { "hash_md5": "50f64bdb0f11d281505bce990e805569", "hash_sha256": "f2a94429ccd5e5467f6a1f2bd166d8def75ced242a59b6f71b659e827c008b75", "height": 850, "width": 850 }, "logits": { "drawing": 0.85562634, "hentai": 0.14418653, "neutral": 0.000010294689, "porn": 0.00014420893, "sexy": 0.00003254598 }, "timings": { "classify": 7125, "decode": 8746, "probe": 0, "total": 15871 } } [ Config ] Configure the service using environment variables: | Name | Default | Description | HTTP_ADDRESS | 127.0.0.1:9000 | Address and Port to use for requests | ONNX_RUNTIME_PATH | | Set to anything to enable CUDA, requires you supply your own ONNX runtime | ONNX_RUNTIME_PATH | | Path to the ONNX runtime library, either a onnxruntime.dll or libonnxruntime.so | HTTP_CONCURRENCY | 16 | Maximum concurrent api requests | HTTP_MAX_BODY_BYTES | 16777216 | Maximum request size in bytes, default is 16MB | MODEL_THRESHOLD | 0.7 | Threshold before an image is consider inappropriate [ Credits ] Uses the following AI model: https://github.com/GantMan/nsfw_model