← スキル一覧に戻る
genai-video
Onward-Technologies / onward-google-genai
⭐ 0🍴 0📅 2026年1月15日
Generate videos using Google GenAI Veo 3.1 model via CLI. Use when the user asks to create videos, generate animations, make AI video content, do image-to-video transformations, interpolate between frames, or create cinematic shots with camera movement.
SKILL.md
--- name: genai-video description: Generate videos using Google GenAI Veo 3.1 model via CLI. Use when the user asks to create videos, generate animations, make AI video content, do image-to-video transformations, interpolate between frames, or create cinematic shots with camera movement. --- # GenAI Video Generation Skill Generate videos using the `genai-cli video` command with Veo 3.1. **Uses fast mode by default** ($0.15/sec) for quick generation. Use `--quality-mode` for higher quality output ($0.40/sec). ## Quick Start ```bash # Basic video generation (async - returns job ID) uv run genai-cli video "sunset over ocean, gentle waves" # Wait for completion (blocking) uv run genai-cli video "sunset over ocean" --wait # Image-to-video (use existing image as starting frame) uv run genai-cli video "camera pullback revealing the scene" --input ./image.png --wait # First/last frame interpolation uv run genai-cli video "smooth morph transition" --input ./start.png --last-frame ./end.png --wait ``` ## CLI Reference ``` uv run genai-cli video [OPTIONS] PROMPT Options: --aspect, -a Aspect ratio: 16:9 or 9:16 (default: 16:9) --duration, -d Duration in seconds: 4, 6, or 8 (default: 8) --resolution, -r Resolution: 720p, 1080p, or 4k (default: 720p) --seed, -s Random seed for reproducibility --audio Generate video with audio --wait, -w Wait for completion (blocking mode) --input, -i First frame image for image-to-video --last-frame, -l Last frame image (requires --input) --negative, -n What NOT to include in video --ref Reference images for style (up to 3, 16:9 only) --ref-type Reference image type: style (aesthetic) or asset (character/object) --extend, -e Video file URI to extend --person-gen Person generation: allow_all or allow_adult --quality-mode Use quality model (slower, higher quality, $0.40/sec) --enhance Auto-improve prompt for better video quality --fps Frames per second (e.g., 24 for cinematic, 60 for smooth) --compression Compression quality: optimized (smaller) or lossless (larger) --variations, -v Number of video variations to generate (1-4) --mask, -m Mask image for targeted editing (requires --input) --mask-mode Mask mode: insert, remove, remove-static, outpaint --output, -o Output directory (default: ./genai_outputs/) --json Output as JSON ``` ## Model Modes ### Fast Mode (Default) Uses `veo-3.1-fast-generate-preview` model at $0.15/second. Optimized for speed and business use cases. ```bash uv run genai-cli video "sunset over ocean" --wait ``` ### Quality Mode Uses `veo-3.1-generate-preview` model at $0.40/second. Higher quality output for premium content. ```bash uv run genai-cli video "cinematic sunset scene" --quality-mode --wait ``` ## Prompt Enhancement Auto-improve your prompts for better video quality: ```bash # Let the model enhance your simple prompt uv run genai-cli video "sunset" --enhance --wait ``` ## Frame Rate Control (FPS) Control frames per second for different effects: ```bash # Cinematic 24fps (film-like) uv run genai-cli video "dramatic scene" --fps 24 --wait # Standard 30fps uv run genai-cli video "product demo" --fps 30 --wait # Smooth 60fps (action/sports) uv run genai-cli video "slow motion water" --fps 60 --wait ``` ## Compression Quality Control file size vs quality tradeoff: ```bash # Optimized - smaller file size (default behavior) uv run genai-cli video "social media clip" --compression optimized --wait # Lossless - larger file, no quality loss (for archival/editing) uv run genai-cli video "product demo" --compression lossless --wait ``` ## Multiple Variations Generate multiple video variations from the same prompt: ```bash # Generate 3 different versions uv run genai-cli video "abstract animation" --variations 3 --wait # Generate 4 variations for A/B testing uv run genai-cli video "hero scene" --variations 4 --wait ``` ## Modes ### Async Mode (Default) Returns immediately with a job ID: ```bash uv run genai-cli video "flying through clouds" # Output: Job ID: models/veo-3.1.../operations/abc123 ``` ### Blocking Mode (--wait) Waits for video to complete and downloads it: ```bash uv run genai-cli video "flying through clouds" --wait # Output: ✓ Saved: genai_outputs/video_20260114_123456_1.mp4 (2.1 MB) ``` ## Image-to-Video Use an existing image as the starting frame for your video: ```bash # Camera pullback from an image uv run genai-cli video "Dramatic camera pullback revealing the full scene" \ --input ./my_image.png \ --aspect 9:16 \ --wait # Animate a still image uv run genai-cli video "Gentle movement, hair blowing in wind" \ --input ./portrait.png \ --wait ``` ## First & Last Frame Interpolation Generate videos by specifying both the starting and ending frames. The model interpolates smooth motion between them: ```bash # Morph between two images uv run genai-cli video "Smooth transition with dramatic lighting" \ --input ./start_frame.png \ --last-frame ./end_frame.png \ --wait # Scene transformation uv run genai-cli video "Day transforms to night, cinematic transition" \ --input ./day_scene.png \ --last-frame ./night_scene.png \ --aspect 16:9 \ --wait ``` **Requirements:** - Both images must match the video's aspect ratio - `--last-frame` requires `--input` (first frame) to be set - Duration defaults to 8 seconds for interpolation ## Reference Images for Style/Assets Use up to 3 reference images to guide the video. Two reference types are available: ### Style References (Default) Transfer aesthetic elements like colors, lighting, and visual style: ```bash # Style-guided generation (default) uv run genai-cli video "A person walking through a forest" \ --ref ./style1.png --ref ./style2.png \ --ref-type style \ --aspect 16:9 \ --wait ``` ### Asset References Maintain character or object consistency across scenes: ```bash # Character consistency uv run genai-cli video "The character walks through a city" \ --ref ./character_front.png --ref ./character_side.png \ --ref-type asset \ --aspect 16:9 \ --wait # Object consistency uv run genai-cli video "The product rotates on display" \ --ref ./product_view1.png --ref ./product_view2.png \ --ref-type asset \ --aspect 16:9 \ --wait ``` **Note:** Reference images only work with 16:9 aspect ratio and require duration of 8 seconds. ## Video Extension Extend a previously generated Veo video: ```bash # Extend an existing video uv run genai-cli video "Continue the scene with more action" \ --extend "files/video-file-id" \ --wait ``` **Note:** Extension requires duration of 8 seconds. ## Negative Prompts Specify what NOT to include in your video: ```bash uv run genai-cli video "A serene beach scene" \ --negative "people, crowds, text, watermarks" \ --wait ``` ## Person Generation Control Control how people are generated in videos: ```bash # Allow all person generation (text/extension mode) uv run genai-cli video "People walking in park" \ --person-gen allow_all \ --wait # Allow adult-only generation (image/interpolation/references) uv run genai-cli video "Professional meeting" \ --input ./office.png \ --person-gen allow_adult \ --wait ``` ## Audio Generation Generate videos with synchronized audio: ```bash uv run genai-cli video "Ocean waves crashing on beach with seagulls" \ --audio \ --wait ``` ## Resolution & Duration ### High Resolution (1080p/4K) ```bash # 1080p requires 8s duration uv run genai-cli video "Cinematic landscape" \ --resolution 1080p \ --duration 8 \ --wait # 4K also requires 8s duration uv run genai-cli video "Ultra HD nature scene" \ --resolution 4k \ --duration 8 \ --wait ``` ### Duration Options ```bash # 4 seconds uv run genai-cli video "Quick action shot" --duration 4 --wait # 6 seconds uv run genai-cli video "Medium scene" --duration 6 --wait # 8 seconds (default, required for 1080p/4K/extension/references) uv run genai-cli video "Full scene" --duration 8 --wait ``` ## Camera Movement Prompts For image-to-video, describe the camera movement: | Movement | Prompt Example | |----------|----------------| | Pullback | "Camera slowly pulls back to reveal the scene" | | Push in | "Camera pushes in toward the subject" | | Pan | "Camera pans left across the scene" | | Tilt | "Camera tilts up to show the sky" | | Dolly | "Smooth dolly shot moving parallel to subject" | | Crane | "Crane shot rising above the scene" | | Static | "Subtle movement, subject remains still" | ## Video Masking (Targeted Editing) Use masks to edit specific regions of videos: ### Insert Mode Add new objects into a masked region: ```bash uv run genai-cli video "add a butterfly flying" \ --input ./scene.png \ --mask ./butterfly_area_mask.png \ --mask-mode insert \ --wait ``` ### Remove Mode Remove tracked objects from video (tracks object through frames): ```bash uv run genai-cli video "remove the car smoothly" \ --input ./street_scene.png \ --mask ./car_mask.png \ --mask-mode remove \ --wait ``` ### Remove-Static Mode Remove static objects (watermarks, logos, fixed elements): ```bash uv run genai-cli video "clean background" \ --input ./video_frame.png \ --mask ./watermark_mask.png \ --mask-mode remove-static \ --wait ``` ### Outpaint Mode Expand the video beyond its original frame: ```bash uv run genai-cli video "expand the landscape view" \ --input ./cropped_scene.png \ --mask ./outpaint_mask.png \ --mask-mode outpaint \ --wait ``` **Mask Requirements:** - Mask must be same dimensions as input image - White areas (255) = region to modify - Black areas (0) = region to preserve - `--mask` requires `--input` (first frame image) ## Output Videos are saved to `./genai_outputs/` by default: - `video_YYYYMMDD_HHMMSS_1.mp4` ## Prompt Tips 1. **Describe movement**: "Camera slowly pulls back", "Gentle zoom in" 2. **Include atmosphere**: "Moody lighting", "Dust particles in air" 3. **Use audio cues**: With `--audio`, describe sounds in prompt 4. **Be cinematic**: "Dramatic", "Cinematic", "Film-like" 5. **Use negative prompts**: Exclude unwanted elements with `--negative` ## API Constraints | Feature | Constraint | |---------|------------| | 1080p/4K resolution | Requires duration = 8 | | Reference images | Requires 16:9 aspect, duration = 8 | | Video extension | Requires duration = 8 | | Reference images | Max 3 images | ## Prerequisites API key must be configured: ```bash uv run genai-cli auth set-key ```