基于 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服务已安装并正在运行。
-
创建数据库(如果不存在)
CREATE DATABASE ai;
-
配置数据库连接(在
backend/core/config.py中)DB_HOST="localhost" DB_PORT="3306" DB_USER="root" DB_PASSWORD="your_password" DB_NAME="ai"
-
创建并激活虚拟环境
cd backend python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate
-
安装依赖
pip install -r requirements.txt
-
启动服务器
python main.py
服务器将在 http://localhost:8000 上运行
-
安装依赖
cd frontend npm install -
启动开发服务器
npm start
前端将在 http://localhost:3000 上运行
项目提供了Docker支持,可以使用Docker快速部署整个应用。
- 安装 Docker
- 安装 Docker Compose
-
克隆项目
git clone <repository-url> cd ai-tinyface
-
使用Docker Compose启动服务
docker-compose up -d
-
访问应用 服务启动后,可以通过 http://localhost:8000 访问应用
-
查看日志
docker-compose logs -f
-
停止服务
docker-compose down
-
重建并启动服务
docker-compose up -d --build
- 访问前端网站
- 选择"图像处理"或"视频处理"
- 上传需要处理的图像/视频
- 上传目标人脸(要被替换的)
- 上传新人脸(用来替换的)
- 提交任务,等待处理完成
- 查看处理结果
POST /api/tasks/image- 创建图像处理任务POST /api/tasks/video- 创建视频处理任务GET /api/tasks- 获取任务列表GET /api/tasks/{task_id}- 获取单个任务详情DELETE /api/tasks/{task_id}- 删除任务
本项目借鉴了 TinyFace 的代码和思路,在此表示感谢。


