Cutout Animator
Turns a still photo cutout into a looping animated video, in four styles, with one command.
NOT PUBLIC · PERSONAL TOOL LOCAL TOOL. THE IMAGE IS A GENERATED COMMAND CARD.
The problem
A static subject cutout needed to become a reusable social loop in several aspect ratios and styles without paying for a metered animation or background-removal API. The source was not always a clean transparent PNG; sometimes it was a person on a near-black field.
What it does
Turns a static subject cutout (a person on a black field, or a transparent PNG) into a polished looping animation, in several styles from one command.
Pure ffmpeg and Pillow, nothing metered and no API, following the same zero-cost rule as everything else here. Outputs an mp4 per style, a gif fallback, and a still preview so you can check it without opening a player.
Who it is for
Creators and marketers who want eye-catching loops from a single photo, without paid tools.
What it does, feature by feature
- Four styles. Aurora, spotlight, noir, and a transparent sticker.
- Every format. MP4, GIF, a transparent WebM for stickers, and a preview still.
- Social sizes. 1920×1080, 1080×1080, 1080×1920 or 1080×1350.
- Seamless loops. Motion is timed to the clip length, so the loop never jumps.
- Smart background removal. Removes a dark background without eating dark hair or clothes.
- Free. Just ffmpeg and Pillow, with no API.
Why it is built this way
I kept the pipeline to ffmpeg and Pillow and emit MP4, GIF and a still preview in one run. When alpha is missing, background removal discards only dark regions connected to the frame edge; a simple colour key was rejected because it would punch holes through enclosed black hair and dark clothing.
What was hard
VP9 stores alpha in a side stream that ffmpeg's decoder does not reconstruct, so the transparent GIF cannot safely be derived from the WebM. It is rendered from a lossless RGBA intermediate instead.
What it ships with
- Zero cost per run
- Multiple styles per command
- mp4 + gif + preview




















