首先安装项目依赖,都已经生成好了。 直接在项目根目录执行:
pip install -r requirements.txt
运行 WebApi.py
文件会通过 Flask
构建一个 WebAPI
出来,地址是 0.0.0.0:54321
,端口号和地址可以自己更改。
# http://0.0.0.0:54321/nsfw
python WebApi.py
# http://127.0.0.1:2333/nsfw
python WebApi.py -i 127.0.0.1 -p 2333
# http://127.0.0.1:2333/nsfw
python WebApi.py -ip=127.0.0.1 --port=2333
API
调用方式:直接发起 Http
请求,唯一参数 img
,参数内容就是 base64
后的图片数据(不要开头的文件类型 data:image/jpg;base64,
)
返回结果示例(ret
就是几率最高的分类名称):
{
"ret":"neutral",
"drawings":"0.0003323109",
"hentai":"6.302585e-06",
"neutral":"0.97176874",
"porn":"0.00476053",
"sexy":"0.02313208",
"time":140
}
注:
Dockerfile
为在线编译
Dockerfile-offline
为离线编译。使用Dockerfile-offline
时,需要将文件名改为Dockerfile
,并下载Pythone
离线依赖。下载地址 提取码:co32
目录树:
pynsfw
├── Dockerfile
├── Dockerfile-offline
├── Model
│ └── ckpt.h5
├── nsfw.py
├── README.md
├── requirements.txt
├── run.sh
├── WebApi.py
└── whl
├── absl_py-1.0.0-py3-none-any.whl
├── astunparse-1.6.3-py2.py3-none-any.whl
└── 省略一大堆依赖包......
打包编译指令:
# 下载源码
git clone https://github.com/SwaggyMacro/pynsfw.git
# 进入文件夹
cd pynsfw
# 编译镜像
docker build . -t pynsfw:latest
# 运行(映射模型,自定义IP端口)
docker run -itd \
-e IP=127.0.0.1 \
-e PORT=54321 \
-v <nsfw路径>/Model:/nsfw/Model \
--restart=always \
--network=host \
--name=nsfw \
pynsfw:latest
# 查看输出日志
docker logs -f --tail=500 nsfw
docker-compose:
version: '3'
services:
nsfw:
image: pynsfw:latest
container_name: nsfw
network_mode: "host"
restart: always
environment:
- IP=192.168.0.88
- PORT=2333
volumes:
- <nsfw路径>/Model:/nsfw/Model