mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-06-05 14:54:54 +00:00
Add FastAPI
Added the service deployment code of FastAPI, including key authentication, task submission, task details viewing, and task canceling
This commit is contained in:
parent
0961b7b888
commit
c6c5675a06
300
I2V-FastAPI文档.md
300
I2V-FastAPI文档.md
@ -1,151 +1,151 @@
|
||||
|
||||
# 图像到视频生成服务API文档
|
||||
|
||||
## 一、功能概述
|
||||
基于Wan2.1-I2V-14B-480P模型实现图像到视频生成,核心功能包括:
|
||||
1. **异步任务队列**:支持多任务排队和并发控制(最大2个并行任务)
|
||||
2. **智能分辨率适配**:
|
||||
- 支持自动计算最佳分辨率(保持原图比例)
|
||||
- 支持手动指定分辨率(480x832/832x480)
|
||||
3. **资源管理**:
|
||||
- 显存优化(bfloat16精度)
|
||||
- 生成文件自动清理(默认1小时)
|
||||
4. **安全认证**:基于API Key的Bearer Token验证
|
||||
5. **任务控制**:支持任务提交/状态查询/取消操作
|
||||
|
||||
技术栈:
|
||||
- FastAPI框架
|
||||
- CUDA加速
|
||||
- 异步任务处理
|
||||
- Diffusers推理库
|
||||
|
||||
---
|
||||
|
||||
## 二、接口说明
|
||||
|
||||
### 1. 提交生成任务
|
||||
**POST /video/submit**
|
||||
```json
|
||||
{
|
||||
"model": "Wan2.1-I2V-14B-480P",
|
||||
"prompt": "A dancing cat in the style of Van Gogh",
|
||||
"image_url": "https://example.com/input.jpg",
|
||||
"image_size": "auto",
|
||||
"num_frames": 81,
|
||||
"guidance_scale": 3.0,
|
||||
"infer_steps": 30
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 查询任务状态
|
||||
**POST /video/status**
|
||||
```json
|
||||
{
|
||||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"status": "Succeed",
|
||||
"results": {
|
||||
"videos": [{"url": "http://localhost:8088/videos/abcd1234.mp4"}],
|
||||
"timings": {"inference": 90},
|
||||
"seed": 123456
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 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示例(图像生成视频):
|
||||
```json
|
||||
{
|
||||
"prompt": "Sunset scene with mountains",
|
||||
"image_url": "https://example.com/mountain.jpg",
|
||||
"image_size": "auto",
|
||||
"num_frames": 50
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 特殊处理
|
||||
- **图像下载失败**:返回400错误,包含具体原因(如URL无效/超时)
|
||||
- **显存不足**:返回500错误并提示降低分辨率
|
||||
|
||||
---
|
||||
|
||||
## 四、参数规范
|
||||
| 参数名 | 允许值范围 | 必填 | 说明 |
|
||||
|------------------|-------------------------------|------|------------------------------------------|
|
||||
| image_url | 有效HTTP/HTTPS URL | 是 | 输入图像地址 |
|
||||
| prompt | 10-500字符 | 是 | 视频内容描述 |
|
||||
| image_size | "480x832", "832x480", "auto" | 是 | auto模式自动适配原图比例 |
|
||||
| num_frames | 24-120 | 是 | 视频总帧数 |
|
||||
| guidance_scale | 1.0-20.0 | 是 | 文本引导强度 |
|
||||
| infer_steps | 20-100 | 是 | 推理步数 |
|
||||
| seed | 0-2147483647 | 否 | 随机种子 |
|
||||
|
||||
---
|
||||
|
||||
## 五、状态码说明
|
||||
| 状态码 | 含义 |
|
||||
|--------|-----------------------------------|
|
||||
| 202 | 任务已接受 |
|
||||
| 400 | 图像下载失败/参数错误 |
|
||||
| 401 | 认证失败 |
|
||||
| 404 | 任务不存在 |
|
||||
| 422 | 参数校验失败 |
|
||||
| 500 | 服务端错误(显存不足/模型异常等) |
|
||||
|
||||
---
|
||||
|
||||
## 六、特殊功能说明
|
||||
1. **智能分辨率适配**:
|
||||
- 当`image_size="auto"`时,自动计算符合模型要求的最优分辨率
|
||||
- 保持原始图像宽高比,最大像素面积不超过399,360(约640x624)
|
||||
|
||||
2. **图像预处理**:
|
||||
- 自动转换为RGB模式
|
||||
- 根据目标分辨率进行等比缩放
|
||||
|
||||
|
||||
**重要提示**:输入图像URL需保证公开可访问,私有资源需提供有效鉴权
|
||||
|
||||
|
||||
# 图像到视频生成服务API文档
|
||||
|
||||
## 一、功能概述
|
||||
基于Wan2.1-I2V-14B-480P模型实现图像到视频生成,核心功能包括:
|
||||
1. **异步任务队列**:支持多任务排队和并发控制(最大2个并行任务)
|
||||
2. **智能分辨率适配**:
|
||||
- 支持自动计算最佳分辨率(保持原图比例)
|
||||
- 支持手动指定分辨率(480x832/832x480)
|
||||
3. **资源管理**:
|
||||
- 显存优化(bfloat16精度)
|
||||
- 生成文件自动清理(默认1小时)
|
||||
4. **安全认证**:基于API Key的Bearer Token验证
|
||||
5. **任务控制**:支持任务提交/状态查询/取消操作
|
||||
|
||||
技术栈:
|
||||
- FastAPI框架
|
||||
- CUDA加速
|
||||
- 异步任务处理
|
||||
- Diffusers推理库
|
||||
|
||||
---
|
||||
|
||||
## 二、接口说明
|
||||
|
||||
### 1. 提交生成任务
|
||||
**POST /video/submit**
|
||||
```json
|
||||
{
|
||||
"model": "Wan2.1-I2V-14B-480P",
|
||||
"prompt": "A dancing cat in the style of Van Gogh",
|
||||
"image_url": "https://example.com/input.jpg",
|
||||
"image_size": "auto",
|
||||
"num_frames": 81,
|
||||
"guidance_scale": 3.0,
|
||||
"infer_steps": 30
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 查询任务状态
|
||||
**POST /video/status**
|
||||
```json
|
||||
{
|
||||
"requestId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
||||
}
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"status": "Succeed",
|
||||
"results": {
|
||||
"videos": [{"url": "http://localhost:8088/videos/abcd1234.mp4"}],
|
||||
"timings": {"inference": 90},
|
||||
"seed": 123456
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 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示例(图像生成视频):
|
||||
```json
|
||||
{
|
||||
"prompt": "Sunset scene with mountains",
|
||||
"image_url": "https://example.com/mountain.jpg",
|
||||
"image_size": "auto",
|
||||
"num_frames": 50
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 特殊处理
|
||||
- **图像下载失败**:返回400错误,包含具体原因(如URL无效/超时)
|
||||
- **显存不足**:返回500错误并提示降低分辨率
|
||||
|
||||
---
|
||||
|
||||
## 四、参数规范
|
||||
| 参数名 | 允许值范围 | 必填 | 说明 |
|
||||
|------------------|-------------------------------|------|------------------------------------------|
|
||||
| image_url | 有效HTTP/HTTPS URL | 是 | 输入图像地址 |
|
||||
| prompt | 10-500字符 | 是 | 视频内容描述 |
|
||||
| image_size | "480x832", "832x480", "auto" | 是 | auto模式自动适配原图比例 |
|
||||
| num_frames | 24-120 | 是 | 视频总帧数 |
|
||||
| guidance_scale | 1.0-20.0 | 是 | 文本引导强度 |
|
||||
| infer_steps | 20-100 | 是 | 推理步数 |
|
||||
| seed | 0-2147483647 | 否 | 随机种子 |
|
||||
|
||||
---
|
||||
|
||||
## 五、状态码说明
|
||||
| 状态码 | 含义 |
|
||||
|--------|-----------------------------------|
|
||||
| 202 | 任务已接受 |
|
||||
| 400 | 图像下载失败/参数错误 |
|
||||
| 401 | 认证失败 |
|
||||
| 404 | 任务不存在 |
|
||||
| 422 | 参数校验失败 |
|
||||
| 500 | 服务端错误(显存不足/模型异常等) |
|
||||
|
||||
---
|
||||
|
||||
## 六、特殊功能说明
|
||||
1. **智能分辨率适配**:
|
||||
- 当`image_size="auto"`时,自动计算符合模型要求的最优分辨率
|
||||
- 保持原始图像宽高比,最大像素面积不超过399,360(约640x624)
|
||||
|
||||
2. **图像预处理**:
|
||||
- 自动转换为RGB模式
|
||||
- 根据目标分辨率进行等比缩放
|
||||
|
||||
|
||||
**重要提示**:输入图像URL需保证公开可访问,私有资源需提供有效鉴权
|
||||
|
||||
**提示** :访问`http://服务器地址:8088/docs`可查看交互式API文档,支持在线测试所有接口
|
264
T2V-FastAPI文档.md
264
T2V-FastAPI文档.md
@ -1,133 +1,133 @@
|
||||
|
||||
# 视频生成服务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 | 服务端错误(显存不足等) |
|
||||
|
||||
|
||||
|
||||
# 视频生成服务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文档界面
|
Loading…
Reference in New Issue
Block a user