Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Monet AI - Comprehensive AI content generation API for AI agents. Video generation (Sora, Veo, Doubao Seedance, Wan, Hailuo, Kling), image generation (GPT-4o, Nano Banana, Seedream, Flux, Imagen, Ideogram), and music generation (MiniMax Music). Build intelligent workflows with multi-model AI generation capabilities.
.claude/skills/leoyeai-monet-ai-skill/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 679% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 619% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 405% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 814% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 679% | 0% |
Comprehensive AI content generation API designed for AI agents. Monet AI provides unified access to state-of-the-art AI generation models for video (Sora, Veo, Doubao Seedance, Wan, Hailuo, Kling), image (GPT-4o, Nano Banana, Seedream, Flux, Imagen, Ideogram), and music (MiniMax Music) generation. Build intelligent workflows that combine multiple AI capabilities for automated content creation pipelines.
Use this skill when:
If you don't have an API Key, ask your owner to apply at monet.vision.
bashcurl -X POST https://monet.vision/api/v1/tasks/async \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running in the park", "duration": 5, "aspect_ratio": "16:9" }, "idempotency_key": "unique-key-123" }'
> ⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
json{ "id": "task_abc123", "status": "pending", "type": "video", "created_at": "2026-02-27T10:00:00Z" }
Task processing is asynchronous. You need to poll the task status until it becomes success or failed. Recommended polling interval: 5 seconds.
bashcurl https://monet.vision/api/v1/tasks/task_abc123 \ -H "Authorization: Bearer $MONET_API_KEY"
Response when completed:
json{ "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" }
Example: Poll until completion
typescriptconst TASK_ID = "task_abc123"; const MONET_API_KEY = process.env.MONET_API_KEY; async function pollTask() { while (true) { const response = await fetch( `https://monet.vision/api/v1/tasks/${TASK_ID}`, { headers: { Authorization: `Bearer ${MONET_API_KEY}`, }, }, ); const data = await response.json(); const status = data.status; if (status === "success") { console.log("Task completed successfully!"); console.log(JSON.stringify(data, null, 2)); break; } else if (status === "failed") { console.log("Task failed!"); console.log(JSON.stringify(data, null, 2)); break; } else { console.log(`Task status: ${status}, waiting...`); await new Promise((resolve) => setTimeout(resolve, 5000)); // Wait 5 seconds } } } pollTask();
sora-2 - Sora 2
_OpenAI latest video generation model_
typescript{ model: "sora-2", prompt: string, // Required images?: string[], // Optional: Reference images duration?: 10 | 15, // Optional, default: 10 aspect_ratio?: "16:9" | "9:16" }
sora-2-pro - Sora 2 Pro
_Perfect quality for cinematic scenes_
typescript{ model: "sora-2-pro", prompt: string, images?: string[], duration?: 15 | 25, // Optional, default: 15 aspect_ratio?: "16:9" | "9:16" }
veo-3-1-fast - Google Veo 3.1 Fast
_Ultra-fast video generation_
typescript{ model: "veo-3-1-fast", prompt: string, images?: string[], // Reference images aspect_ratio?: "16:9" | "9:16" }
veo-3-1 - Google Veo 3.1
_Advanced AI video with sound_
typescript{ model: "veo-3-1", prompt: string, images?: string[], aspect_ratio?: "16:9" | "9:16" }
veo-3-fast - Google Veo 3 Fast
_30% faster than standard Veo 3_
typescript{ model: "veo-3-fast", prompt: string, images?: string[], negative_prompt?: string // Specify unwanted content }
veo-3 - Google Veo 3
_High-quality video generation_
typescript{ model: "veo-3", prompt: string, images?: string[], negative_prompt?: string }
wan-2-6 - Wan 2.6
_Multi-shot and automatic audio_
typescript{ model: "wan-2-6", prompt: string, images?: string[], duration?: 5 | 10 | 15, resolution?: "720p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1", shot_type?: "single" | "multi" // Single/multi-shot switching }
wan-2-5 - Wan 2.5
_Supports automatic audio generation_
typescript{ model: "wan-2-5", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1" }
wan-2-2-flash - Wan 2.2 Flash
_Instruction understanding, controllable camera movement_
typescript{ model: "wan-2-2-flash", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p", negative_prompt?: string }
wan-2-2 - Wan 2.2
_Excellent image details, strong motion stability_
typescript{ model: "wan-2-2", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "1080p", aspect_ratio?: "16:9" | "9:16" | "4:3" | "3:4" | "1:1", negative_prompt?: string }
kling-2-6 - Kling 2.6
_Cinematic videos and audio_
typescript{ model: "kling-2-6", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", generate_audio?: boolean }
kling-2-5 - Kling 2.5 Turbo
_Smooth motion, stronger consistency_
typescript{ model: "kling-2-5", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", negative_prompt?: string }
kling-v2-1-master - Kling 2.1 Master
_Strong visual realism with enhanced features_
typescript{ model: "kling-v2-1-master", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1: Control generation effect negative_prompt?: string }
kling-v2-1 - Kling 2.1
_Strong visual realism_
typescript{ model: "kling-v2-1", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1 negative_prompt?: string }
kling-v2 - Kling 2.0
_Excellent aesthetics_
typescript{ model: "kling-v2", prompt: string, images?: string[], duration?: 5 | 10, aspect_ratio?: "1:1" | "16:9" | "9:16", strength?: number, // 0-1 negative_prompt?: string }
hailuo-2-3 - Hailuo 2.3
_Excellent body movements and physics performance_
typescript{ model: "hailuo-2-3", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-2-3-fast - Hailuo 2.3 Fast
_Fast generation speed_
typescript{ model: "hailuo-2-3-fast", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-02 - Hailuo 02
_Extreme physics simulations_
typescript{ model: "hailuo-02", prompt: string, images?: string[], duration?: 6 | 10, resolution?: "768p" | "1080p" }
hailuo-01-live2d - Hailuo 01 Live2d
_Hailuo Live2D model_
typescript{ model: "hailuo-01-live2d", prompt: string, images?: string[] }
hailuo-01 - Hailuo 01
_Highest video quality_
typescript{ model: "hailuo-01", prompt: string, images?: string[] }
doubao-seedance-1-5-pro - Seedance 1.5 Pro
_Pro-grade audio-visual sync_
typescript{ model: "doubao-seedance-1-5-pro", prompt: string, images?: string[], duration?: number, resolution?: "480p" | "720p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9", generate_audio?: boolean }
doubao-seedance-1-0-pro-fast - Seedance 1.0 Pro Fast
_Premium quality & unbeatable efficiency_
typescript{ model: "doubao-seedance-1-0-pro-fast", prompt: string, images?: string[], duration?: number, resolution?: "720p" | "1080p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9" }
doubao-seedance-1-0-pro - Seedance 1.0 Pro
_Stable motion performance_
typescript{ model: "doubao-seedance-1-0-pro", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "1080p", aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" }
doubao-seedance-1-0-lite - Seedance 1.0 Lite
_Precise semantic understanding_
typescript{ model: "doubao-seedance-1-0-lite", prompt: string, images?: string[], duration?: 5 | 10, resolution?: "480p" | "720p" | "1080p" }
kling-motion-control - Kling Motion Control
_Precision motion control via video references_
typescript{ model: "kling-motion-control", prompt: string, // Required: Detailed motion description images: string[], // Required: min 1 reference image videos: string[], // Required: min 1 reference video resolution?: "720p" | "1080p" }
runway-act-two - Runway Act Two
_Runway Next-Generation Motion Capture Model_
typescript{ model: "runway-act-two", images: string[], // Required: min 1 target character image videos: string[], // Required: min 1 motion reference video aspect_ratio?: "1:1" | "4:3" | "16:9" | "3:4" | "9:16" | "21:9" }
wan-animate-mix - Wan Animate Mix (Standard)
_Perfect for character replacement scenarios_
typescript{ model: "wan-animate-mix", videos: string[], // Required: Original videos images: string[] // Required: Target character images }
wan-animate-mix-pro - Wan Animate Mix Pro (Professional)
_High animation fluidity with better results_
typescript{ model: "wan-animate-mix-pro", videos: string[], // Required images: string[] // Required }
wan-animate-move - Wan Animate Move (Standard)
_Replicate dance and challenging body movements_
typescript{ model: "wan-animate-move", videos: string[], // Required: Motion reference videos images: string[] // Required: Target character images }
wan-animate-move-pro - Wan Animate Move Pro (Professional)
_High animation fluidity with better results_
typescript{ model: "wan-animate-move-pro", videos: string[], // Required images: string[] // Required }
gpt-4o - GPT 4o
_Accurate, realistic output_
typescript{ model: "gpt-4o", prompt: string, images?: string[], // Reference images for style guidance aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string // Custom style description }
gpt-image-1-5 - GPT Image 1.5
_True-color precision rendering_
typescript{ model: "gpt-image-1-5", prompt: string, images?: string[], // max 10 reference images aspect_ratio?: "1:1" | "3:2" | "2:3", quality?: "auto" | "low" | "medium" | "high" }
nano-banana-1 - Google Nano Banana
_Ultra-high character consistency_
typescript{ model: "nano-banana-1", prompt: string, images?: string[], // max 5 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "16:9" | "9:16" }
nano-banana-1-pro - Nano Banana Pro
_Google's flagship generation model_
typescript{ model: "nano-banana-1-pro", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9", resolution?: "1K" | "2K" | "4K" }
nano-banana-2 - Nano Banana 2
_Google Gemini latest model_
typescript{ model: "nano-banana-2", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9" | "4:1" | "1:4" | "8:1" | "1:8", resolution?: "1K" | "2K" | "4K" }
wan-i-2-6 - Wan 2.6
_High-quality and expressive_
typescript{ model: "wan-i-2-6", prompt: string, images?: string[], // max 4 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" | "21:9" }
wan-2-5 - Wan 2.5
_Fast, creative image generation_
typescript{ model: "wan-2-5", prompt: string, images?: string[], // max 2 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" | "21:9" }
seedream-5-0 - Seedream 5.0 Lite
_Intelligent visual reasoning_
typescript{ model: "seedream-5-0", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "4:5" | "5:4" | "9:16" | "16:9" | "21:9", resolution?: "2K" | "3K" }
seedream-4-5 - Seedream 4.5
_ByteDance's 4K image model_
typescript{ model: "seedream-4-5", prompt: string, images?: string[], // max 14 reference images aspect_ratio?: "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "4:5" | "5:4" | "9:16" | "16:9" | "21:9", resolution?: "2K" | "4K" }
seedream-4-0 - Seedream 4.0
_Support images with cohesive styles_
typescript{ model: "seedream-4-0", prompt: string, images?: string[], // max 10 reference images aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" }
flux-2-dev - Flux.2 Dev
_Photorealistic output_
typescript{ model: "flux-2-dev", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16" }
flux-kontext-pro - Flux Kontext Pro
_Perfect for editing, compositing_
typescript{ model: "flux-kontext-pro", prompt: string, images?: string[], aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
flux-kontext-max - Flux Kontext Max
_Excellent for prompt accuracy_
typescript{ model: "flux-kontext-max", prompt: string, images?: string[], aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
flux-1-schnell - Flux Schnell
_Suitable for simple basic scenes_
typescript{ model: "flux-1-schnell", prompt: string }
imagen-3-0 - Imagen 3.0
_Fast, high-quality results_
typescript{ model: "imagen-3-0", prompt: string, aspect_ratio?: "1:1" | "3:4" | "4:3" | "9:16" | "16:9", style?: string }
imagen-4-0 - Imagen 4.0
_Google's latest generation model_
typescript{ model: "imagen-4-0", prompt: string, aspect_ratio?: "1:1" | "3:4" | "4:3" | "9:16" | "16:9", style?: string }
ideogram-v2 - Ideogram V2
_Highly recommended for text editing_
typescript{ model: "ideogram-v2", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
ideogram-v3 - Ideogram V3
_Outstanding design capabilities_
typescript{ model: "ideogram-v3", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string }
stability-1-0 - Stability 1.0
_Perfect for generating detailed images_
typescript{ model: "stability-1-0", prompt: string, aspect_ratio?: "1:1" | "4:3" | "3:2" | "16:9" | "3:4" | "2:3" | "9:16", style?: string, negative_prompt?: string // Specify unwanted content }
minimax-music - MiniMax Music
_AI music generation from text with custom lyrics support_
typescript{ model: "minimax-music", prompt: string, // Required: Music generation description (max 300 characters) lyrics?: string // Optional: Custom lyrics (max 3000 characters) }
POST /api/v1/tasks/async - Create an async task. Returns immediately with task ID.
Request:
bashcurl -X POST https://monet.vision/api/v1/tasks/async \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running" }, "idempotency_key": "unique-key-123" }'
> ⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
json{ "id": "task_abc123", "status": "pending", "type": "video", "created_at": "2026-02-27T10:00:00Z" }
POST /api/v1/tasks/sync - Create a task with SSE streaming. Waits for completion and streams progress.
Request:
bashcurl -X POST https://monet.vision/api/v1/tasks/sync \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $MONET_API_KEY" \ -N \ -d '{ "type": "video", "input": { "model": "sora-2", "prompt": "A cat running" }, "idempotency_key": "unique-key-123" }'
GET /api/v1/tasks/{taskId} - Get task status and result.
Request:
bashcurl https://monet.vision/api/v1/tasks/task_abc123 \ -H "Authorization: Bearer $MONET_API_KEY"
Response:
json{ "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" }
GET /api/v1/tasks/list - List tasks with pagination.
Request:
bashcurl "https://monet.vision/api/v1/tasks/list?page=1&pageSize=20" \ -H "Authorization: Bearer $MONET_API_KEY"
Response:
json{ "tasks": [ { "id": "task_abc123", "status": "success", "type": "video", "outputs": [ { "model": "sora-2", "status": "success", "progress": 100, "url": "https://files.monet.vision/..." } ], "created_at": "2026-02-27T10:00:00Z", "updated_at": "2026-02-27T10:01:30Z" } ], "page": 1, "pageSize": 20, "total": 100 }
POST /api/v1/files - Upload a file to get an online access URL.
> 📁 File Storage: Uploaded files are stored for 24 hours and will be automatically deleted after expiration.
Request:
bashcurl -X POST https://monet.vision/api/v1/files \ -H "Authorization: Bearer $MONET_API_KEY" \ -F "file=@/path/to/your/file.mp4" \ -v
Use Cases:
Response:
json{ "id": "file_xyz789", "url": "...", "filename": "file.mp4", "size": 1048576, "content_type": "video/mp4", "created_at": "2026-02-27T10:00:00Z" }
bashexport MONET_API_KEY="monet_xxx"
All API requests require authentication via the Authorization header:
Authorization: Bearer monet_xxx| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 7,474 | 5,920 | -21% | 1 | 1 | 0% | 1,395 | 10,865 | +679% | 0 | 0 | — |
case-20 | fail→pass | 8,629 | 5,760 | -33% | 1 | 1 | 0% | 1,514 | 10,892 | +619% | 0 | 0 | — |
case-02 | fail→pass | 12,719 | 10,511 | -17% | 1 | 1 | 0% | 2,408 | 12,153 | +405% | 0 | 0 | — |
case-01 | fail→pass | 7,214 | 6,246 | -13% | 1 | 1 | 0% | 1,229 | 11,236 | +814% | 0 | 0 | — |
case-04 | fail→pass | 7,824 | 5,113 | -35% | 1 | 1 | 0% | 1,371 | 10,683 | +679% | 0 | 0 | — |
case-05 | fail→pass | 5,648 | 4,242 | -25% | 1 | 1 | 0% | 1,067 | 10,550 | +889% | 0 | 0 | — |
case-06 | fail→pass | 6,510 | 3,322 | -49% | 1 | 1 | 0% | 949 | 10,471 | +1003% | 0 | 0 | — |
case-07 | fail→pass | 4,983 | 2,796 | -44% | 1 | 1 | 0% | 843 | 10,230 | +1114% | 0 | 0 | — |
case-08 | pass→pass | 8,417 | 5,995 | -29% | 1 | 1 | 0% | 1,363 | 10,866 | +697% | 0 | 0 | — |
case-09 | fail→pass | 5,271 | 4,869 | -8% | 1 | 1 | 0% | 901 | 10,753 | +1093% | 0 | 0 | — |
case-10 | fail→pass | 10,222 | 6,551 | -36% | 1 | 1 | 0% | 1,862 | 11,137 | +498% | 0 | 0 | — |
case-11 | fail→pass | 6,338 | 4,226 | -33% | 1 | 1 | 0% | 1,222 | 10,672 | +773% | 0 | 0 | — |
case-12 | fail→pass | 7,287 | 5,162 | -29% | 1 | 1 | 0% | 1,308 | 10,873 | +731% | 0 | 0 | — |
case-13 | fail→pass | 10,647 | 5,739 | -46% | 1 | 1 | 0% | 2,004 | 11,066 | +452% | 0 | 0 | — |
case-14 | fail→pass | 8,091 | 5,144 | -36% | 1 | 1 | 0% | 1,491 | 10,954 | +635% | 0 | 0 | — |
case-15 | pass→pass | 8,450 | 5,328 | -37% | 1 | 1 | 0% | 1,340 | 10,791 | +705% | 0 | 0 | — |
case-16 | fail→pass | 12,735 | 5,029 | -61% | 1 | 1 | 0% | 2,530 | 10,867 | +330% | 0 | 0 | — |
case-17 | fail→pass | 10,856 | 4,965 | -54% | 1 | 1 | 0% | 1,999 | 10,848 | +443% | 0 | 0 | — |
case-18 | fail→pass | 8,950 | 5,356 | -40% | 1 | 1 | 0% | 1,697 | 10,961 | +546% | 0 | 0 | — |
case-19 | fail→pass | 8,478 | 7,338 | -13% | 1 | 1 | 0% | 1,621 | 11,447 | +606% | 0 | 0 | — |
case-21 | fail→pass | 8,203 | 4,712 | -43% | 1 | 1 | 0% | 1,391 | 10,687 | +668% | 0 | 0 | — |
case-22 | pass→pass | 8,876 | 5,145 | -42% | 1 | 1 | 0% | 1,566 | 10,782 | +589% | 0 | 0 | — |
case-23 | pass→pass | 20,392 | 16,848 | -17% | 1 | 1 | 0% | 4,318 | 12,801 | +196% | 0 | 0 | — |
case-24 | pass→pass | 5,463 | 4,769 | -13% | 1 | 1 | 0% | 1,145 | 10,839 | +847% | 0 | 0 | — |
case-25 | pass→pass | 3,195 | 2,970 | -7% | 1 | 1 | 0% | 643 | 10,350 | +1510% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +76 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.