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 署名認証を使用します。各リクエストには、署名付きヘッダーが 5 つ必要です。

ヘッダー値
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 秒かかります。動画生成には数分かかることがあります。status が done になるまで chat/status をポーリングしてください
  4. 確認待ち:ステータスが pending_confirmation の場合、生成を続行する前に chat/confirm を呼び出してください。クレジットが必要になる場合があるため、自動で確認せず、まずユーザーに確認してください
  5. スレッドの再利用:会話を続けるには thread_id を渡してください。エージェントは以前のコンテキストを記憶しており、デザインを繰り返し調整できます
  6. プロジェクトが必須:すべてのチャットリクエストに project_id が必要です。先に project/save で作成するか、既存のものを再利用してください
  7. モードによるコストの違い:高速モード(unlimited: false)では優先処理にクレジットを使用します。無制限モード(unlimited: true)は無料ですが、キューに入る場合があります

API リファレンス

コメント