Our review
Transforms a sentence or image into a complete 30-second cinematic film with a professional screenplay.
Strengths
- Automatic generation of structured screenplay with visual descriptions
- Multi-scene video production with narrative consistency
- Final assembly precisely timed to 30 seconds
Limitations
- Requires AI Gateway API key and external tools (Node.js, FFmpeg)
- Quality depends on the chosen video generation model
- May not handle highly abstract concepts or very specific styles
Use this skill to quickly create a short narrative video from a simple idea or an image.
Do not use it for long videos, projects requiring precise editing, or if you lack the technical prerequisites.
Security analysis
SafeThe skill runs Node.js scripts to generate screenplays and produce videos via external AI services. Bash is used only to invoke these scripts with controlled parameters. No destructive commands, obfuscated payloads, data exfiltration, or safety bypasses are present. The use of ffmpeg is standard for video assembly and poses no additional risk.
No concerns found
Examples
Create a film: A lonely robot discovers the last flower on EarthTake this image and transform it into a cinematic story: /path/to/concept_art.jpgname: film-creator description: | AI-powered film creation assistant that transforms a single sentence or image into a complete 30-second film. Automatically generates screenplay with scenes, dialogue, and camera directions, then produces cinematic video. Use when user wants to create a movie, film, or video story from text or image input. Trigger phrases: '创作电影', '生成电影', 'film creator', 'make a movie', 'create a film'. allowed-tools: Bash, Read, Write, Edit version: 1.0.0 license: MIT
Film Creator - AI Film Production Assistant
Transform a single idea or image into a complete 30-second cinematic film with professional screenplay and video generation.
Overview
This skill provides end-to-end film creation capabilities:
- Creative Analysis: Analyzes text prompt or image to extract core creative elements
- Screenplay Generation: Writes professional screenplay with scenes, dialogue, shot descriptions, and camera movements
- Scene Planning: Breaks screenplay into 5-6 scenes (5 seconds each) optimized for video generation
- Video Production: Generates high-quality video for each scene using AI Gateway
- Film Assembly: Combines scenes into a cohesive 30-second film with transitions
Prerequisites
Required Environment Variable:
AI_GATEWAY_API_KEY: Your AI Gateway API key (automatically configured in HappyCapy)
Required Tools:
- Node.js 24+ (pre-installed in HappyCapy)
- FFmpeg (pre-installed in HappyCapy)
Quick Start
Create a Film from Text
node scripts/create_film.js "A lonely robot discovers the last flower on Earth"
Create a Film from Image
node scripts/create_film.js --image "/path/to/image.jpg" "Transform this into a cinematic story"
Create a Film with Custom Settings
node scripts/create_film.js \
"A time traveler's final journey" \
--model "openai/sora-2" \
--aspect-ratio "16:9" \
--output "my_film.mp4"
Features
Screenplay Generation
- Story Structure: Three-act structure adapted for 30-second format
- Scene Breakdown: 5-6 distinct scenes with clear transitions
- Visual Descriptions: Detailed shot compositions and camera movements
- Cinematic Language: Professional terminology (establishing shot, close-up, tracking shot, etc.)
- Emotional Arc: Clear beginning, middle, and end with emotional progression
Video Generation
- Multi-Scene Production: Generates 5-6 individual scenes
- Cinematic Quality: Uses professional video generation models
- Smart Prompting: Converts screenplay into optimized video generation prompts
- Continuity: Maintains visual consistency across scenes
Film Assembly
- Scene Stitching: Seamlessly combines individual scenes
- Transitions: Smooth cuts or fade transitions between scenes
- Duration Control: Precisely timed to 30 seconds total
- Quality Preservation: No re-encoding loss
Supported Models
Recommended for Film Creation
| Model | Best For | Duration per Scene |
|-------|----------|-------------------|
| google/veo-3.1-generate-preview | Balanced quality and reliability (Recommended) | 5-6 seconds |
| openai/sora-2 | Cinematic quality with complex scenes | 4-6 seconds |
| openai/sora-2-pro | Professional-grade cinematic output | 4-6 seconds |
| byteplus/seedance-1-0-pro | Flexible aspect ratios | 5-6 seconds |
Usage Examples
Basic Film Creation
# From a simple concept
node scripts/create_film.js "A cat astronaut explores a distant planet"
# With specific genre
node scripts/create_film.js "A noir detective story set in the rain"
# From an uploaded image
node scripts/create_film.js --image "concept_art.jpg" "Make this into an epic adventure"
Advanced Options
# Use premium model for highest quality
node scripts/create_film.js \
"An emotional reunion at a train station" \
--model "openai/sora-2-pro" \
--output "reunion.mp4"
# Create vertical video for mobile
node scripts/create_film.js \
"A day in the life of a street performer" \
--aspect-ratio "9:16" \
--model "byteplus/seedance-1-0-pro"
# Generate only the screenplay
node scripts/generate_screenplay.js "A magical library where books come alive"
Workflow
Step 1: Creative Analysis
The system analyzes your input (text or image) to identify:
- Core concept and theme
- Emotional tone
- Visual style
- Key story elements
Step 2: Screenplay Writing
Generates a professional screenplay including:
- Scene Headings: INT./EXT. location and time
- Action Lines: Visual descriptions of what happens
- Camera Directions: Shot types and movements
- Timing: Duration for each scene
Example screenplay output:
FADE IN:
EXT. ABANDONED CITY - DAY
WIDE ESTABLISHING SHOT: A desolate cityscape covered in rust and vines.
The sun casts long shadows through broken buildings.
A small ROBOT (weathered, curious) rolls through debris, its single eye
scanning the ground.
CLOSE-UP: The robot's sensors light up as it detects something.
LOW ANGLE: The robot stops at a crack in the concrete where a single
FLOWER blooms in brilliant red.
EXTREME CLOSE-UP: The robot's optical lens focuses on the flower,
reflecting its petals.
The robot extends a gentle mechanical hand, not to touch, but to protect.
FADE OUT.
Step 3: Scene-by-Scene Generation
Each scene is converted to an optimized video prompt:
- Camera angles and movements specified
- Visual details enhanced
- Lighting and mood emphasized
- Continuity elements maintained
Step 4: Video Assembly
All scenes are combined with:
- Frame-accurate stitching
- Optional transitions (cut/fade)
- Audio-ready format (MP4)
- Optimized compression
Command Reference
create_film.js (Main Script)
Parameters:
prompt(required): Text description or story concept--image PATH(optional): Image file to use as creative inspiration--model MODEL(optional): Video generation model (default: google/veo-3.1-generate-preview)--aspect-ratio RATIO(optional): Video aspect ratio (default: 16:9)--output PATH(optional): Output file path (default: generated_film.mp4)--no-assembly(optional): Generate scenes only, don't combine them--transition TYPE(optional): Transition type: "cut" or "fade" (default: cut)
generate_screenplay.js
Generate screenplay without video production:
node scripts/generate_screenplay.js "Your story concept" [--output screenplay.txt]
generate_scene.js
Generate a single scene from a prompt:
node scripts/generate_scene.js "Scene description with camera angles" [--model MODEL] [--duration SECONDS]
assemble_film.js
Combine pre-generated scene videos:
node scripts/assemble_film.js scene1.mp4 scene2.mp4 scene3.mp4 --output final.mp4
Best Practices
Writing Effective Prompts
Good prompts include:
- Clear genre or style ("noir film", "whimsical animation style")
- Emotional core ("a story about hope", "bittersweet reunion")
- Visual anchors ("neon-lit city", "misty forest")
- Character elements ("lonely protagonist", "mischievous creature")
Examples:
✓ "A cyberpunk story about a hacker who discovers they're an AI"
✓ "A heartwarming tale of a child's robot friend, Studio Ghibli style"
✓ "A suspenseful noir detective story in the rain at night"
✓ "An epic space opera battle with massive starships"
✗ "Make a video" (too vague)
✗ "Something cool" (no direction)
Model Selection
- Use Google Veo 3.1 for most projects - excellent balance of quality and reliability
- Use OpenAI Sora 2 Pro for highest cinematic quality and complex physics
- Use BytePlus Seedance when you need non-standard aspect ratios (1:1, 9:16, 21:9)
Image Input Tips
When using an image as input:
- Provide a complementary text prompt to guide the narrative
- The system will analyze visual elements (colors, composition, mood)
- Works best with conceptual or atmospheric images
- Character-focused images can become protagonists
Duration Optimization
- Each scene is 5 seconds for optimal storytelling pace
- 6 scenes = 30 seconds total
- This pacing allows for:
- Establishing shot
- Rising action
- Climax/key moment
- Resolution
- Emotional beat
- Closing image
Troubleshooting
"Generation timeout" or "Scene generation failed"
Video generation can take time. The script automatically waits up to 5 minutes per scene. If it fails:
- Try a simpler prompt for that scene
- Use a faster model (google/veo-3.1-fast-generate-preview)
- Check your internet connection
"FFmpeg error" during assembly
Ensure all scene files were generated successfully:
ls -lh scene_*.mp4
If some scenes are missing or corrupted, regenerate them individually:
node scripts/generate_scene.js "Scene description" --output scene_3.mp4
Poor visual continuity between scenes
The screenplay generator aims for continuity, but AI models may interpret scenes differently. To improve:
- Add more specific visual details in your prompt
- Specify a consistent color palette or lighting
- Use model-specific style references
"API key not found"
Set the environment variable:
export AI_GATEWAY_API_KEY="your-api-key-here"
Technical Details
Screenplay Format
The generated screenplay follows industry-standard formatting:
- Scene headings in caps
- Action lines in present tense
- Camera directions in caps or parentheses
- Timing notes for pacing
Video Specifications
- Format: MP4 (H.264)
- Resolution: Model-dependent (typically 1280x720 or 1920x1080)
- Frame Rate: 24-30 fps
- Duration: Exactly 30 seconds
- Aspect Ratios: 16:9, 9:16, or custom (model-dependent)
Assembly Process
Uses FFmpeg with:
- Lossless concatenation when possible
- Minimal re-encoding
- Frame-accurate cutting
- Preserved metadata
Examples Gallery
Example 1: Sci-Fi Short
Prompt: "A lonely robot discovers the last flower on Earth"
Generated Screenplay (abbreviated):
Scene 1: Wide shot of desolate cityscape
Scene 2: Robot character introduction
Scene 3: Discovery of flower (key moment)
Scene 4: Emotional close-up of robot's reaction
Scene 5: Robot protecting the flower
Scene 6: Hopeful closing image
Example 2: Fantasy Adventure
Prompt: "A young wizard's first spell goes wonderfully wrong"
Key Scenes:
- Establishing: Magic academy interior
- Character: Nervous student with wand
- Action: Spell casting with dramatic effects
- Consequence: Humorous magical mishap
- Reaction: Wizard's surprise and laughter
- Resolution: Acceptance and learning moment
Example 3: Noir Detective
Prompt: "A 1940s detective receives a mysterious case in the rain"
Style Elements:
- High contrast lighting (noir aesthetic)
- Rain effects and reflections
- Dramatic shadows
- Close-ups on key objects
- Moody, atmospheric tone
Integration with Other Skills
This skill works well with:
- generate-image: Create concept art before film production
- image-enhancer: Improve reference images
- video-frames: Extract keyframes from generated films for editing
Limitations
- Maximum duration: 30 seconds (by design)
- Scene count: 5-6 scenes (optimal for pacing)
- No dialogue audio (visual storytelling only)
- No custom music (silent film format)
- Limited character consistency across scenes (model limitation)
Future Enhancements
Potential additions:
- Background music generation and integration
- Text-to-speech for dialogue
- Extended duration options (60s, 90s)
- Multi-character tracking
- Style transfer between reference and generated scenes
- Storyboard visualization before generation
Credits
Built on top of:
- AI Gateway API (video generation)
- FFmpeg (video assembly)
- Node.js (orchestration)
License
MIT License - Free to use and modify
Content Repurposer
Content
Transforms a single piece of content into platform-adapted publications.
SEO Blog Post Writer
Content
Writes SEO-optimized blog posts with proper structure and keywords.
YouTube Script Writer
Content
Writes engaging YouTube scripts with hooks, structure, and retention.