article
README
🚀 人物动态直播动画系统(PersonaLive)
用于直播的富有表现力的肖像动画系统
本系统是一款强大的工具,能实现实时的肖像动画驱动,支持离线视频处理,具备多语言界面和多种实用功能,为直播和动画制作带来全新体验。
✨ 主要特性
- 🎥 实时动画:通过网络摄像头实时驱动肖像动画。
- 📁 离线处理:根据参考图像和驱动视频生成动画视频。
- 🌐 多语言界面:支持英语、简体中文、繁体中文和日语。
- 🌙 黑暗模式:提供护眼的黑暗主题。
- 📸 截图与录制:可捕获和录制动画输出。
- 🖥️ 全屏模式:带来沉浸式的全屏体验。
- 📊 GPU 监控:实时显示 GPU 状态并进行内存管理。
- 🔌 REST API:提供完整的 API 并带有 Swagger 文档。
- 🤖 MCP 支持:支持用于 AI 助手的模型上下文协议。
🚀 快速开始
Docker(推荐)
# 拉取一体化镜像(包含所有模型权重)
docker pull neosun/personalive:allinone
# 运行
docker run -d --gpus all -p 7870:7870 --name personalive neosun/personalive:allinone
# 访问
open http://localhost:7870
Docker Compose
services:
personalive:
image: neosun/personalive:allinone
ports:
- "7870:7870"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
docker compose up -d
📦 安装指南
前提条件
- 具有 12GB 以上显存的 NVIDIA GPU。
- 安装了 NVIDIA 容器工具包的 Docker。
- 或者:Python 3.10 和 CUDA 12.1。
方法 1:Docker 一体化安装(最简单)
docker pull neosun/personalive:allinone
docker run -d --gpus all -p 7870:7870 neosun/personalive:allinone
方法 2:使用卷挂载的 Docker 安装
# 克隆仓库
git clone https://github.com/neosun100/personalive.git
cd personalive
# 下载权重
python tools/download_weights.py
# 挂载权重运行
docker run -d --gpus all -p 7870:7870 \
-v $(pwd)/pretrained_weights:/app/pretrained_weights \
neosun/personalive:latest
方法 3:本地开发安装
# 克隆仓库
git clone https://github.com/neosun100/personalive.git
cd personalive
# 创建环境
conda create -n personalive python=3.10
conda activate personalive
# 安装依赖
pip install -r requirements_base.txt
pip install -r requirements_api.txt
# 下载权重
python tools/download_weights.py
# 构建前端
cd webcam/frontend && npm install && npm run build && cd ../..
# 运行
python app.py
⚙️ 配置
环境变量
| 变量 | 默认值 | 描述 |
|------|--------|------|
| PORT | 7870 | 服务器端口 |
| HOST | 0.0.0.0 | 监听地址 |
| GPU_IDLE_TIMEOUT | 600 | GPU 空闲超时时间(秒) |
| ACCELERATION | xformers | 加速模式(none/xformers/tensorrt) |
.env 文件示例
PORT=7870
HOST=0.0.0.0
GPU_IDLE_TIMEOUT=600
ACCELERATION=xformers
💻 使用示例
Web 界面
- 打开 http://localhost:7870。
- 选择或上传参考肖像。
- 点击“融合参考”以准备模型。
- 允许访问网络摄像头并点击“开始动画”。
- 移动面部以驱动动画!
离线模式
- 切换到“离线模式”选项卡。
- 上传参考图像(PNG/JPG)。
- 上传驱动视频(MP4)。
- 设置最大帧数并点击“处理”。
- 下载结果视频。
REST API
# 健康检查
curl http://localhost:7870/health
# GPU 状态
curl http://localhost:7870/api/gpu/status
# 离线处理
curl -X POST http://localhost:7870/api/process/offline \
-F "reference_image=@portrait.png" \
-F "driving_video=@video.mp4"
完整的 API 文档:http://localhost:7870/docs
🔧 技术细节
技术栈
- 后端:FastAPI、PyTorch、Diffusers
- 前端:SvelteKit、TailwindCSS
- AI 模型:Stable Diffusion、LivePortrait
- 加速:xFormers、TensorRT(可选)
项目结构
personalive/
├── app.py # 主应用程序
├── gpu_manager.py # GPU 资源管理器
├── mcp_server.py # MCP 服务器
├── src/ # 核心模型
├── webcam/ # 前端与流媒体
├── configs/ # 配置文件
├── tools/ # 实用脚本
└── pretrained_weights/ # 模型权重
🤝 贡献
欢迎贡献代码!请随时提交拉取请求。
- 分叉仓库。
- 创建功能分支(
git checkout -b feature/amazing)。 - 提交更改(
git commit -m 'Add amazing feature')。 - 推送到分支(
git push origin feature/amazing)。 - 打开拉取请求。
📋 变更日志
v1.0.0 (2026-01-04)
- 🎉 初始版本发布
- ✨ 实时网络摄像头动画
- ✨ 离线视频处理
- ✨ 多语言界面(英语/中文/繁体中文/日语)
- ✨ 黑暗模式支持
- ✨ 截图与录制
- ✨ 带有 Swagger 的 REST API
- ✨ MCP 支持
- 🐳 Docker 一体化镜像
📄 许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
⭐ 星标历史
🙏 致谢
本项目基于 GVC Lab 的 PersonaLive。特别感谢原作者。
微信扫一扫