Built on advanced on-device AI and hardware acceleration to deliver professional-grade performance with uncompromising privacy.On-device AI — professional-grade, fully private.
Free Online GIF Editor
Edit GIF frames on a timeline — reorder, re-time, export.
Free, with no watermarks.
- Frame timeline with a playhead
- Per-frame timing and frame edits
- Photos, clips and GIFs in one project
What do you want to do?
Import photos, video clips or an existing GIF, edit the frames on a timeline, then export a finished animation.
JPG · PNG · APNG · WebP · GIF · AVIF · MP4 · WebM · MOV
A GIF is a sequence of still frames with a delay attached to each one. Most GIF tools hide that and give you a single speed slider. This editor shows you the frames themselves — on a timeline, with a playhead — so you can delete the three at the start that nobody needs, hold the punchline a little longer, and reverse the whole thing if it reads better that way.
A real timeline, not a speed slider
Every frame gets a tile, and the tile is as wide as the time that frame holds. A frame slowed to half a second visibly takes five times the room of a tenth-of-a-second one, so the animation's rhythm is something you look at rather than something you calculate.
The playhead is draggable and the preview follows it exactly. What plays in the stage is what the exported file will do — same order, same delays, same letterboxing.
- Click or drag anywhere on the strip to scrub
- Delete or duplicate the selected frame
- Reverse the whole animation, or ping-pong it
- Give any single frame its own hold time
Mixed sources in one animation
Photos, trimmed video clips and existing animated GIFs can all feed the same project, in whatever order you arrange them. Each video source carries its own in and out point, so a three-second moment from a long recording costs three seconds of frames and nothing more.
- Photos: JPG, PNG, WebP, AVIF
- Video: MP4, WebM, MOV — trimmed per clip
- Animated GIFs, imported with their original timing
Smaller files, without a quality cliff
Frames store only the region that changed since the frame before, and mark the rest see-through so the previous frame shows through. On a screen recording or a talking head that removes most of the file. Colour count, output size and dithering are all separate controls, because they trade against each other differently on a screenshot than on a photograph.
- Frame differencing on by default
- Colour count from 8 to 256
- Dithering off, ordered or diffused
- Hardware accelerated where the device allows it
It runs on your device
Nothing is uploaded. The files are read, decoded, composed and encoded where they already are, which is why there is no queue, no size limit imposed by a server, and no copy of your footage sitting somewhere else.
Combine video, GIFs and photos into one GIF
Start by dropping everything you want in the animation onto the editor at once: a video clip, another GIF and a few photos can all be imported together. In the tutorial, a 14.7-second video became 88 frames, and adding a GIF plus two photos brought the project to 99 frames and 17.8 seconds. A free GIF holds up to 100 frames, and that budget is shared between all the sources, each keeping its real length.
The source list is the playing order. Move a source with the up and down arrows, or remove it with the cross — removing one in the demo dropped the count to 90 frames. Each video can be trimmed right on its card, so you keep only its best few seconds: trimming to 3 → 7 seconds left 26 frames. Photos play for a single frame each until you give them a longer hold on the timeline.
- Import video, GIFs and photos together, several at once
- Free: up to 100 frames, shared across all sources
- Reorder with ↑ ↓, remove with ✕
- Trim each video on its card: 3 → 7 s gave 26 frames
Reduce GIF file size: dimensions, frame rate and colours
The Output panel holds every setting that decides how big the finished GIF is, and the tutorial exported the same four-second clip after each change, so the numbers are real files. The starting point was 24 frames at 640 × 360 and 1.7 MB. A square shape with Fit adds bars but no weight — still 1.7 MB — and the background behind them can be white, black or transparent. Fill, which covers the square with the picture, rose to 3.3 MB.
Pixels and frames are the strong levers: a longest side of 480 brought 3.3 MB down to 2.0 MB, while 12 fps doubled the frames to 48 and the file to 3.9 MB. Colours are a weak lever: 64 colours gave 2.8 MB but banded on a plain wall, and dithering hides the bands at a cost — Ordered 3.4 MB, Diffusion 3.9 MB. The loop setting, forever or a set number, does not change the size.
- Square with Fit: the bars cost nothing (1.7 MB) · Fill: 3.3 MB
- Background: white, black or transparent
- Longest side 480: 3.3 → 2.0 MB
- 64 colours: 2.8 MB, with visible banding
- Shrink pixels and frames first, colours last
Change GIF frame timing, reverse, ping-pong and split
Every frame is a tile on a timeline, and each one carries its own delay. The demo GIF had 24 frames at 170 ms each, 4.1 seconds in all. Holding the last frame for 1,200 ms stretched it to 5.1 seconds, so the moment that matters stays on screen. Setting 100 ms and pressing Apply to all gives every frame the same timing — here the whole GIF shrank to 2.4 seconds.
The keyboard handles the rest: D duplicates the selected frame and Delete removes it. Reverse plays the animation backwards, and a hold travels with its frame. Ping-pong plays it forwards and then back for a seamless loop, turning 24 frames into 46 and 8.8 seconds. Reset frames returns to the original 24 frames and 4.1 seconds, and splitting at frame 13 cuts the GIF into two halves of 12 frames, with the second half downloaded.
- Per-frame hold: last frame at 1,200 ms → 5.1 s
- Apply to all: 100 ms each → 2.4 s
- D duplicates, Delete removes
- Ping-pong: 46 frames, 8.8 s
- Split at a frame: 12 + 12
Crop, rotate, flip and add filters to a GIF
Crop by dragging a box on the stage around what matters. Cropping works on the source's own pixels, so a box drawn around a face in HD footage still fills the GIF's longest side — 544 × 640 in the tutorial. Rotate turns the picture a quarter turn at a time and the shape turns with it, to 640 × 544, and Flip mirrors it either way. A border is drawn inside the frame in any colour, so the size never changes.
Ten looks recolour every frame at once, among them Vivid, Warm, Cinematic, Vintage and Black & white. Speed multiplies the whole timing: 2× brought the clip to 2.0 seconds and ½× stretched it to 8.2 seconds. The order that works best is crop first, so every pixel goes on what matters, then the look, then the speed.
- Crop by dragging a box: 544 × 640 from HD footage
- Rotate a quarter turn at a time, flip either way
- Border drawn inside the frame, in any colour
- 10 looks: Vivid, Warm, Cinematic, Vintage, Black & white…
- Speed: 2× → 2.0 s, ½× → 8.2 s
Add animated text and captions to a GIF
The Text tool adds a caption layer you type into — the tutorial used “WHO, ME?”. Pick one of five fonts (Impact, Sans, Serif, Mono or Rounded), then set the colour, an outline and the size. A bold font such as Impact in white with a black outline reads on any background, which is exactly what a meme caption needs.
Next, choose how the words arrive. There are eight entrance animations, including Fade, Slide, Drop, Pop and Typewriter, which makes the caption type itself in. From and To set the frames the caption appears on, so it can wait for the right beat: in the demo it showed from frame 9 to frame 24. A free GIF holds 3 layers; Pro removes the limit and adds your own fonts.
- Text tool: a caption layer you type into
- 5 fonts, plus colour, outline and size
- 8 entrances: Fade, Slide, Drop, Pop, Typewriter…
- From / To: frames 9 → 24 in the demo
- Free: 3 layers · Pro: no limit + your own fonts
Add stickers, shapes and drawings on top of a GIF
Add image places a picture on top of the animation as a layer. A PNG with transparency covers only what it draws, so a pair of sunglasses sits on the eyes and nothing else. Drag on the stage to move it, set its size, opacity and rotation, and give it an entrance animation from a chosen frame — the sunglasses drop in at frame 12. An image layer is a still; to play another GIF, import it as a source instead.
Shape layers hide what should not be seen with Pixelate, Blur or Solid, drawn as a rectangle, an ellipse or with the brush, and the brush also draws freehand in any colour. Layers stack in list order, and the up and down arrows change which one sits on top. A free GIF holds 3 layers; Pro has no limit.
- Add image: a PNG with transparency
- Move by dragging; size, opacity and rotation
- Entrance animation from a chosen frame
- Shapes: Pixelate, Blur or Solid — rectangle, ellipse or brush
- Layer order with ↑ ↓ · Free: 3 layers, Pro: no limit
Blur or pixelate a face in a GIF, only on chosen frames
To censor part of a GIF, add a Shape layer, choose Ellipse and Blur, and drag over the face. Strength sets how heavy the effect is — 80% in the tutorial. Pixelate and Solid colour work the same way, and each can be drawn as a rectangle, an ellipse or with the brush: an ellipse suits faces, a rectangle suits text and number plates.
A shape stays where you put it, so the frame range is how you deal with something that moves. Set From and To — frames 9 to 24 in the demo — and the blur covers only those frames. Censor shapes are layers like text and stickers: each has a shape, an effect, a strength and a frame range, and it is burned into the frames only when you export.
- Shape · Ellipse · Blur over a face
- Strength: 80% in the demo
- From frame 9 to 24
- Pixelate and Solid colour, with a rectangle, ellipse or brush
- Burned in only when you export
Record your screen to a GIF and export as MP4 or WebM
Record captures your screen, your camera or both, at 10 to 60 fps for up to 3 minutes. Your browser asks what to share — a screen, a window or a tab — through its own picker. In the tutorial, four seconds of a browser tab were recorded; then Stop and Add to project turned the recording into a source of 23 frames, ready to edit like any other.
Export writes the same edit in the format you need. The four-second GIF came out close to 1 MB, an MP4 of it was about half that, and a WebM a little smaller still. Frames as PNG saves every frame in one zip. With Pro you can also export WebP and APNG and set a target file size. Use a GIF where it has to be a GIF, an MP4 everywhere else, and the frames when you need them one by one.
- Record: Screen, Camera or Both · 10–60 fps · up to 3 minutes
- Add to project: the recording becomes a source
- Export GIF, MP4 or WebM — an MP4 is about half the GIF's size
- Frames as PNG: every frame in one zip
- Pro: WebP, APNG and a target file size
How to edit a GIF online
- 1Import your media
Open the editor and add photos, video clips or an existing animated GIF — everything loads straight into your device.
- 2Edit the frames
Scrub the timeline, delete or duplicate individual frames, reorder your sources, and give any frame its own hold time.
- 3Preview & export
Watch the loop play at the exact timing that will be written, then export the finished animated GIF.
Frequently asked questions
Is the GIF editor really free?
Yes — it is free, with no watermark on the export. The free plan caps the output size and the frame count; Pro raises both to what your device can handle.
Are my files uploaded anywhere?
No. Every frame is decoded, composed and encoded on your own device, and nothing is sent to a server at any point.
Can I edit a GIF I already have?
Yes. Import it and its frames arrive with their original timing, ready to reorder, re-time, delete, duplicate or reverse.
Can I change how long a single frame stays on screen?
Yes — select any frame on the timeline and set its hold time in milliseconds. Its tile widens to match, so the animation's rhythm is visible at a glance.
What can I import?
Photos (JPG, PNG, WebP, AVIF), video clips (MP4, WebM, MOV) and animated GIFs — mixed together in one project if you want.
Why does reversing a long animation use more memory?
Video is decoded in one forward pass, which is what keeps long clips fast. Playing frames backwards means holding them, so the editor composes them once and keeps them until the export finishes.
Related tools
Palette mapping runs on your device's graphics hardware where it is available, and falls back to a slower path that produces exactly the same pixels where it is not.
from 184 ratings
Rate this tool
Tap a star — it takes a second