当前位置: 首页 > 分享发现 > 开源一个色情图像(NSFW)识别方案,支持HTTP调用

开源一个色情图像(NSFW)识别方案,支持HTTP调用

发布于:2025-12-5 分享发现 0条评论 19 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

各位好,我是ImgURL图床作者 xiaoz,一直以来,ImgURL图床使用雅虎Open NSFW方案来识别用户上传的色情图像,不过雅虎在2019年已将Open NSFW项目归档,且不再更新,Open NSFW项目已经有些过时,且识别准确度一般,最近正好在重构ImgURL,因此急需替代方案。

市面上找了一圈,似乎很少有提供私有部署支持HTTP调用的方案,于是xiaoz手动整合了一套色情图像识别方案,现已在Github开源:https://github.com/helloxz/nsfw,任何人均可部署和调用,欢迎大家体验和提出建议。

908660fcfb62bc13.png

特点

此项目基于AdamCodd/vit-base-nsfw-detector/ 实现,并封装为HTTP API调用,可用于识别网络色情图像(nsfw识别),适合纯CPU机器推理,资源占用低,识别速度快,具备以下特点:

  • 纯CPU推理,适合大多数云服务器或VPS
  • 支持的图片类型:jpg/png/bmp/webp
  • 支持HTTP API调用
  • 支持鉴权访问
  • 轻量级实现,资源占用较低
  • 识别速度较快
  • 支持Docker私有部署

私有部署

Docker部署

docker run -d \
  --name nsfw \
  -p 6086:6086 \
  --restart always \
  helloz/nsfw

使用Docker Compose部署(推荐)

新建docker-compose.yaml,内容如下:

services:
  nsfw:
    container_name: nsfw
    image: helloz/nsfw
    ports:
      - "6086:6086"
    # 环境变量
    environment:
      - TOKEN=your_token_here
      - WORKERS=1
    restart: always

然后启动:docker-compose up -d

环境变量

  • TOKEN:鉴权密钥(自行设置字符串),不设置则无需鉴权
  • WORKERS:进程数量,默认1,多核CPU可增加此数值

HTTP调用

未启用鉴权:

curl 'http://localhost:6086/check?url=https://www.imgurl.org/static/images/logo.png'

启用鉴权:

curl 'http://localhost:6086/check?url=https://www.imgurl.org/static/images/logo.png' \
--header 'Authorization: Bearer your_token_here'

返回值:

{
    "code": 200,
    "msg": "success",
    "data": {
        "sfw": 0.0014,
        "nsfw": 0.9986,
        "is_nsfw": true
    }
}
  • code:状态码,200视为成功,其余状态码视为失败
  • msg:消息提示,错误时会显示具体原因
  • data.sfw:安全系数[0-1],值越高表示图片越安全
  • data.nsfw:风险系数 [0.0-1.0],值越高表示风险越高
  • is_nsfw:当nsfw>=0.8时判定为色情图像,也可以自行根据nsfw分险系数判断

测试API

测试地址存在限流设置,仅供测试使用,请勿用于其它用途!

结语

随着开源社区NSFW模型的进步,ImgURL图床的识别能力也即将迎来了升级。这款开源、易部署且高效的私有方案,希望能为同样需要内容安全审核的开发者带来便利。欢迎各位体验并提出宝贵建议。

Github项目地址:https://github.com/helloxz/nsfw


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注