Slideshow Video Agent
Creates professional video presentations with:
- Static slides - AI-generated images that remain still while voiceover plays
- Animated transitions - Cinematic motion graphics between slides (the only animated part)
- Voiceover narration - Professional TTS audio over static slides
- Brand consistency - Reference images (logos, colors) applied to all slides
Output Format
[Static Slide 1] --> [Animated Transition] --> [Static Slide 2] --> ...
+ voiceover 2-3 seconds + voiceover
Final output: MP4 video file
Prerequisites
Before generating, verify:
- FAL_KEY in
.envfile (get from https://fal.ai/dashboard/keys) - FFmpeg installed and in PATH
- Python packages: fal-client, requests, python-dotenv
Check prerequisites:
from scripts import print_prerequisites_status
print_prerequisites_status()
Available Reference Images
Located in Reference Images/ folder:
- Abonmarche Primary Logo Full Color Transparent BG.png
- Abonmarche A Transparent BG.png
- COP Logo.png
Workflow
Step 1: Gather Information
Ask the user for:
- Topic/subject of the presentation
- Number of slides (default: 5)
- Voice - George (default), Aria, Rachel, Sam, Charlie, Emily
- Transition style - cinematic (default), zoom_blur, swipe, shatter, particles, morph, flip, wave
- Reference images - which images from Reference Images folder to use for branding
Step 2: Generate Slide Content
For each slide, define:
- title: Heading text displayed on slide
- visual_description: Detailed description of what the slide should look like
- narration: Script for the voiceover (what will be spoken)
Example for 3 slides:
slides = [
Slide(
title="Welcome to Abonmarche",
visual_description="Professional title slide with Abonmarche logo prominently displayed, clean modern design with brand blue colors",
narration="Welcome to Abonmarche. Today we will explore our engineering services and commitment to excellence."
),
Slide(
title="Our Services",
visual_description="Clean infographic showing engineering services: civil, survey, environmental. Icons and professional layout matching Abonmarche brand",
narration="Abonmarche offers comprehensive engineering services including civil engineering, land surveying, and environmental consulting."
),
Slide(
title="Contact Us",
visual_description="Contact information slide with Abonmarche logo, website, phone number. Professional closing slide design",
narration="Thank you for learning about Abonmarche. Visit our website or call us to discuss your next project."
),
]
Step 3: Create Configuration
from scripts import PresentationConfig, Slide
config = PresentationConfig(
slides=slides,
voice="George",
transition_style="cinematic",
transition_duration=2.5,
reference_images=[
"Reference Images/Abonmarche Primary Logo Full Color Transparent BG.png"
],
output_path="./output/presentation.mp4"
)
Step 4: Generate Video
from scripts import create_slideshow_video
result = create_slideshow_video(config)
print(f"Video saved: {result}")
Voice Options
| Voice | Description | |-------|-------------| | George | Professional male (default) | | Aria | Professional female, warm | | Rachel | Conversational female | | Sam | Young male, energetic | | Charlie | Neutral, authoritative | | Emily | Soft female, calming |
See references/voice_options.md for details.
Transition Styles
| Style | Effect | |-------|--------| | cinematic | Elegant dissolve with particles (default) | | zoom_blur | Dynamic rush toward camera | | swipe | Horizontal 3D parallax | | shatter | Elements break apart | | particles | Dissolve into swirling particles | | morph | Organic transformation | | flip | 3D card flip | | wave | Ripple effect |
See references/transition_styles.md for details.
Cost Estimate
| Item | Cost | |------|------| | Slides | $0.15/image | | Voiceovers | ~$0.30/1000 chars | | Transitions | $0.35/video |
5-slide presentation: ~$2.65-3.00
from scripts import estimate_cost
print(estimate_cost(num_slides=5))
Example Prompts That Trigger This Skill
- "Create a presentation about renewable energy"
- "Make a slideshow video for our quarterly update"
- "Generate a video presentation with the Abonmarche logo"
- "Build a training video about workplace safety"
- "Create an animated pitch deck for our new product"
- "Make me a 5-slide presentation on civil engineering"
JSON Configuration
Alternatively, use JSON config file:
{
"voice": "George",
"transition_style": "cinematic",
"reference_images": [
"Reference Images/Abonmarche Primary Logo Full Color Transparent BG.png"
],
"output_path": "./output/presentation.mp4",
"slides": [
{
"title": "Welcome",
"visual": "Title slide with logo",
"narration": "Welcome to our presentation."
}
]
}
Run with:
from scripts import run_from_json
result = run_from_json("presentation_config.json")
Reference Files
references/voice_options.md- Voice descriptions and recommendationsreferences/transition_styles.md- Transition effects and usagereferences/workflow_guide.md- Complete workflow and troubleshootingreferences/api_reference.md- fal.ai API parameters and responses
Scan to join WeChat group