A GIF made from a photobooth burst is doing something subtly different from a video. There is no audio, the frame rate is intentionally low, and each frame is meant to be readable on its own. The good GIFs feel like a flipbook. The bad ones feel like a slideshow that forgot to add transitions. The gap between those two outcomes is not talent or gear — it is a handful of decisions made before you hit the shutter and a couple more at export.
Four to six frames, not twelve
The temptation is to capture as many frames as the tool allows. Resist. A GIF with too many frames stops feeling animated and starts feeling like a low-frame-rate video, which is the worst of both worlds. Four frames at roughly 250 ms each is the sweet spot for a portrait GIF — the loop is short enough to repeat without becoming annoying, long enough for each expression to register. Six frames is the upper limit before the loop starts to feel like a chore to watch.
If you are doing a "boomerang" style back-and-forth, six unique frames played forward-then-reverse give you a twelve-frame loop without doubling the file size. This is almost always the right call for expressions and gestures — a wave, a wink, a laugh — where the return-to-neutral is as satisfying as the action itself.
Timing per frame
Default GIF timing in most tools is 100 ms per frame, which is way too fast for portraits. The eye needs 200 to 300 ms to actually parse a facial expression; anything shorter reads as a strobe. For photobooth-style GIFs, aim for:
- 200 ms per frame for energetic, quick-cut sequences.
- 250 ms as the safe default for four to six frame loops.
- 350 to 400 ms on the "punchline" frame if there is one — the surprised face, the reveal, the kiss.
Keep the camera dead still
A GIF amplifies every wobble. The frames stack at the same x/y coordinates, so a one-pixel shift between captures looks like the room is breathing. Prop the laptop or phone, do not hold it. If the GIF will be cropped tight on a face, lock the body and move only the expression. A tripod or a stack of books is worth more than any stabilisation filter you can add afterwards.
Loop with intent
A GIF that loops well has a frame one that visually rhymes with frame N. The easiest version of this is to start and end with the same neutral expression and put the action in the middle. The loop then reads as a single moment that keeps replaying, instead of a hard cut.
If you cannot match the ends naturally, ping-pong the playback (forward then reverse) and let the symmetry hide the seam. Ping-pong is not cheating — some of the most iconic GIFs on the internet are three-frame ping-pongs.
File size and palette
GIF is an old format. It uses a 256-colour palette per frame, which is why GIFs of skin tones often look posterised. Two things help:
- Pick a film look that is already low-contrast and warm. A Kodak Gold or Portra-style preset quantises into 256 colours more gracefully than a saturated cyan-magenta look. Gradients on skin are where GIF fails hardest, so start with a palette that has fewer gradients to preserve.
- Lower the export resolution. 480 px on the long edge is more than enough for a phone screen and keeps the file under a few hundred KB, which matters anywhere a GIF is embedded in chat. 720 px is the ceiling for anything that will be shared over messaging apps.
When to choose MP4 instead
If the destination is Instagram, X, TikTok or any platform that auto-converts uploads to video, you are usually better off exporting as MP4 or WebM. They handle gradients, lower file size and skin tones far better than GIF. Instagram in particular strips uploaded GIFs and re-encodes them as low-bitrate video, which looks worse than if you had uploaded video in the first place.
Use GIF when you specifically need it: iMessage reactions, Slack threads, Discord emotes, blog embeds, anywhere the file has to be a literal .gif and autoplay silently without a user tap.
Quick checklist before you export
- Four to six unique frames.
- 200 to 300 ms per frame, longer on the punchline.
- Camera locked, only the subject moves.
- First and last frames visually compatible, or use ping-pong playback.
- Warm, low-contrast film look chosen before the burst.
- 480 px on the long edge unless the GIF will live on a desktop site.
- Under 500 KB for chat, under 2 MB for web embeds.
Frequently asked questions
Why does my GIF look grainy or posterised?
GIF is limited to 256 colours per frame. Skin gradients and sunsets are the two subjects this hurts most. Either pick a lower-contrast film look before shooting or export as MP4 / WebM instead.
Can I add sound to a GIF?
No — GIF has no audio track. If you need sound, export as MP4. This is the single biggest reason most social platforms prefer video over GIF.
How do I make the GIF loop forever?
Most GIF encoders default to infinite loop. In FLASHFRAME, GIFs export with the loop count set to 0 (infinite) automatically. If a specific platform is only playing your GIF once, that is a platform-side setting, not the file itself.
Why is my GIF file so large?
Usually one of three things: resolution too high (drop to 480 px on the long edge), too many frames (cut to four to six), or the source has lots of motion in the background (crop tighter so the algorithm has less to encode).
Should I use dithering?
For portraits, no — dithering makes skin look speckled. For graphic content with hard edges (text overlays, illustrations), dithering can hide the 256-colour limit. FLASHFRAME defaults to no dithering, which is right for photobooth output.
Further reading
- Our guide on better photobooth photos — the same rules about light and expression apply, but multiplied by four frames.
- Exporting for Instagram Stories if MP4 is the better format for your destination.
