Skip to content
canbetryPublic

About

基于tinyface的换脸程序

Resources

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

TinyFace AI 人脸替换应用

基于 FastAPI (Python) 和 React (Node.js) 的人脸替换 Web 应用,用于在图像和视频中替换人脸。

功能特点

  • 图像人脸替换:上传图像和目标人脸,自动替换图像中最相似的人脸
  • 视频人脸替换:逐帧处理视频中的人脸,仅替换与目标人脸最相似的人脸
  • 异步任务处理:后台异步处理任务,实时展示处理进度
  • 多任务并行:支持多个任务同时处理
  • 任务管理:查看、重试或删除任务
  • 文件验证:验证上传文件的类型和大小

界面预览

首页

首页

视频替换界面

视频替换界面

任务列表

任务列表

重要说明

注意:视频换脸处理十分耗时,后续会修改整个项目,让其支持GPU加速处理,以提升视频处理效率。

技术栈

后端

  • Python 3.8+
  • FastAPI
  • SQLAlchemy (MySQL)
  • OpenCV
  • TinyFace 人脸识别库
  • 多线程处理

前端

  • React
  • Ant Design
  • Axios
  • React Router

项目结构

ai-tinyface/
├── backend/           # Python 后端
│   ├── api/           # API路由
│   ├── core/          # 核心功能
│   ├── models/        # 数据模型
│   ├── uploads/       # 上传文件存储
│   ├── results/       # 处理结果存储
│   ├── temp/          # 临时文件
│   └── requirements.txt  # Python依赖
└── frontend/          # React前端
    ├── public/        # 静态文件
    ├── src/           # 源代码
    │   ├── components/# React组件
    │   └── pages/     # 页面组件
    └── package.json   # Node.js依赖

项目启动和运行

方式一:本地运行

数据库配置

项目使用MySQL数据库保存任务记录,请确保MySQL服务已安装并正在运行。

  1. 创建数据库(如果不存在)

    CREATE DATABASE ai;
  2. 配置数据库连接(在backend/core/config.py中)

    DB_HOST="localhost"
    DB_PORT="3306"
    DB_USER="root"
    DB_PASSWORD="your_password"
    DB_NAME="ai"

后端启动

  1. 创建并激活虚拟环境

    cd backend
    python -m venv venv
    # Windows
    venv\Scripts\activate
    # Linux/Mac
    source venv/bin/activate
  2. 安装依赖

    pip install -r requirements.txt
  3. 启动服务器

    python main.py

    服务器将在 http://localhost:8000 上运行

前端启动

  1. 安装依赖

    cd frontend
    npm install
  2. 启动开发服务器

    npm start

    前端将在 http://localhost:3000 上运行

方式二:Docker部署

项目提供了Docker支持,可以使用Docker快速部署整个应用。

前提条件

部署步骤

  1. 克隆项目

    git clone <repository-url>
    cd ai-tinyface
  2. 使用Docker Compose启动服务

    docker-compose up -d
  3. 访问应用 服务启动后,可以通过 http://localhost:8000 访问应用

管理容器

  • 查看日志

    docker-compose logs -f
  • 停止服务

    docker-compose down
  • 重建并启动服务

    docker-compose up -d --build

使用流程

  1. 访问前端网站
  2. 选择"图像处理"或"视频处理"
  3. 上传需要处理的图像/视频
  4. 上传目标人脸(要被替换的)
  5. 上传新人脸(用来替换的)
  6. 提交任务,等待处理完成
  7. 查看处理结果

API接口

  • POST /api/tasks/image - 创建图像处理任务
  • POST /api/tasks/video - 创建视频处理任务
  • GET /api/tasks - 获取任务列表
  • GET /api/tasks/{task_id} - 获取单个任务详情
  • DELETE /api/tasks/{task_id} - 删除任务

致谢

本项目借鉴了 TinyFace 的代码和思路,在此表示感谢。

About

基于tinyface的换脸程序

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages