Animating a still image into a short clip: choosing a photo that moves well, picking one camera move or parallax or AI motion, designing a clean loop, checking faces, text, and geometry for warp, and exporting for social and ads. Use when asked to animate a photo, make a Ken Burns clip, add parallax to a picture, turn a still into a video, or make a looping clip from an image.
./install.sh still-image-animationname: "still_image_animation" description: "Animating a still image into a short clip: choosing a photo that moves well, picking one camera move or parallax or AI motion, designing a clean loop, checking faces, text, and geometry for warp, and exporting for social and ads. Use when asked to animate a photo, make a Ken Burns clip, add parallax to a picture, turn a still into a video, or make a looping clip from an image."
Turn one still image into a short clip that holds up at phone size. The skill is tool-neutral: it covers a deterministic camera move in any editor or with the bundled ffmpeg renderer, a layered parallax build, and AI image-to-video generation. Each route uses the same photo scoring, the same failure checks, and the same export targets, so the method survives a change of tool.
references/failure-checks.md. A photo that fails a hard rule does not get animated by that method. Check resolution against the output size times the planned zoom, subject headroom, depth, plausible natural motion, sharpness, and separation from the background.assets/sample-plan.json shows the shape. One clip gets one camera move and, for AI work, one subject action.references/motion-recipes.md. Working ranges: push-in ends at 1.10 to 1.20, a pan holds 1.10 to 1.20 and travels inside the extra area, hold-subtle runs 1.00 to 1.04. In an editor, keyframe Scale and Position and ease both ends of the move, the Adobe Ken Burns method. Save the move as a preset when a batch shares it.references/motion-recipes.md: subject motion, camera motion, scene response, motion style. The image already shows the scene, so do not restate it. Use positive phrasing, one precise camera term, and small actions for faces. Use start and end keyframes when the tool offers them and the end framing or the loop point matters, and verify the current duration and size limits in the tool at generation time.bin/animate.py photo.jpg -o out.mp4 --preset push-in --size 1080x1920 --duration 4. Add --loop boomerang for a seamless loop, or --dry-run to print the ffmpeg command without rendering. The renderer scales the input large before zoompan to cut step jitter, and writes the move from the frame count so it ends on the planned frame.bin/qa.py out.mp4 --expect 1080x1920 --expect-duration 4 --expect-fps 30 --out-dir qa/, add --loop for loops. Then apply the checks in references/failure-checks.md to the extracted first, middle, and last frames: faces, text read letter by letter, geometry, hands, edges, and loop seam. Watch the full clip once at phone size. A text or face failure rejects the take.references/export-specs.md. Vertical social is 1080x1920 at 30 fps, square is 1080x1080, horizontal is 1920x1080. MP4 with H.264 and yuv420p everywhere. Keep a clean master with no burned-in captions, and derive platform copies from the master.bin/qa.py with all checks passing, plus the first, middle, and last frames kept with the output.references/motion-recipes.md, such as zoom ranges and the 10 against 5 parallax pair, are rules of this skill tested with the bundled renderer. They are not vendor limits, and the references say so where they appear.bin/, the test in the verification note below must pass again.Tested on 2026-10-17 with ffmpeg 8.1.2 and Pillow 10.2.0. A generated 2400x1600 test image rendered as a push-in to 1080x1920 in 4 seconds at 30 fps, and as a boomerang loop, and both outputs passed bin/qa.py including the loop seam check. The exact commands and results are in the run log for this skill build.
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.