film-maker-skill
# Film Maker Skill
What this skill does
# Film Maker Skill
Orchestrate AI film production using Nano Banana (images), Eleven Labs (audio), FAL (video), and FFmpeg (assembly).
## Overview
This skill coordinates the full AI film production pipeline:
```
Script/Idea
↓
[nano-banana] → Storyboard frames / scenes
↓
[eleven-labs] → Voiceover / dialogue / SFX
↓
[fal-video] → Animate frames into video (Kling, Luma, etc.)
↓
[ffmpeg] → Assemble final film
```
## Prerequisites
### Required Skills
- `nano-banana-pro` - Image generation
- `eleven-labs-skill` - Voice/audio generation
- `fal-video-skill` - Video generation (Kling, Luma, Minimax, etc.)
### Required Tools
- `ffmpeg` - Video assembly (install via `brew install ffmpeg`)
### Check Dependencies
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py check
```
## Quick Start
### 1. Create a Project
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py new "My Epic Short"
```
### 2. Generate Storyboard Frames
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py frame \
"A lone astronaut on Mars, looking at Earth in the sky, cinematic lighting" \
--project my_epic
```
### 3. Generate Audio
```bash
# Voiceover
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py audio \
--text "I never thought I'd see home again..." \
--voice "Josh" \
--project my_epic
# Sound effect
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py audio \
--sfx "wind howling on barren planet" \
--duration 10 \
--project my_epic
```
### 4. Animate Frames
```bash
# Using Kling (default, best quality)
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate \
projects/my_epic_*/images/frame_001.png \
--prompt "slow camera push in, dust particles floating" \
--duration 5 \
--project my_epic
# Using Luma
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate \
projects/my_epic_*/images/frame_001.png \
--model luma \
--prompt "gentle parallax movement" \
--project my_epic
```
### 5. Assemble Final Film
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py assemble my_epic
```
## Commands
### Check Dependencies
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py check
```
### Create New Project
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py new "Project Name"
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py new "Project Name" --resolution 4K --fps 30
```
### Generate Storyboard Frame
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py frame "prompt" --project name
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py frame "prompt" --style cinematic --aspect-ratio 21:9
```
### Generate Audio
```bash
# Speech/voiceover
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py audio --text "Dialogue here" --voice "Rachel"
# Sound effects
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py audio --sfx "explosion in distance" --duration 5
```
### Animate Image to Video
```bash
# Default (Kling)
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate image.png --prompt "motion description"
# With model selection
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate image.png --model kling-pro --prompt "cinematic motion"
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate image.png --model luma --prompt "dreamy movement"
# Auto-save to project
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py animate image.png --prompt "motion" --project my_film
```
**Available video models:**
- `kling` - Best quality (default)
- `kling-pro` - Highest quality, slower
- `luma` - Luma Dream Machine, artistic
- `minimax` - Good for longer clips
### Assemble Final Film
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py assemble project_name
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py assemble project_name --no-audio
```
### List Projects
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py projects
```
### Show Workflow Guide
```bash
python3 ~/.claude/skills/film-maker-skill/film_maker_skill.py workflow
```
## Project Structure
```
projects/
└── my_film_20260202/
├── project.json # Project config
├── script.md # Your screenplay
├── images/ # Generated frames
├── audio/ # Generated audio
├── video/ # Animated clips
└── output/ # Final film
```
## Production Tips
### Visual Consistency
- Use consistent style keywords across all frame prompts
- Example: Always include "cinematic, shallow depth of field, 35mm film"
### Audio Layering
- Generate dialogue first, then ambient sounds
- Use shorter SFX clips and loop them in post
### Motion Prompts (for animate command)
Good animation prompts:
- "subtle camera drift to the right"
- "character blinks and turns head slowly"
- "clouds moving in background, gentle movement"
- "slow zoom in, atmospheric"
- "parallax depth effect, foreground/background separation"
Avoid:
- Vague prompts like "make it move"
- Too many simultaneous actions
### Pacing
- Keep clips 3-6 seconds for good pacing
- Vary shot lengths for visual interest
- Generate more than you need, select the best
## Adding Music
After assembly, add background music:
```bash
ffmpeg -i film.mp4 -i music.mp3 -c:v copy -c:a aac -shortest final_with_music.mp4
```
Or generate music with Suno:
```bash
python3 ~/.claude/skills/suno-music/suno_skill.py generate "epic cinematic orchestral" --instrumental
```
## Example: 30-Second Film
```bash
# 1. Create project
python3 film_maker_skill.py new "Dawn"
# 2. Generate 6 frames (5 sec each = 30 sec)
python3 film_maker_skill.py frame "sunrise over mountains, mist, cinematic" --project dawn
python3 film_maker_skill.py frame "deer in meadow, golden hour light" --project dawn
python3 film_maker_skill.py frame "river flowing through forest, peaceful" --project dawn
python3 film_maker_skill.py frame "eagle soaring over valley" --project dawn
python3 film_maker_skill.py frame "sun fully risen, bright blue sky" --project dawn
python3 film_maker_skill.py frame "fade to white, peaceful ending" --project dawn
# 3. Generate voiceover
python3 film_maker_skill.py audio --text "Every day brings new light. New hope. New beginnings." --voice "Josh" --project dawn
# 4. Animate each frame (with auto-save to project)
python3 film_maker_skill.py animate projects/dawn_*/images/frame_1.png --prompt "slow zoom out, mist rising" --project dawn
# ... repeat for each frame
# 5. Assemble
python3 film_maker_skill.py assemble dawn
```
## Requirements
```
# Core dependencies are in the individual skills
# This skill just needs Python 3.9+ and ffmpeg
```
## API Keys Required
- **Eleven Labs**: Set up in eleven-labs-skill
- **FAL**: Set up in fal-video-skill (`python3 fal_video_skill.py config YOUR_KEY`)
- **Gemini** (for nano-banana): Set up in nano-banana-pro
## Security Notes
- Uses existing skill configurations
- Project files stored in `~/.claude/skills/film-maker-skill/projects/`
#film #video #production #ai #creative
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.