mcpField
L
lovart

lovart

github.com/okou-ai创意与媒体8141 次安装1 周前更新
代码仓库

关于 lovart

lovart 是通过 Lovart API 按自然语言提示词生成图像、视频及其他视觉内容的技能,面向视觉设计迭代流程。它支持指定生成模型、附加参考图,并通过线程查询状态和获取结果。

主要功能

  1. 01按提示词生成图像、视频等内容
  2. 02选择偏好模型或指定工具
  3. 03附加参考图并延续会话
  4. 04查询生成状态并获取结果
  5. 05创建项目并切换生成模式
  6. 06图像放大处理

适用场景

  1. 01根据描述制作视觉设计素材
  2. 02使用参考图迭代设计方案
  3. 03跟踪视频或图像生成进度
  4. 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-MethodHTTP 方法(例如 POST)
X-Signed-Path请求路径(例如 /v1/openapi/chat)

环境变量

变量说明
LOVART_ACCESS_KEYLovart 访问密钥(格式:ak_...)
LOVART_SECRET_KEYLovart 密钥(格式: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"]
  }
}

指南

  1. 签名时效性:HMAC 签名包含时间戳——每次请求都要重新计算 TIMESTAMP 和 SIGNATURE,因为服务器会拒绝过期的签名
  2. 签名路径必须匹配:X-Signed-Path 标头必须与请求路径完全一致(不含查询字符串),例如 /v1/openapi/chat,而不是 /v1/openapi/chat?thread_id=xxx
  3. 轮询:图像生成通常需要 10-30 秒;视频生成可能需要几分钟——轮询 chat/status,直到 status 为 done
  4. 待确认状态:当状态为 pending_confirmation 时,生成继续前请调用 chat/confirm——不要自动确认,应先询问用户,因为这可能会消耗额度
  5. 重复使用会话线程:传入 thread_id 以继续对话——Agent 会记住先前的上下文,并可迭代完善设计
  6. 项目必需:所有聊天请求都需要 project_id——请先通过 project/save 创建一个,或重复使用现有项目
  7. 模式影响费用:快速模式(unlimited: false)会消耗额度以进行优先处理;无限模式(unlimited: true)免费,但可能需要排队

API 参考

评论

支持 Markdown