nn200433 / pynsfw

A TensorFlow CNN model for NSFW.(contains a WebAPI build from Flask)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pynsfw

前言

使用说明

快速入门

首先安装项目依赖,都已经生成好了。 直接在项目根目录执行:

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
}

使用 Docker 部署

注:

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

About

A TensorFlow CNN model for NSFW.(contains a WebAPI build from Flask)


Languages

Language:Python 92.5%Language:Dockerfile 4.1%Language:Shell 3.5%