$npx -y skills add calesthio/OpenMontage --skill ai-video-genGenerate AI videos from text prompts using multiple provider gateways. Use when: (1) Generating videos from text descriptions, (2) Creating AI-generated video clips for content production, (3) Image-to-video generation with a reference image, (4) Choosing between video generation
| 1 | # Video Generation (Multi-Gateway) |
| 2 | |
| 3 | Generate AI videos from text prompts. Supports multiple providers via four API paths: |
| 4 | |
| 5 | | Gateway | Env Variable | Providers | Tool | |
| 6 | |---------|-------------|-----------|------| |
| 7 | | **fal.ai** | `FAL_KEY` | **Seedance 2.0** (standard + fast), Kling v3/v2.1, MiniMax, VEO | `seedance_video`, `kling_video`, `minimax_video`, `veo_video` | |
| 8 | | **HeyGen** | `HEYGEN_API_KEY` | VEO 3.1, Kling Pro, Sora v2, Runway Gen-4, Seedance Pro / Lite (1.x) | `heygen_video` | |
| 9 | | **Kling Official** | `KLING_API_KEY` | Kling official Classic, Turbo, and basic Omni video | `kling_official_video` | |
| 10 | | **Gemini API** | `GEMINI_API_KEY` / `GOOGLE_API_KEY` | Gemini Omni Flash (generation + conversational editing) | `gemini_omni_video` | |
| 11 | |
| 12 | **Iterative editing — Gemini Omni.** When the brief calls for *refining an existing clip* (add/remove objects, restyle, change lighting or on-screen text) rather than regenerating, Gemini Omni Flash is the only provider in the fleet with stateful multi-turn editing. See Layer 3 `gemini-omni` for the authoritative prompting guide (reference-image tags, timecode syntax, edit-prompt rules) before writing any prompt for it. |
| 13 | |
| 14 | **Preferred premium default — Seedance 2.0.** When any premium gateway is configured (`FAL_KEY` → `seedance_video`, or HeyGen's Video Agent / Avatar Shots path), Seedance 2.0 is the preferred default for cinematic, trailer, and high-fidelity clip work. It is the only model in the fleet with **single-pass native synchronized audio, multi-shot generation, director-level camera control, and lip-sync from quoted dialogue**, and it ranks #1 on Artificial Analysis Elo as of early 2026. Switch off it only when the user has a specific reason (budget, provider preference, stylistic fit like VEO for photoreal landscape or Kling for specific anime look). See Layer 3 `seedance-2-0` for the authoritative prompting and parameter guide. |
| 15 | |
| 16 | **IMPORTANT:** Always use `video_selector` instead of calling provider tools directly. The selector handles availability checks, cost comparison, and automatic fallback, and its scoring engine already biases toward Seedance 2.0 for cinematic intent. |
| 17 | |
| 18 | ## Authentication |
| 19 | |
| 20 | Use whichever configured gateway best matches the user's available providers and cost/quality goals. |
| 21 | |
| 22 | - **HeyGen:** Set `HEYGEN_API_KEY` to access the multi-model gateway. |
| 23 | - **fal.ai:** Set `FAL_KEY` to access Kling, MiniMax, and Veo through fal.ai. |
| 24 | - **Kling Official:** Set `KLING_API_KEY` to access Kling's official direct API via `provider="kling_official"`. |
| 25 | - **Gemini API:** Set `GEMINI_API_KEY` or `GOOGLE_API_KEY` to access Gemini Omni video generation and conversational editing. |
| 26 | |
| 27 | Do not describe any gateway as the default or top choice without checking the registry and current task fit first. |
| 28 | |
| 29 | fal.ai Kling (`kling_video`, `provider="kling"`) and Kling Official (`kling_official_video`, `provider="kling_official"`) are different paths. Do not reuse fal.ai queue URLs, `FAL_KEY`, or image upload behavior when the official provider is selected. |
| 30 | |
| 31 | ```bash |
| 32 | curl -X POST "https://api.heygen.com/v1/workflows/executions" \ |
| 33 | -H "X-Api-Key: $HEYGEN_API_KEY" \ |
| 34 | -H "Content-Type: application/json" \ |
| 35 | -d '{"workflow_type": "GenerateVideoNode", "input": {"prompt": "A drone shot flying over a coastal city at sunset"}}' |
| 36 | ``` |
| 37 | |
| 38 | ## Default Workflow |
| 39 | |
| 40 | 1. Call `POST /v1/workflows/executions` with `workflow_type: "GenerateVideoNode"` and your prompt |
| 41 | 2. Receive a `execution_id` in the response |
| 42 | 3. Poll `GET /v1/workflows/executions/{id}` every 10 seconds until status is `completed` |
| 43 | 4. Use the returned `video_url` from the output |
| 44 | |
| 45 | ## Execute Video Generation |
| 46 | |
| 47 | ### Endpoint |
| 48 | |
| 49 | `POST https://api.heygen.com/v1/workflows/executions` |
| 50 | |
| 51 | ### Request Fields |
| 52 | |
| 53 | | Field | Type | Req | Description | |
| 54 | |-------|------|:---:|-------------| |
| 55 | | `workflow_type` | string | Y | Must be `"GenerateVideoNode"` | |
| 56 | | `input.prompt` | string | Y | Text description of the video to generate | |
| 57 | | `input.provider` | string | | Video generation provider (default: `"veo_3_1"`). See Providers below. | |
| 58 | | `input.aspect_ratio` | string | | Aspect ratio (default: `"16:9"`). Common values: `"16:9"`, `"9:16"`, `"1:1"` | |
| 59 | | `input.reference_image_url` | string | | Reference image URL for image-to-video generation | |
| 60 | | `input.tail_image_url` | string | | |