02.start_server.md 2.9 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 如何启动服务

lightx2v提供了异步服务功能,代码入口处在[这里](https://github.com/ModelTC/lightx2v/blob/main/lightx2v/api_server.py)


### 启动服务

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

其中的`--port 8000`表示服务绑定在本机的`8000`端口上,可以自行修改


### 客户端发送请求

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

服务的接口是:`/v1/local/video/generate`

`scripts/post.py`中的`message`参数如下:

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

1. `prompt`, `negative_prompt`, `image_path`是一些基础的视频生成的输入,`image_path`可以为空字符,表示不需要图片输入

2. `save_video_path`表示服务端生成的视频的路径,相对路径是相对服务端的启动路径,建议根据你自己的环境,设置一个绝对路径。

3. `task_id`表示该任务的id,格式是一个字符串。可以自定义个字符串,也可以调用`generate_task_id()`函数生成一个随机的字符串。任务的id用来区分不同的视频生成任务。

4. `task_id_must_unique`表示是否要求每个`task_id`是独一无二的,即不能发有重复的`task_id`。如果是`False`,就没有这个强制要求,此时如果发送了重复的`task_id`,服务端的`task`记录将会被相同`task_id`的较新的`task`覆盖掉。如果不需要记录所有的`task`以用于查询,那这里就可以设置成`False`


### 客户端获取服务端的状态

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

其中服务的接口有:

1. `/v1/local/video/generate/service_status`用于检查服务的状态,可以返回得到服务是`busy`还是`idle`,只有在`idle`状态,该服务才会接收新的请求。

2. `/v1/local/video/generate/get_all_tasks`用于获取服务端接收到的且已完成的所有的任务。

3. `/v1/local/video/generate/task_status`用于获取指定`task_id`的状态,可以返回得到该任务是`processing`还是`completed`


### 客户端随时终止服务端当前的任务

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

服务的接口是:`/v1/local/video/generate/stop_running_task`

终止了任务之后,服务端并不会退出服务,而是回到等待接收新请求的状态。