mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-06-06 23:34:53 +00:00
Added the service deployment code of FastAPI, including key authentication, task submission, task details viewing, and task canceling
133 lines
3.5 KiB
Markdown
133 lines
3.5 KiB
Markdown
|
||
# 视频生成服务API文档
|
||
|
||
## 一、功能概述
|
||
本服务基于Wan2.1-T2V-1.3B模型实现文本到视频生成,包含以下核心功能:
|
||
1. **异步任务队列**:支持多任务排队和并发控制(最大2个并行任务)
|
||
2. **资源管理**:
|
||
- 显存优化(使用bfloat16精度)
|
||
- 生成视频自动清理(默认1小时后删除)
|
||
3. **安全认证**:基于API Key的Bearer Token验证
|
||
4. **任务控制**:支持任务提交/状态查询/取消操作
|
||
|
||
技术栈:
|
||
- FastAPI框架
|
||
- CUDA加速
|
||
- 异步任务处理
|
||
- Diffusers推理库
|
||
|
||
---
|
||
|
||
## 二、接口说明
|
||
|
||
### 1. 提交生成任务
|
||
**POST /video/submit**
|
||
```json
|
||
{
|
||
"model": "Wan2.1-T2V-1.3B",
|
||
"prompt": "A beautiful sunset over the mountains",
|
||
"image_size": "480x832",
|
||
"num_frames": 81,
|
||
"guidance_scale": 5.0,
|
||
"infer_steps": 50
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||
}
|
||
```
|
||
|
||
### 2. 查询任务状态
|
||
**POST /video/status**
|
||
```json
|
||
{
|
||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": "Succeed",
|
||
"results": {
|
||
"videos": [{"url": "http://localhost:8088/videos/abcd1234.mp4"}],
|
||
"timings": {"inference": 120}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. 取消任务
|
||
**POST /video/cancel**
|
||
```json
|
||
{
|
||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": "Succeed"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 三、Postman使用指南
|
||
|
||
### 1. 基础配置
|
||
- 服务器地址:`http://ip地址:8088`
|
||
- 认证方式:Bearer Token
|
||
- Token值:需替换为有效API Key
|
||
|
||
### 2. 提交任务
|
||
1. 选择POST方法,输入URL:`/video/submit`
|
||
2. Headers添加:
|
||
```text
|
||
Authorization: Bearer YOUR_API_KEY
|
||
Content-Type: application/json
|
||
```
|
||
3. Body选择raw/JSON格式,输入请求参数
|
||
|
||
### 3. 查询状态
|
||
1. 新建请求,URL填写`/video/status`
|
||
2. 使用相同认证头
|
||
3. Body中携带requestId
|
||
|
||
### 4. 取消任务
|
||
1. 新建DELETE请求,URL填写`/video/cancel`
|
||
2. Body携带需要取消的requestId
|
||
|
||
### 注意事项
|
||
1. 所有接口必须携带有效API Key
|
||
2. 视频生成耗时约2-5分钟(根据参数配置)
|
||
3. 生成视频默认保留1小时
|
||
|
||
---
|
||
|
||
## 四、参数规范
|
||
| 参数名 | 允许值范围 | 必填 | 说明 |
|
||
|------------------|-------------------------------|------|--------------------------|
|
||
| prompt | 10-500字符 | 是 | 视频内容描述 |
|
||
| image_size | "480x832" 或 "832x480" | 是 | 分辨率 |
|
||
| num_frames | 24-120 | 是 | 视频总帧数 |
|
||
| guidance_scale | 1.0-20.0 | 是 | 文本引导强度 |
|
||
| infer_steps | 20-100 | 是 | 推理步数 |
|
||
| seed | 0-2147483647 | 否 | 随机种子 |
|
||
|
||
---
|
||
|
||
## 五、状态码说明
|
||
| 状态码 | 含义 |
|
||
|--------|--------------------------|
|
||
| 202 | 任务已接受 |
|
||
| 401 | 认证失败 |
|
||
| 404 | 任务不存在 |
|
||
| 422 | 参数校验失败 |
|
||
| 500 | 服务端错误(显存不足等) |
|
||
|
||
|
||
**提示**:建议使用Swagger文档进行接口测试,访问`http://服务器地址:8088/docs`可查看自动生成的API文档界面 |