|
|
|
@ -1,101 +1,50 @@
|
|
|
|
|
# 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 地址,并根据需要调整端口号。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 视频生成接口文档
|
|
|
|
|
|
|
|
|
|
### 基本信息
|
|
|
|
|
|
|
|
|
|
- **接口地址:** `http://192.168.10.70:6711/`
|
|
|
|
|
- **API 版本:** 1.0
|
|
|
|
|
|
|
|
|
|
### 生成动态视频
|
|
|
|
|
|
|
|
|
|
- **路径:** `/dynamic-video`
|
|
|
|
|
- **请求方法:** `POST`
|
|
|
|
|
- **描述:** 上传一张图片,生成带有动态效果的视频。
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 描述 |
|
|
|
|
|
| ------ | ---- | ---- |
|
|
|
|
|
| image | File | 必填。要上传的图片文件。 |
|
|
|
|
|
|
|
|
|
|
#### 响应
|
|
|
|
|
|
|
|
|
|
- **成功:** 返回生成的视频文件。
|
|
|
|
|
- **失败:** 返回错误信息。
|
|
|
|
|
|
|
|
|
|
### 生成无声视频
|
|
|
|
|
|
|
|
|
|
- **路径:** `/silent-video`
|
|
|
|
|
- **请求方法:** `POST`
|
|
|
|
|
- **描述:** 上传一张图片,生成无声的视频。
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 描述 |
|
|
|
|
|
| ------ | ---- | ---- |
|
|
|
|
|
| image | File | 必填。要上传的图片文件。 |
|
|
|
|
|
|
|
|
|
|
#### 响应
|
|
|
|
|
|
|
|
|
|
- **成功:** 返回生成的视频文件。
|
|
|
|
|
- **失败:** 返回错误信息。
|
|
|
|
|
|
|
|
|
|
### 注意事项
|
|
|
|
|
|
|
|
|
|
- 如果上传相同的图片,系统会检查之前是否已经生成了对应的视频,如果已生成则直接返回之前的视频,无需重新生成。
|
|
|
|
|
- 每次上传的图片都会被记录下来,以及对应的生成视频路径,以便下次上传同一张图片时可以直接返回之前的视频。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|