前段时间看到 lskypro 升级到了2.0的版本,所以就想服务器闲着也是闲着,不如搭建个图床,造福大家。由于是开放注册,肯定会有坏东西捣乱,无法去筛选每个图片,就想到了去依靠第三方的图片审查服务。

但是目前 lskypro 2.0 支持的图片审查服务不多仅有三种:腾讯、阿里、NsfwJS,前面两个收费的服务价格实在是。。。。。。。不是我能负担的起的,所以便选择了自建 NsfwJS,来降低成本。

Lsky pro 官方群里的大佬们分享了一个项目,使用 Docker封装 部署和使用起来十分方便,输出的 json 格式和 Lsky pro 所有要的完全吻合,所以今天分享出来。

NSFWJS项目地址:NSFWJS

上面的项目地址并非本次所需的项目地址,有能力的大佬可以研究下。

2023年2月18日更新:在迁移服务器的途中,发现原作者的新版镜像是无法直接通过Lsky Pro去调用的。所以将可以用的镜像版本上传到了 Docker Hub。


项目介绍

项目地址:NSFW-API

项目仅支持 PNG JPG文件!!!!!!!

请求示例:

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

应在 image 字段中提供图片数据

响应示例:

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

部署 NSFW-API

本教程基于 宝塔面板搭建,相应命令请自行转换

获取镜像

在宝塔的 Docker 管理面板中选择 公网库 官方库 输入以下仓库地址获取镜像:

ghcr.io/arnidan/nsfw-api:latest
#上面的镜像已经不能再配合LskyPro进行使用,请使用下面的。
roywangdev/nsfw-api:latest

img

由于镜像比较大,而且托管于 Github,国内服务器获取起来比较缓慢,请耐心等待。

部署镜像

选择镜像,将容器的 3000 端口映射出即可。

img

此时提交即可。

设置反代

此时调用以下地址即可调用API

http(s)://IP:port/classify

使用IP+端口的组合肯定不够方便,那就需要反代

新建网站开启HTTPS等操作不再演示,具体配置如下:

代理名称:自定义
代理地址:http://127.0.0.1:自定义的服务器端口

img

点击提交即可反代成功

测试

此处以 Lsky pro调用进行测试

在后台填写 API地址如下:

img切记一定要在域名后面加上 /classify

img

后语

按照 NSFWJS 官方的说法,准确率可以到达 93%,如果调用至商用项目请慎重考虑,如用于公益图床,请不定时审查图片。