关于 lovart
lovart 是通过 Lovart API 按自然语言提示词生成图像、视频及其他视觉内容的技能,面向视觉设计迭代流程。它支持指定生成模型、附加参考图,并通过线程查询状态和获取结果。
主要功能
- 01按提示词生成图像、视频等内容
- 02选择偏好模型或指定工具
- 03附加参考图并延续会话
- 04查询生成状态并获取结果
- 05创建项目并切换生成模式
- 06图像放大处理
适用场景
- 01根据描述制作视觉设计素材
- 02使用参考图迭代设计方案
- 03跟踪视频或图像生成进度
- 04将指定图像进行放大处理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ okou-ai/ okou-skills --skill lovart安装后在 Claude Code 中输入/lovart确认已加载。
详细介绍
故障排除
如果请求失败,请运行 okou doctor check-connector --env-name LOVART_ACCESS_KEY 或 okou doctor check-connector --url https://lgw.lovart.ai/v1/openapi/mode/query --method POST
身份验证
所有请求均使用 AK/SK HMAC-SHA256 签名身份验证。每个请求都需要五个签名标头:
| 标头 | 值 |
|---|---|
X-Access-Key | $LOVART_ACCESS_KEY |
X-Timestamp | 当前 Unix 时间戳 |
X-Signature | 使用 $LOVART_SECRET_KEY 对 {METHOD}\n{PATH}\n{TIMESTAMP} 计算的 HMAC-SHA256 |
X-Signed-Method | HTTP 方法(例如 POST) |
X-Signed-Path | 请求路径(例如 /v1/openapi/chat) |
环境变量
| 变量 | 说明 |
|---|---|
LOVART_ACCESS_KEY | Lovart 访问密钥(格式:ak_...) |
LOVART_SECRET_KEY | Lovart 密钥(格式:sk_...) |
关键端点
基础 URL:https://lgw.lovart.ai
1. 生成设计(聊天)
POST /v1/openapi/chat
发送自然语言提示词以生成图像、视频或其他视觉内容。返回用于追踪的 thread_id。
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/chat\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/chat" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/chat" -d @/tmp/lovart_chat.json
写入 /tmp/lovart_chat.json:
{
"prompt": "<your-design-description>",
"project_id": "<your-project-id>"
}
若要继续对话,请添加 "thread_id": "<your-thread-id>"。
若要附加参考图像,请添加 "attachments": ["<cdn-url>"]。
若要指定首选模型,请添加 "tool_config": {"prefer_tool_categories": {"IMAGE": ["generate_image_flux_2_max"]}}。
若要强制使用特定工具(例如放大),请添加 "tool_config": {"include_tools": ["upscale_image"]}。
响应:{"thread_id": "..."}
2. 检查生成状态
GET /v1/openapi/chat/status?thread_id=<thread-id>
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "GET\n/v1/openapi/chat/status\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s "https://lgw.lovart.ai/v1/openapi/chat/status?thread_id=<your-thread-id>" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: GET" --header "X-Signed-Path: /v1/openapi/chat/status"
响应包含 status(running、done、pending_confirmation、failed)和 progress(0-100)。
3. 获取生成结果
GET /v1/openapi/chat/result?thread_id=<thread-id>
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "GET\n/v1/openapi/chat/result\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s "https://lgw.lovart.ai/v1/openapi/chat/result?thread_id=<your-thread-id>" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: GET" --header "X-Signed-Path: /v1/openapi/chat/result"
响应包含带有生成内容(图像 URL、视频 URL)的 items 和 thread_id。
4. 确认高成本操作
POST /v1/openapi/chat/confirm
当状态为 pending_confirmation 时,请确认以继续执行高成本操作(例如生成视频)。
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/chat/confirm\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/chat/confirm" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/chat/confirm" -d @/tmp/lovart_confirm.json
写入 /tmp/lovart_confirm.json:
{
"thread_id": "<your-thread-id>"
}
5. 创建项目
POST /v1/openapi/project/save
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/project/save\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/project/save" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/project/save" -d @/tmp/lovart_project.json
写入 /tmp/lovart_project.json:
{
"project_id": "",
"project_name": "<your-project-name>",
"project_type": 3
}
响应包含 project_id。在后续聊天请求中使用返回的 ID。
6. 设置生成模式
POST /v1/openapi/mode/set
在快速模式(消耗积分,无需排队)和无限模式(免费,可能需要排队)之间切换。
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/mode/set\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/mode/set" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/mode/set" -d @/tmp/lovart_mode.json
快速模式下,写入 /tmp/lovart_mode.json:
{
"unlimited": false
}
无限模式下,写入 /tmp/lovart_mode.json:
{
"unlimited": true
}
7. 查询生成模式
POST /v1/openapi/mode/query
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/mode/query\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/mode/query" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/mode/query" -d '{}'
可用模型
在 tool_config.prefer_tool_categories 或 tool_config.include_tools 中使用模型名称:
IMAGE: generate_image_midjourney、generate_image_nano_banana_pro、generate_image_nano_banana_2、generate_image_nano_banana、generate_image_gpt_image_1_5、generate_image_seedream_v5、generate_image_seedream_v4_5、generate_image_seedream_v4、generate_image_imagen_v4、generate_image_flux_2_max、generate_image_flux_2_pro
VIDEO: generate_video_seedance_v2_0、generate_video_seedance_v2_0_fast、generate_video_seedance_pro_v1_5、generate_video_kling_v3、generate_video_kling_v3_omni、generate_video_kling_v2_6、generate_video_kling_omni_v1、generate_video_veo3_1、generate_video_veo3_1_fast、generate_video_veo3、generate_video_sora_v2_pro、generate_video_sora_v2、generate_video_wan_v2_6、generate_video_hailuo_v2_3、generate_video_vidu_q2
3D: generate_3d_tripo
UTILITY: upscale_image
常见工作流
生成图像并获取结果
# Step 1: Send chat request
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "POST\n/v1/openapi/chat\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s -X POST "https://lgw.lovart.ai/v1/openapi/chat" --header "Content-Type: application/json" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: POST" --header "X-Signed-Path: /v1/openapi/chat" -d '{"prompt": "A modern logo design with gradient blue to purple", "project_id": "<your-project-id>"}'
# Step 2: Poll status until done (replace <thread-id> from Step 1)
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "GET\n/v1/openapi/chat/status\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s "https://lgw.lovart.ai/v1/openapi/chat/status?thread_id=<your-thread-id>" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: GET" --header "X-Signed-Path: /v1/openapi/chat/status"
# Step 3: Get result when status is "done"
TIMESTAMP=$(date +%s) && SIGNATURE=$(echo -ne "GET\n/v1/openapi/chat/result\n${TIMESTAMP}" | openssl dgst -sha256 -hmac "$LOVART_SECRET_KEY" | awk '{print $NF}') && curl -s "https://lgw.lovart.ai/v1/openapi/chat/result?thread_id=<your-thread-id>" --header "X-Access-Key: $LOVART_ACCESS_KEY" --header "X-Timestamp: ${TIMESTAMP}" --header "X-Signature: ${SIGNATURE}" --header "X-Signed-Method: GET" --header "X-Signed-Path: /v1/openapi/chat/result"
放大图像
使用 include_tools 强制使用放大工具:
写入 /tmp/lovart_chat.json:
{
"prompt": "upscale this image to 4K",
"project_id": "<your-project-id>",
"attachments": ["<your-image-cdn-url>"],
"tool_config": {
"include_tools": ["upscale_image"]
}
}
指南
- 签名时效性:HMAC 签名包含时间戳——每次请求都要重新计算
TIMESTAMP和SIGNATURE,因为服务器会拒绝过期的签名 - 签名路径必须匹配:
X-Signed-Path标头必须与请求路径完全一致(不含查询字符串),例如/v1/openapi/chat,而不是/v1/openapi/chat?thread_id=xxx - 轮询:图像生成通常需要 10-30 秒;视频生成可能需要几分钟——轮询
chat/status,直到status为done - 待确认状态:当状态为
pending_confirmation时,生成继续前请调用chat/confirm——不要自动确认,应先询问用户,因为这可能会消耗额度 - 重复使用会话线程:传入
thread_id以继续对话——Agent 会记住先前的上下文,并可迭代完善设计 - 项目必需:所有聊天请求都需要
project_id——请先通过project/save创建一个,或重复使用现有项目 - 模式影响费用:快速模式(
unlimited: false)会消耗额度以进行优先处理;无限模式(unlimited: true)免费,但可能需要排队