服务化部署#
lightx2v 提供异步服务功能。代码入口点在 这里
启动服务#
# 修改脚本中的路径
bash scripts/server/start_server.sh
--port 8000 选项表示服务将绑定到本地机器的 8000 端口。您可以根据需要更改此端口。
客户端发送请求#
python scripts/server/post.py
服务端点:/v1/tasks/
scripts/server/post.py 中的 message 参数如下:
message = {
"prompt": "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage.",
"negative_prompt": "镜头晃动,色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",
"image_path": "",
"target_shape": [720, 720],
}
prompt、negative_prompt和image_path是视频生成的基本输入。image_path可以是空字符串,表示不需要图像输入。target_shape指定输出视频分辨率(可以不设置;不设置按照配置里的分辨率输出)
客户端检查服务器状态#
python scripts/server/check_status.py
服务端点包括:
/v1/service/status用于检查服务状态。返回服务是busy还是idle。服务只有在idle时才接受新请求。/v1/tasks/用于获取服务器接收和完成的所有任务。/v1/tasks/{task_id}/status用于获取指定task_id的任务状态。返回任务是processing还是completed。
客户端随时停止服务器上的当前任务#
python scripts/server/stop_running_task.py
服务端点:/v1/tasks/running
终止任务后,服务器不会退出,而是返回等待新请求的状态。
在单个节点上启动多个服务#
在单个节点上,您可以使用 scripts/server/start_server.sh 启动多个服务(注意同一 IP 下的端口号必须不同),或者可以使用 scripts/server/start_multi_servers.sh 同时启动多个服务:
num_gpus=8 bash scripts/server/start_multi_servers.sh
其中 num_gpus 表示要启动的服务数量;服务将从 --start_port 开始在连续端口上运行。
多个服务之间的调度#
python scripts/server/post_multi_servers.py
post_multi_servers.py 将根据服务的空闲状态调度多个客户端请求。
API 端点总结#
端点 |
方法 |
描述 |
|---|---|---|
|
POST |
创建视频生成任务 |
|
POST |
通过表单创建视频生成任务 |
|
GET |
获取所有任务列表 |
|
GET |
获取指定任务状态 |
|
GET |
获取指定任务的结果视频文件 |
|
DELETE |
停止当前运行的任务 |
|
GET |
下载文件 |
|
GET |
获取服务状态 |