| name | video-generation |
| description | AI video generation via Replicate โ 17 models, editing, and production workflows |
| tier | standard |
| applyTo | **/*video*,**/*animate*,**/*clip* |
| $schema | ../SKILL-SCHEMA.json |
Video Generation Skill
Domain: AI Video Generation
Version: 2.0.0
Last Updated: 2026-04-15
Author: Alex (Master Alex)
Source: Patterns from AlexVideos CLI toolkit
Related: image-handling (images), text-to-speech (audio)
Overview
Generate AI videos using 17 cloud models on Replicate. Supports text-to-video, image-to-video, video editing, and talking-head workflows.
Model Catalog (17 Models)
| Key | Model | Replicate ID | Duration | Audio | Cost |
|---|
veo3fast | Veo 3.1 Fast | google/veo-3.1-fast | 4/6/8s | โ
Auto | $0.10โ0.15/sec |
veo3 | Veo 3.1 | google/veo-3.1 | 4/6/8s | โ
Auto | $0.20โ0.40/sec |
grok | Grok Video | xai/grok-imagine-video | 1โ15s | โ
Lip-sync | $0.05/sec |
gen45 | Gen-4.5 Runway | runwayml/gen-4.5 | 5โ10s | โ | $0.12/sec |
kling | Kling v3 | kwaivgi/kling-v3-video | 3โ15s | Optional | $0.17โ0.22/sec |
kling26 | Kling v2.6 | kwaivgi/kling-v2.6 | 5โ10s | โ
Auto | variable |
kling3omni | Kling v3 Omni | kwaivgi/kling-v3-omni-video | 3โ15s | โ | variable |
sora | Sora-2 | openai/sora-2 | 4โ12s | โ
Auto | $0.10/sec |
sora2pro | Sora-2 Pro | openai/sora-2-pro | 4/8/12s | โ
Auto | $0.30โ0.50/sec |
seedance | Seedance Lite | bytedance/seedance-1-lite | 2โ12s | โ | $0.036/sec |
seedpro | Seedance Pro | bytedance/seedance-1-pro | 2โ12s | โ | $0.15/sec |
pixverse | PixVerse v5.6 |
Parameter Support Matrix
| Model | prompt | duration | image | aspect | resolution | negative | audio |
|---|
veo3fast | โ
| 4/6/8 | โ
| โ
| โ
| โ
| โ
auto |
veo3 | โ
| 4/6/8 | โ
| โ
| โ
| โ
| โ
auto |
grok | โ
| 1โ15 | โ
| โ
| โ
| โ | โ
auto |
gen45 | โ
| 5โ10 | โ
| โ
| โ | โ | โ |
kling | โ
| 3โ15 | โ
| โ
| โ
(mode) | โ
| optional |
kling26 | โ
| 5โ10 | โ
| โ
| โ | โ
| โ
auto |
kling3omni | โ
| 3โ15 | โ
| โ
| โ
(mode) | โ | โ |
sora | โ
| 4โ12 | โ
| โ
|
Notes:
- Fixed values (e.g., 5/9) mean only those exact values accepted
- Ranges (e.g., 3โ15) accept any integer in range
- Sora models use "portrait"/"landscape" internally (mapped from 9:16/16:9)
Model Selection Guide
| Need | Model | Why |
|---|
| Default / Quick preview | veo3fast | Best balance: speed, quality, cost |
| Talking head / lip-sync | grok, kling26 | Grok: best lip-sync; Kling26: best motion |
| High quality cinematic | sora2pro, veo3 | Premium quality, synced audio |
| Image animation | kling, gen45 | Strong image-to-video |
| Budget production | rayflash, seedance | Cheapest per-second |
| Longest duration (15s) | grok, kling | Only models supporting 15s |
| Real-world physics | hailuo, hailuo23 | Physics simulation, VFX |
Talking-Head Video Workflow
Proven pipeline for generating a person speaking to camera with synchronized speech:
node scripts/generate-image.js "A 26-year-old professional in studio" --model nanapro --image ref.png
node scripts/generate-video.js "Person looking directly into camera, speaking confidently" --model kling26 --image aged.jpg --duration 10
node scripts/generate-voice.js "[script]" --model mm28turbo
node scripts/generate-edit-video.js --model avmerge --video clip.mp4 --audio speech.mp3
Model notes:
kling26 โ Best overall motion quality for talking-head i2v
grok โ Best lip sync, but no native audio (requires avmerge)
veo3fast / sora โ May flag real-person reference photos
Prompt pattern:
"A sharp [age]-year-old [description] looking directly into camera, speaking to the audience about [topic]. Calm, confident, broadcast-quality delivery. Professional studio lighting."
Video Editing (10 Models)
| Key | Model | Purpose | Cost |
|---|
modify | Luma Modify | AI video style transfer | variable |
reframe | Luma Reframe | AI crop to new aspect ratio | $0.06/sec |
trim | Trim Video | Extract segment by time | <$0.001 |
merge | Video Merge | Concatenate videos | variable |
avmerge | ffmpeg-static | Combine audio + video | free (local) |
extract | Extract Audio | Strip audio from video | variable |
frames | Frame Extractor | Export frames as images | <$0.001 |
upscale | Real-ESRGAN | AI upscale to 4K | ~$0.46 |
caption | AutoCaption | Auto subtitles | ~$0.07 |
utils | Video Utils | Convert, misc ops | <$0.002 |
Generation Workflows
Text-to-Video
import Replicate from "replicate";
const replicate = new Replicate();
const output = await replicate.run("google/veo-3.1-fast", {
input: {
prompt: "A person walking through a futuristic city at sunset, cinematic lighting",
duration: 5,
},
});
console.log("Video URL:", output);
Image-to-Video (Animation)
import { readFileSync } from "fs";
const output = await replicate.run("kwaivgi/kling-v3-video", {
input: {
prompt: "Gentle wind blowing through hair, subtle movement",
image: readFileSync("source-image.png"),
duration: 5,
},
});
Talking Head with Lip-Sync
const output = await replicate.run("xai/grok-imagine-video", {
input: {
prompt: "Person speaking to camera with natural expressions",
audio: readFileSync("narration.mp3"),
duration: 10,
},
});
Quality Guidelines
Prompt Engineering
| Element | Good Example | Avoid |
|---|
| Camera motion | "slow dolly forward", "tracking shot" | "camera moves" |
| Lighting | "golden hour", "dramatic side lighting" | "good lighting" |
| Style | "cinematic 4K", "documentary style" | "nice video" |
| Subject | "a person with short brown hair" | "someone" |
| Action | "walking slowly through", "gesturing while talking" | "doing something" |
Duration Selection
| Duration | Use Case | Model Recommendation |
|---|
| 2-4s | Loop, GIF replacement | veo-3.1-fast |
| 5-8s | Short clip, social media | veo-3.1-fast, kling-v3 |
| 10-15s | Story segment, talking head | grok-video, sora-2 |
Resolution
- Most models default to 720p or 1080p
- Kling v3 supports explicit 1080p
- Higher resolution = longer generation time
Audio Handling
Models with Built-in Audio
| Model | Audio Type | Notes |
|---|
| veo-3.1-fast | Auto-generated | Ambient sounds from scene |
| grok-video | Lip-sync | Syncs mouth to provided audio |
| sora-2 | Synced | High-quality scene audio |
Adding Audio Post-Generation
For models without audio, combine with TTS:
const video = await replicate.run("kwaivgi/kling-v3-video", {
input: { prompt: "...", duration: 5 },
});
const audio = await replicate.run("minimax/speech-2.8-turbo", {
input: { text: "Narration text", voice: "Wise_Woman" },
});
Cost Estimation
| Model | 5s clip | 10s clip | 15s clip |
|---|
| veo-3.1-fast | ~$0.15 | ~$0.30 | N/A (8s max) |
| grok-video | ~$0.25 | ~$0.50 | ~$0.75 |
| minimax-video | ~$0.25 | ~$0.50 | N/A (6s max) |
| kling-v3 | varies | varies | varies |
| sora-2 | premium | premium | premium |
Output Handling
Download Video
import { writeFileSync } from "fs";
const response = await fetch(output);
const buffer = await response.arrayBuffer();
writeFileSync("output.mp4", Buffer.from(buffer));
Verify Quality
ffprobe -v quiet -print_format json -show_format -show_streams output.mp4
Error Handling
| Error | Cause | Solution |
|---|
| Generation timeout | Complex prompt | Simplify, reduce duration |
| NSFW rejection | Content policy | Adjust prompt |
| Low quality output | Vague prompt | Add specific details |
| Audio desync | Wrong model | Use lip-sync model |
Integration with Studio Agents
- Image Studio: Generates source images for image-to-video
- Audio Studio: Creates narration for post-hoc audio
- Visual Memory: Stores reference images/videos