slideshow-video · Photo Slideshow Video

A skill that turns existing photos into a finished video: a set of images gets Ken Burns slow-zoom motion, cross-image transitions, background music, and per-image captions — auto-fitted to vertical, square, or horizontal formats.
Everything runs through one deterministic script: frame math, transition offsets, and audio-video duration alignment are all encapsulated, no hand-built filter chains. Per-image duration, transition style, and BGM are configurable; aspect ratio must be confirmed before production.
Example invocation: "Turn these 20 travel photos into a vertical video, 3 seconds each, with background music."
Full brief
Positioning
slideshow-video does exactly one thing: turn photos you already have into a finished video. It generates no visuals, writes no scripts, and records no voiceover — it handles the "images → final cut" leg of deterministic assembly.
Core capabilities
- Ken Burns motion: each image gets slow zoom-and-pan drift instead of rigid slideshow cuts (can be disabled).
- Cross-image transitions: fade by default, plus hard cuts, wipes, circle-open, and more; transition length is auto-capped to the per-image duration.
- BGM handling: background music auto-loops to length, trims to the final cut, fades out at the end; without BGM a silent track is added for clean uploads.
- Per-image captions: one caption per image, with fewer captions than images allowed — no forced one-to-one mapping.
- Aspect-ratio fitting: vertical 1080×1920, square 1080×1080, horizontal 1920×1080.
- Deterministic script: everything runs through slideshow.py — no hand-built zoompan/xfade filter chains.
Workflow
- Provide images (an ordered list of paths, or a directory sorted by filename)
- Confirm aspect ratio (vertical/square/horizontal, explicitly)
- Set parameters (per-image duration defaults to 3s, fade transition, optional BGM and captions)
- Script assembles (frame math, transition offsets, audio-video alignment handled automatically)
- Output the video plus a report (image count, total duration, aspect ratio, transition, BGM status)
Inputs & outputs
| Input | Notes |
|---|---|
| Images | Required — ordered paths or a directory |
| Aspect ratio | Required — must be explicitly confirmed |
| Per-image duration | Optional — default 3s |
| Transition | Optional — default fade |
| BGM | Optional — background music file |
| Per-image captions | Optional — one line per image |
Output: the finished mp4 plus a parameter report under outputs/<theme>/.
Boundaries with adjacent skills
- auto-short-video: full pipeline that generates visuals and voiceover from a theme; this skill assembles user-supplied images directly.
- video-editing: general editing of existing video; this skill only covers "images → video".
- poster-hero: static cover/poster images; this skill outputs video.
Fit
- Turning travel or event photos into a highlight reel
- Product photo sets as a music-backed showcase clip
- Quickly converting screenshots or document images into a video post
- Video presentations of old photos or portfolios
Before you start
- No API key needed; runs locally as a deterministic script (ffmpeg-backed).
- Prepare your images in order, and confirm the aspect ratio before production.
- Supply the BGM file upfront if you want music; prepare caption text if you want per-image captions.
slideshow-video is part of the Aiglade Skill library. Invoke it from the Aiglade chat box in plain language.