|
|
|
@ -0,0 +1,101 @@
|
|
|
|
|
# SadTalker 文档
|
|
|
|
|
|
|
|
|
|
## 目录
|
|
|
|
|
|
|
|
|
|
1. [基础信息](#基础信息)
|
|
|
|
|
2. [接口列表](#接口列表)
|
|
|
|
|
- [生成动态视频(并移除音频)](#1-生成动态视频并移除音频)
|
|
|
|
|
- [生成静音视频(并裁剪视频)](#2-生成静音视频并裁剪视频)
|
|
|
|
|
3. [错误响应](#错误响应)
|
|
|
|
|
4. [文件命名约定](#文件命名约定)
|
|
|
|
|
5. [运行服务](#运行服务)
|
|
|
|
|
|
|
|
|
|
## 基础信息
|
|
|
|
|
|
|
|
|
|
- **应用名称**: Video Processing Service
|
|
|
|
|
- **基础URL**: `http://<your-server-ip>:8000`
|
|
|
|
|
|
|
|
|
|
## 接口列表
|
|
|
|
|
|
|
|
|
|
### 1. 生成动态视频(并移除音频)
|
|
|
|
|
|
|
|
|
|
- **端点**: `/dynamic-video`
|
|
|
|
|
- **方法**: `POST`
|
|
|
|
|
- **描述**: 上传图片生成动态视频,并移除视频中的音频。
|
|
|
|
|
- **请求参数**:
|
|
|
|
|
- **文件**:
|
|
|
|
|
- **名称**: `image`
|
|
|
|
|
- **类型**: `file`
|
|
|
|
|
- **描述**: 要处理的图像文件,格式应为PNG或JPEG。
|
|
|
|
|
|
|
|
|
|
- **响应**:
|
|
|
|
|
- **成功**: 返回生成的无声视频文件。
|
|
|
|
|
- **类型**: `video/mp4`
|
|
|
|
|
- **失败**:
|
|
|
|
|
- **JSON**: `{"error": "No subdirectory found in result directory"}` (如果结果目录中没有找到子目录)
|
|
|
|
|
- **JSON**: `{"error": "Video file not found"}` (如果生成的视频文件不存在)
|
|
|
|
|
|
|
|
|
|
- **示例**:
|
|
|
|
|
```sh
|
|
|
|
|
curl -X POST "http://<your-server-ip>:8000/dynamic-video" \
|
|
|
|
|
-H "accept: application/json" \
|
|
|
|
|
-H "Content-Type: multipart/form-data" \
|
|
|
|
|
-F "image=@path/to/your/image.png"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 生成静音视频(并裁剪视频)
|
|
|
|
|
|
|
|
|
|
- **端点**: `/silent-video`
|
|
|
|
|
- **方法**: `POST`
|
|
|
|
|
- **描述**: 上传图片生成静音视频,并裁剪视频时长。
|
|
|
|
|
- **请求参数**:
|
|
|
|
|
- **文件**:
|
|
|
|
|
- **名称**: `image`
|
|
|
|
|
- **类型**: `file`
|
|
|
|
|
- **描述**: 要处理的图像文件,格式应为PNG或JPEG。
|
|
|
|
|
|
|
|
|
|
- **响应**:
|
|
|
|
|
- **成功**: 返回生成的裁剪视频文件。
|
|
|
|
|
- **类型**: `video/mp4`
|
|
|
|
|
- **失败**:
|
|
|
|
|
- **JSON**: `{"error": "No subdirectory found in result directory"}` (如果结果目录中没有找到子目录)
|
|
|
|
|
- **JSON**: `{"error": "Video file not found"}` (如果生成的视频文件不存在)
|
|
|
|
|
|
|
|
|
|
- **示例**:
|
|
|
|
|
```sh
|
|
|
|
|
curl -X POST "http://<your-server-ip>:8000/silent-video" \
|
|
|
|
|
-H "accept: application/json" \
|
|
|
|
|
-H "Content-Type: multipart/form-data" \
|
|
|
|
|
-F "image=@path/to/your/image.png"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 错误响应
|
|
|
|
|
|
|
|
|
|
所有端点均可能返回以下错误响应:
|
|
|
|
|
|
|
|
|
|
- **HTTP 400**: 请求格式错误
|
|
|
|
|
- **JSON**: `{"detail": "Invalid request"}`
|
|
|
|
|
|
|
|
|
|
- **HTTP 500**: 服务器内部错误
|
|
|
|
|
- **JSON**: `{"detail": "Internal server error"}`
|
|
|
|
|
|
|
|
|
|
## 文件命名约定
|
|
|
|
|
|
|
|
|
|
- 上传的图片文件将根据上传接口存储到以下路径:
|
|
|
|
|
- 动态视频:`dynamic/dynamic_image.png`
|
|
|
|
|
- 静音视频:`silent/silent_image.png`
|
|
|
|
|
|
|
|
|
|
- 生成的视频文件将存储在 `results` 目录中的子目录下,文件名示例:
|
|
|
|
|
- 动态视频:`dynamic_image##dynamic_audio_enhanced.mp4`
|
|
|
|
|
- 静音视频:`silent_image##silent_audio_enhanced.mp4`
|
|
|
|
|
- 无声视频:`dynamic_image##dynamic_audio_enhanced_dynamic.mp4`
|
|
|
|
|
- 裁剪视频:`silent_image##silent_audio_enhanced_trimmed.mp4`
|
|
|
|
|
|
|
|
|
|
## 运行服务
|
|
|
|
|
|
|
|
|
|
- 启动服务:
|
|
|
|
|
```sh
|
|
|
|
|
uvicorn main:app --host 0.0.0.0 --port 8000
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
请确保在实际部署时替换 `<your-server-ip>` 为你的服务器 IP 地址,并根据需要调整端口号。
|