Skip to content

Rayman96/avatar_gpus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

支持多卡机器并发推理Heygem数字人

这是一个基于Flask的视频音频推理服务,可以接收视频URL和音频URL,下载内容,在最佳GPU上执行Heygem数字人推理,并返回处理后的视频。

功能

  • 接收视频URL和音频URL,下载到本地
  • 智能分配GPU资源(自动选择负载最低的GPU)
  • 管理任务进度和并发
  • 提供REST API接口进行任务创建和管理
  • 自动清理临时文件
  • 支持任务状态查询和结果下载

安装依赖

pip install -r requirements.txt

配置

修改app.py中的配置参数以适应您的环境。以下是可配置的参数:

  • MAX_CONCURRENT_TASKS: 最大并发任务数(默认:16)
  • DOWNLOAD_DIR: 下载文件的目录()
  • OUTPUT_DIR: 处理后文件的输出目录
  • HEYGEM_PATH: 如果使用heygem进行推理,设置heygem的路径

注意: 如果使用其他数字人推理代码,修改cmd中的命令即可

运行服务

python app.py

API 接口

1. 创建任务

POST /api/tasks

请求体:

{
  "video_url": "https://example.com/video.mp4",
  "audio_url": "https://example.com/audio.mp3"
}

响应:

{
  "task_id": "1234-5678-90ab-cdef",
  "status": "pending",
  "message": "Task created successfully"
}

2. 获取任务状态

GET /api/tasks/{task_id}

响应:

{
  "task_id": "1234-5678-90ab-cdef",
  "status": "processing",
  "progress": 45.0,
  "created_at": 1622547840.123456,
  "started_at": 1622547845.123456,
  "completed_at": null,
  "result_path": null,
  "error_message": null,
  "gpu_id": 0
}

3. 列出所有任务

GET /api/tasks

4. 取消任务

POST /api/tasks/{task_id}/cancel

5. 下载处理结果

GET /api/output/{task_id}

6. 获取GPU状态

GET /api/gpu/stats

7. 健康检查

GET /health

示例

# 启动服务
python app.py

# 提交任务 (使用curl)
curl -X POST http://localhost:5000/api/tasks \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://example.com/video.mp4", "audio_url": "https://example.com/audio.mp3"}'

# 查询任务状态
curl -X GET http://localhost:5000/api/tasks/YOUR_TASK_ID

系统架构

该系统由以下模块组成:

  1. app.py: 主Flask应用和API路由
  2. gpu_manager.py: GPU资源管理和监控
  3. task_manager.py: 任务队列和生命周期管理
  4. downloader.py: 处理文件下载和清理

注意事项

  • 确保系统已安装NVIDIA驱动和CUDA工具包
  • 对于生产环境,建议配置适当的认证和授权机制
  • 可能需要根据您的推理脚本调整代码中的命令行参数

About

支持heygem多卡数字人推理

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages