Install
openclaw skills install monet-aiMonet AI - Comprehensive AI content generation API for AI agents. Video generation (Sora, Veo, Doubao Seedance, Wan, Hailuo, Kling), image generation (GPT-4o...
openclaw skills install monet-aiComprehensive 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.
curl -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_keyis required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
{
"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.
curl https://monet.vision/api/v1/tasks/task_abc123 \
-H "Authorization: Bearer $MONET_API_KEY"
Response when completed:
{
"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
const 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
{
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
{
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
{
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
{
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
{
model: "veo-3-fast",
prompt: string,
images?: string[],
negative_prompt?: string // Specify unwanted content
}
veo-3 - Google Veo 3
High-quality video generation
{
model: "veo-3",
prompt: string,
images?: string[],
negative_prompt?: string
}
wan-2-6 - Wan 2.6
Multi-shot and automatic audio
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
model: "hailuo-2-3-fast",
prompt: string,
images?: string[],
duration?: 6 | 10,
resolution?: "768p" | "1080p"
}
hailuo-02 - Hailuo 02
Extreme physics simulations
{
model: "hailuo-02",
prompt: string,
images?: string[],
duration?: 6 | 10,
resolution?: "768p" | "1080p"
}
hailuo-01-live2d - Hailuo 01 Live2d
Hailuo Live2D model
{
model: "hailuo-01-live2d",
prompt: string,
images?: string[]
}
hailuo-01 - Hailuo 01
Highest video quality
{
model: "hailuo-01",
prompt: string,
images?: string[]
}
doubao-seedance-1-5-pro - Seedance 1.5 Pro
Pro-grade audio-visual sync
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
model: "wan-animate-mix-pro",
videos: string[], // Required
images: string[] // Required
}
wan-animate-move - Wan Animate Move (Standard)
Replicate dance and challenging body movements
{
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
{
model: "wan-animate-move-pro",
videos: string[], // Required
images: string[] // Required
}
gpt-4o - GPT 4o
Accurate, realistic output
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
model: "flux-1-schnell",
prompt: string
}
imagen-3-0 - Imagen 3.0
Fast, high-quality results
{
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
{
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
{
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
{
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
{
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
{
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:
curl -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_keyis required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.
Response:
{
"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:
curl -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:
curl https://monet.vision/api/v1/tasks/task_abc123 \
-H "Authorization: Bearer $MONET_API_KEY"
Response:
{
"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:
curl "https://monet.vision/api/v1/tasks/list?page=1&pageSize=20" \
-H "Authorization: Bearer $MONET_API_KEY"
Response:
{
"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:
curl -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:
{
"id": "file_xyz789",
"url": "...",
"filename": "file.mp4",
"size": 1048576,
"content_type": "video/mp4",
"created_at": "2026-02-27T10:00:00Z"
}
export MONET_API_KEY="monet_xxx"
All API requests require authentication via the Authorization header:
Authorization: Bearer monet_xxx