--- name: "venice-video-generate" description: "Generate complete video from prompt to saved file in single operation. Handles queue, poll, retrieve, save with progress logging." version: "1.0.0" author: "Agent JAE" tags: - venice - api - video - generation - complete - text-to-video - image-to-video trigger_patterns: - "generate video" - "create video" - "make video" - "video from prompt" - "text to video" - "image to video" --- # Venice Video Generate (Full Lifecycle) Generate complete video from prompt to saved file in a single operation. ## When to Use Use this skill when you need to: - Generate video from text prompt (text-to-video) - Generate video from image (image-to-video) - Complete video generation with automatic polling and saving **This is the recommended approach** - it combines queue + poll + retrieve + save into one call. ## Usage ### Quick Start (Text-to-Video) ```bash python ~/.jae/agent/skills/venice-video-generate/scripts/generate_video.py "A cat playing piano" ``` ### With Options ```bash python ~/.jae/agent/skills/venice-video-generate/scripts/generate_video.py "Ocean waves at sunset" \ --model kling-2.6-pro-text-to-video \ --duration 10s \ --resolution 1080p ``` ### Image-to-Video ```bash python ~/.jae/agent/skills/venice-video-generate/scripts/generate_video.py "Make this image come alive" \ --image /path/to/image.png \ --model wan-2.5-preview-image-to-video ``` ## Progress Logging (Every 20 Seconds) ``` [14:32:15] START: Queueing video generation with model: wan-2.5-preview-text-to-video [14:32:15] CONFIG: duration=5s, resolution=720p, aspect_ratio=16:9 [14:32:16] QUEUED: queue_id=abc123-def456 [14:32:36] PROGRESS: 20s elapsed | [====----------------] 25% | ETA: 45s | status: processing [14:32:56] PROGRESS: 40s elapsed | [==========----------] 55% | ETA: 25s | status: processing [14:33:16] PROGRESS: 60s elapsed | [================----] 85% | ETA: 8s | status: processing [14:33:21] COMPLETE: Video saved to /root/venice_videos/video_20260131_143321_abc123.mp4 ``` ## Result Output ``` ====================================================================== RESULT: SUCCESS VIDEO_PATH: /root/venice_videos/video_20260131_143321_abc123.mp4 ELAPSED_SECONDS: 65.3 QUEUE_ID: abc123-def456-... MODEL: wan-2.5-preview-text-to-video ====================================================================== ``` ## Common Options | Option | Default | Description | |--------|---------|-------------| | --model, -m | wan-2.5-preview-text-to-video | Venice model ID | | --duration, -d | 5s | Video duration (5s, 10s, etc.) | | --resolution, -r | 720p | Video resolution | | --aspect-ratio, -a | 16:9 | Aspect ratio (16:9, 9:16, 1:1) | | --audio | off | Enable audio generation | | --image, -i | none | Input image (for image-to-video) | | --output, -o | auto | Custom output path | | --max-wait | 900 | Max wait seconds (15 min) | ## Model Selection ### Text-to-Video - `wan-2.5-preview-text-to-video` - Default, fast, good quality - `kling-2.6-pro-text-to-video` - Higher quality, slower - `veo3.1-full-text-to-video` - Google Veo, excellent but expensive ### Image-to-Video - `wan-2.5-preview-image-to-video` - Fast, reliable - `veo3.1-full-image-to-video` - Premium quality ## Expected Generation Times | Model Type | 5s Video | 10s Video | |------------|----------|----------| | Wan 2.5 | 30-60s | 60-120s | | Kling 2.6 Pro | 60-120s | 120-240s | | Veo 3.1 | 90-180s | 180-360s | ## Python Import ```python import sys sys.path.insert(0, '~/.jae/agent/skills/venice-video-generate/scripts') from generate_video import generate_video, GenerationResult result = generate_video( prompt="A beautiful sunset over mountains", model="wan-2.5-preview-text-to-video", duration="5s", verbose=True ) if result.success: print(f"Video saved: {result.video_path}") else: print(f"Failed: {result.error}") ``` ## Default Output Directory `/root/venice_videos/` (auto-created) ## Requirements - `VENICE_API_KEY` environment variable