Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 151 additions & 0 deletions I2V-FastAPI文档.md
Original file line number Diff line number Diff line change
@@ -0,0 +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需保证公开可访问,私有资源需提供有效鉴权

**提示** :访问`http://服务器地址:8088/docs`可查看交互式API文档,支持在线测试所有接口
133 changes: 133 additions & 0 deletions T2V-FastAPI文档.md
Original file line number Diff line number Diff line change
@@ -0,0 +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 | 服务端错误(显存不足等) |


**提示**:建议使用Swagger文档进行接口测试,访问`http://服务器地址:8088/docs`可查看自动生成的API文档界面
Loading