deploy_server.md 3.03 KB
Newer Older
1
2
# 如何启动服务

PengGao's avatar
PengGao committed
3
lightx2v 提供异步服务功能。代码入口点在 [这里](https://github.com/ModelTC/lightx2v/blob/main/lightx2v/api_server.py)
4
5
6
7
8
9
10
11

### 启动服务

```shell
# 修改脚本中的路径
bash scripts/start_server.sh
```

PengGao's avatar
PengGao committed
12
`--port 8000` 选项表示服务将绑定到本地机器的 `8000` 端口。您可以根据需要更改此端口。
13
14
15
16
17
18
19

### 客户端发送请求

```shell
python scripts/post.py
```

PengGao's avatar
PengGao committed
20
服务端点:`/v1/tasks/`
21

PengGao's avatar
PengGao committed
22
`scripts/post.py` 中的 `message` 参数如下:
23
24
25
26

```python
message = {
    "prompt": "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage.",
gushiqiao's avatar
gushiqiao committed
27
    "negative_prompt": "镜头晃动,色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",
PengGao's avatar
PengGao committed
28
    "image_path": ""
29
30
31
}
```

PengGao's avatar
PengGao committed
32
1. `prompt``negative_prompt``image_path` 是视频生成的基本输入。`image_path` 可以是空字符串,表示不需要图像输入。
33
34


PengGao's avatar
PengGao committed
35
### 客户端检查服务器状态
36
37
38
39
40

```shell
python scripts/check_status.py
```

PengGao's avatar
PengGao committed
41
服务端点包括:
42

PengGao's avatar
PengGao committed
43
1. `/v1/service/status` 用于检查服务状态。返回服务是 `busy` 还是 `idle`。服务只有在 `idle` 时才接受新请求。
44

PengGao's avatar
PengGao committed
45
2. `/v1/tasks/` 用于获取服务器接收和完成的所有任务。
46

PengGao's avatar
PengGao committed
47
3. `/v1/tasks/{task_id}/status` 用于获取指定 `task_id` 的任务状态。返回任务是 `processing` 还是 `completed`
48

PengGao's avatar
PengGao committed
49
### 客户端随时停止服务器上的当前任务
50
51
52
53
54

```shell
python scripts/stop_running_task.py
```

PengGao's avatar
PengGao committed
55
服务端点:`/v1/tasks/running`
56

PengGao's avatar
PengGao committed
57
终止任务后,服务器不会退出,而是返回等待新请求的状态。
58

PengGao's avatar
PengGao committed
59
### 在单个节点上启动多个服务
60

PengGao's avatar
PengGao committed
61
在单个节点上,您可以使用 `scripts/start_server.sh` 启动多个服务(注意同一 IP 下的端口号必须不同),或者可以使用 `scripts/start_multi_servers.sh` 同时启动多个服务:
Zhuguanyu Wu's avatar
Zhuguanyu Wu committed
62
63
64
65

```shell
num_gpus=8 bash scripts/start_multi_servers.sh
```
66

PengGao's avatar
PengGao committed
67
其中 `num_gpus` 表示要启动的服务数量;服务将从 `--start_port` 开始在连续端口上运行。
Zhuguanyu Wu's avatar
Zhuguanyu Wu committed
68
69

### 多个服务之间的调度
70
71
72
73
74

```shell
python scripts/post_multi_servers.py
```

PengGao's avatar
PengGao committed
75
76
77
78
79
80
81
82
83
84
85
86
87
88
`post_multi_servers.py` 将根据服务的空闲状态调度多个客户端请求。

### API 端点总结

| 端点 | 方法 | 描述 |
|------|------|------|
| `/v1/tasks/` | POST | 创建视频生成任务 |
| `/v1/tasks/form` | POST | 通过表单创建视频生成任务 |
| `/v1/tasks/` | GET | 获取所有任务列表 |
| `/v1/tasks/{task_id}/status` | GET | 获取指定任务状态 |
| `/v1/tasks/{task_id}/result` | GET | 获取指定任务的结果视频文件 |
| `/v1/tasks/running` | DELETE | 停止当前运行的任务 |
| `/v1/files/download/{file_path}` | GET | 下载文件 |
| `/v1/service/status` | GET | 获取服务状态 |