lovart-skill is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Content category.
$ npx -y skills add lovartai/lovart-skill --agent claude-code
Lovart AI Agent Skills — generate images, video, and audio from any AI coding assistant. One
SKILL.md, two install paths.
This skill connects your AI coding assistant to Lovart's Agent OpenAPI. It works with both the OpenClaw and Hermes Agent ecosystems out of the box, and also runs from any assistant that can invoke Python scripts. Capabilities:
Choose the path that matches your agent ecosystem. OpenClaw is the
officially published distribution (npx skills add pulls the
latest release from ClawHub); Hermes Agent is a manual install
you copy into your skills tree. Both paths install the same skill
files; the difference is only in how the agent discovers and invokes
them.
Set your credentials once either way — they are the same in both ecosystems:
export LOVART_ACCESS_KEY="ak_xxx"
export LOVART_SECRET_KEY="sk_xxx"
Get your AK/SK from the Lovart platform (Avatar menu -> AK/SK Management).
npx skills add lovartai/lovart-skill
Pulls the latest published release from ClawHub. OpenClaw installs
the skill into your project and auto-discovers it through its
metadata.openclaw block.
Hermes Agent discovers skills from ~/.hermes/skills/<category>/<skill-name>/SKILL.md.
This is a manual / community install — there is no automated
publish target in this repo yet.
git clone https://github.com/lovartai/lovart-skill.git
cd lovart-skill
cp -r skills/lovart-skill ~/.hermes/skills/design/lovart-api
Hermes auto-triggers on any visual / audio creation request through
its metadata.hermes.tags block. From your Hermes chat:
/lovart-api draw a cyberpunk cat in neon city
💡 The two paths install identical skill files — the
SKILL.mdships dual-format frontmatter, so the same artifact serves both ecosystems without modification.
# Generate an image
python3 scripts/agent_skill.py chat --prompt "a cyberpunk cat in neon city" --json --download
# Generate a video
python3 scripts/agent_skill.py chat --prompt "ocean waves crashing on rocks, cinematic" --json --download
# Generate BGM
python3 scripts/agent_skill.py chat --prompt "lofi hip-hop, chill, study vibes" --json --download
| Command | Description |
|---|---|
chat | Send prompt, wait for completion, return all results at once. Main command. |
watch | Send prompt and stream artifacts as they complete (NDJSON, incremental delivery) |
send | Send prompt without waiting (returns thread_id immediately) |
confirm | Confirm a pending high-cost operation (e.g. video), then wait |
result | Get results for a thread |
status | Check thread status |
| Command | Description |
|---|---|
projects | List all projects |
project-add | Add and switch to a project |
project-switch | Switch active project (supports prefix match) |
project-rename | Rename a project |
project-remove | Remove a project and its threads |
create-project | Create a new empty project on the server |
| Command | Description |
|---|---|
config | View/update local settings (~/.lovart/state.json) |
threads | List saved conversation threads |
set-mode | Switch between fast (credits) / unlimited (queue) mode |
query-mode | Check current generation mode |
| Command | Description |
|---|---|
upload | Upload a local file to CDN (returns URL) |
upload-artifact | Upload a URL artifact to a project |
download | Download artifacts from URLs |
# Use an existing project
python3 scripts/agent_skill.py chat --project-id PROJECT_ID --prompt "draw a cat" --json --download
# Continue a conversation (thread reuse preserves context)
python3 scripts/agent_skill.py chat --thread-id THREAD_ID --prompt "make it blue" --json --download
# Stream artifacts as they complete (NDJSON, for multi-image/video requests)
python3 scripts/agent_skill.py watch --prompt "generate 4 variations of a cyberpunk cat"
# Edit with reference image
python3 scripts/agent_skill.py upload --file photo.jpg
python3 scripts/agent_skill.py chat --prompt "change the style to watercolor" --attachments "CDN_URL" --json --download
# Prefer a specific model
python3 scripts/agent_skill.py chat --prompt "draw a cat" \
--prefer-models '{"IMAGE":["generate_image_midjourney"]}' --json --download
# Force a specific tool (e.g. upscale instead of re-generate)
python3 scripts/agent_skill.py chat --prompt "upscale this image" \
--include-tools upscale_image --attachments "IMAGE_URL" --json --download
# Thinking mode — deep structured reasoning for complex requests
python3 scripts/agent_skill.py chat --prompt "design a brand identity for a coffee startup" \
--mode thinking --json --download
# Project management
python3 scripts/agent_skill.py projects
python3 scripts/agent_skill.py project-add --project-id NEW_ID --name "My Brand Kit"
python3 scripts/agent_skill.py project-switch --project-id NEW_ID
python3 scripts/agent_skill.py threads
You can control which model the Agent uses in three ways:
"generate ocean waves video using kling"--prefer-models (soft preference) — '{"IMAGE":["generate_image_midjourney"]}'--include-tools (strongest steer, not an enforced whitelist) — upscale_image--include-tools is a strong instruction the Agent normally follows, but it may still pick
another tool — for example after the requested one rejects the input. --exclude-tools is
accepted for forward compatibility and currently has no effect on tool selection.
--attachments takes any image URL and each new URL is reviewed again. For a reference that
already lives in the asset library, pass its library URL with --subjects so the existing
review is reused and the Agent knows the subject is approved:
python3 scripts/agent_skill.py chat --prompt "put these characters in one scene" \
--subjects '[{"url":"LIBRARY_URL","asset_id":"asset_xxx","display_name":"Hero"}]' \
--json --download
A run can finish done and still have had tool calls rejected — the Agent may drop a
reference or switch models and carry on. The result carries a failures array plus a
one-line warning. Read it before reporting success; retrying a rejected reference with the
same input will fail again and still costs credits.
Available models:
| Category | Tool name | Display name | Premium |
|---|---|---|---|
| IMAGE | generate_image_gpt_image_2_5_flare | GPT Image 2.5 Flare Auto | |
| IMAGE | generate_image_gpt_image_2_5_flare_low | GPT Image 2.5 Flare Low | |
| IMAGE | generate_image_gpt_image_2_5_flare_medium | GPT Image 2.5 Flare Medium | |
| IMAGE | generate_image_gpt_image_2_5_flare_high | GPT Image 2.5 Flare High | |
| IMAGE | generate_image_gpt_image_2_5_flare_xhigh | GPT Image 2.5 Flare xhigh | |
| IMAGE | generate_image_gpt_image_2_5_flare_max | GPT Image 2.5 Flare Max | |
| IMAGE | generate_image_gpt_image_2_5_sunburst | GPT Image 2.5 Sunburst Auto | |
| IMAGE | generate_image_gpt_image_2_5_sunburst_low | GPT Image 2.5 Sunburst Low | |
| IMAGE | generate_image_gpt_image_2_5_sunburst_medium | GPT Image 2.5 Sunburst Medium | |
| IMAGE | generate_image_gpt_image_2_5_sunburst_high | GPT Image 2.5 Sunburst High | |
| IMAGE | generate_image_gpt_image_2_5_sunburst_xhigh | GPT Image 2.5 Sunburst xhigh | |
| IMAGE | generate_image_gpt_image_2_5_sunburst_max | GPT Image 2.5 Sunburst Max | |
| IMAGE | generate_image_gpt_image_2 | GPT Image 2 Auto | |
| IMAGE | generate_image_gpt_image_2_low | GPT Image 2 Low | |
| IMAGE | generate_image_gpt_image_2_medium | GPT Image 2 Medium | |
| IMAGE | generate_image_gpt_image_2_high | GPT Image 2 High | |
| IMAGE | generate_image_nano_banana_2_1 | Nano Banana 2.1 | |
| IMAGE | generate_image_nano_banana_pro | Nano Banana Pro | |
| IMAGE | generate_image_nano_banana_2 | Nano Banana 2 | |
| IMAGE | generate_image_seedream_v5_pro | Seedream 5.0 Pro | |
| IMAGE | generate_image_gpt_image_1_5 | GPT Image 1.5 | |
| IMAGE | generate_image_seedream_v5 | Seedream 5.0 Lite | |
| IMAGE | generate_image_luma_uni_1 | Luma uni-1 | |
| IMAGE | generate_image_luma_uni_1_max | Luma uni-1-max | |
| IMAGE | generate_image_flux_2_max | Flux.2 Max | |
| IMAGE | generate_image_flux_2_pro | Flux.2 Pro | |
| IMAGE | generate_image_seedream_v4_5 | Seedream 4.5 | |
| IMAGE | generate_image_seedream_v4 | Seedream 4 | |
| IMAGE | generate_image_midjourney | Midjourney | |
| IMAGE | generate_image_ideogram_v4 | Ideogram 4 | |
| IMAGE | generate_image_qwen_image3 | Qwen Image3 | |
| IMAGE | generate_image_qwen_image3_pro | Qwen Image3 Pro | |
| IMAGE | generate_image_nano_banana_2_lite | Nano Banana 2 Lite | |
| IMAGE | generate_image_p_image_ideogram | Ideogram P-Image | |
| VIDEO | generate_video_seedance_v2_5 | Seedance 2.5 | ⭐ Premium |
| VIDEO | generate_video_seedance_v2_0 | Seedance 2.0 | ⭐ Premium |
| VIDEO | generate_video_seedance_v2_0_fast | Seedance 2.0 Fast | ⭐ Premium |
| VIDEO | generate_video_seedance_v2_0_mini | Seedance 2.0 Mini | ⭐ Premium |
| VIDEO | generate_video_kling_v4 | Kling 4.0 | |
| VIDEO | generate_video_kling_v3 | Kling 3.0 | ⭐ Premium |
| VIDEO | generate_video_kling_v3_omni | Kling 3.0 Omni | ⭐ Premium |
| VIDEO | generate_video_minimax_h3 | MiniMax H3 | ⭐ Premium |
| VIDEO | generate_video_kling_v2_6 | Kling 2.6 | ⭐ Premium |
| VIDEO | generate_video_wan_v2_6 | Wan 2.6 | |
| VIDEO | generate_video_veo3_1 | Veo 3.1 | ⭐ Premium |
| VIDEO | generate_video_kling_omni_v1 | Kling O1 | ⭐ Premium |
| VIDEO | generate_video_veo3_1_fast | Veo 3.1 Fast | ⭐ Premium |
| VIDEO | generate_video_hailuo_v2_3 | Hailuo 2.3 | |
| VIDEO | generate_video_veo3 | Veo 3 | ⭐ Premium |
| VIDEO | generate_video_vidu_q2 | Vidu Q2 | |
| VIDEO | generate_video_gemini_omni_flash | Gemini Omni Flash | ⭐ Premium |
| VIDEO | generate_video_minimax_h3_max | MiniMax H3 Max | ⭐ Premium |
| VIDEO | generate_video_wan_v3 | Wan 3.0 | ⭐ Premium |
| VIDEO | generate_video_wan_v3_prime | Wan 3.0 Prime | ⭐ Premium |
Control how the agent thinks per request via --mode:
fast (default) — lightweight single-pass response. Faster, cheaper, suitable for simple one-shot generations.lovart-skill is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Content category. Install it with the command on its page. It includes lovart-skill. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it