基于OpenNSFW的图像内容检测工具
Project description
nsfwpy
nsfwpy
一个轻量级Python库,使用深度学习模型进行图像内容分析,可以识别图像是否包含不适宜内容。
特性
- 轻量级实现,依赖少,易于部署
- 支持多种图像格式输入(几乎所有常见格式)
- 提供命令行工具、Python API和HTTP API接口
- 支持Windows和其他操作系统
- 自动下载和缓存模型文件
- 提供预编译版本
安装
-
通过pip安装
pip install nsfwpy
-
从源码安装
git clone https://github.com/HG-ha/nsfwpy.git cd nsfwpy pip install -e .
-
Docker(默认使用模型:model.onnx)
docker run -p 8000:8000 yiminger/nsfwpy- 使用指定模型启动
d默认模型docker run -e NSFWPY_ONNX_MODEL=/home/appuser/.cache/nsfwpy/model.onnx -p 8000:8000 yiminger/nsfwpym2模型(NSFWJS mobilenet_v2)docker run -e NSFWPY_ONNX_MODEL=/home/appuser/.cache/nsfwpy/m2model.onnx -p 8000:8000 yiminger/nsfwpyi3模型(NSFWJS inception_v3),速度比其他模型慢一倍docker run -e NSFWPY_ONNX_MODEL=/home/appuser/.cache/nsfwpy/i3model.onnx -p 8000:8000 yiminger/nsfwpy
-
使用预编译版本(开箱即用)
- 请前往 Release 下载对应平台的预编译版本。
- windows:在cmd中输入
nsfwpy.exe - linux:
chmod +x nsfwpy && ./nsfwpy
-
Termux
pkg install -y build-essential cmake ninja patchelf python3 git python-pip python-onnxruntime python-pillow rust git clone https://github.com/HG-ha/nsfwpy.git && cd nsfwpy pip install -e . nsfwpy --help
编译其他平台版本
- 参考
build.bat | build.sh
使用方法
-
Python API
from nsfwpy import NSFW # 初始化检测器(首次运行会自动下载模型) detector = NSFW() # 预测单个图像 result = detector.predict_image("path/to/image.jpg") print(result) # 预测PIL图像 from PIL import Image img = Image.open("path/to/image.jpg") result = detector.predict_pil_image(img) print(result) # 批量预测目录中的图像 results = detector.predict_batch("path/to/image/directory") print(results) # 预测视频文件 result = detector.predict_video( "path/to/video.mp4", sample_rate=0.1, # 采样率,表示每10帧取1帧 max_frames=100 # 最大处理帧数 ) print(result)
-
命令行工具
# 基本用法 nsfwpy --input path/to/image.jpg # 指定自定义模型路径 nsfwpy --model path/to/model.onnx --input path/to/image.jpg # 指定模型类型 (d: 默认模型, m2: mobilenet_v2, i3: inception_v3) nsfwpy --type m2 --input path/to/image.jpg # 启动Web API服务 nsfwpy -w [--host 127.0.0.1] [--port 8080]
命令行参数说明:
--input: 要检测的图像或视频文件路径--model: 自定义模型文件路径(指定此参数时将忽略--type)--type: 模型类型选择,可选值:d(默认), m2, i3-w, --web: 启用Web API服务--host: API服务器主机名(默认:0.0.0.0)--port: API服务器端口(默认:8000)-s, --sample-rate: 视频采样率,范围0-1(默认:0.1)-f, --max-frames: 视频最大处理帧数(默认:100)
Web API服务(完全兼容 nsfwjs-api)
-
启动API服务器:
# 基本用法 nsfwpy -w # 指定主机和端口 nsfwpy -w --host 127.0.0.1 --port 8080 # 指定自定义模型 nsfwpy -w --model path/to/model.onnx
-
API端点:
POST /classify: 分析单张图片(支持图片和GIF)POST /classify-many: 批量分析多张图片POST /classify-video: 分析视频文件
-
API文档:
-
请求:
- /classify
curl --location --request POST 'http://127.0.0.1:8000/classify' \ --form 'image=@"image.jpeg"' - /classify-many
curl --location --request POST 'http://127.0.0.1:8000/classify-many' \ --form 'images=@"image.jpeg"' \ --form 'images=@"image2.jpeg"' - /classify-video
curl --location --request POST 'http://127.0.0.1:8000/classify-video' \ --form 'video=@"video.mp4"' \ --form 'sample_rate=0.1' \ --form 'max_frames=100'
- /classify
预测结果格式
返回包含以下类别概率值的字典:
{
"drawing": 0.1, # 绘画/动画
"hentai": 0.0, # 动漫色情内容(変態)
"neutral": 0.8, # 中性/安全内容
"porn": 0.0, # 色情内容
"sexy": 0.1 # 性感内容
}
致谢
本项目的模型基于 nsfw_model 以及 nsfwjs。感谢原作者的贡献。
推荐资源
- 天狼星框架:https://www.siriusbot.cn/
- 镜芯API:https://api2.wer.plus/
- 林枫云_站长首选云服务器:https://www.dkdun.cn/
- ICP备案查询:https://icp.show/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nsfwpy-0.1.4.3.tar.gz
(14.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
nsfwpy-0.1.4.3-py3-none-any.whl
(16.7 kB
view details)
File details
Details for the file nsfwpy-0.1.4.3.tar.gz.
File metadata
- Download URL: nsfwpy-0.1.4.3.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f43aeb735f67bfd954a506950137682c34fdccd4f26d31553310f0da64aff47
|
|
| MD5 |
b9e63e0236d8f7f874e49f2b271b94d0
|
|
| BLAKE2b-256 |
03a989ef14dea9227b37927fefb8145fec1d59785e4784c20546acd5fd4d639b
|
File details
Details for the file nsfwpy-0.1.4.3-py3-none-any.whl.
File metadata
- Download URL: nsfwpy-0.1.4.3-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6edc4f2241938551e3132c68b3d3300a8b89f6f4ace584fea869becbaca3951
|
|
| MD5 |
992a1f18402654a6adcc776d8296973f
|
|
| BLAKE2b-256 |
9538f39e9ba345e299da95a36280d102046da70dff382faaba594f1037920552
|