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