TutuEdit

GIF maker · turn images into an animation

Frame delay 20–1000 ms, frame-by-frame preview. Local processing, nothing uploaded.

Bring a few images in, mark them as frames, export as GIF — that is the animation.

Each image comes in as a layer, and Layer > Animation > Make Frames marks them as animation frames. Once marked, open the timeline panel to preview, play, and give each frame its own duration. On export, choose GIF: there is also a single frame-delay slider ranging 20 to 1000 milliseconds, default 400 ms (2.5 frames per second), looping forever by default. One thing worth knowing upfront: the background layer stays on every frame — only the other layers cycle. That is deliberate (a meme base image should not be repeated on every frame), but the first time you meet it, it reads like a bug. And the boundary: this page handles image sequences only; for video to GIF, use TutuCut. It all runs in your own browser; the images are never uploaded.

Key features

Per-frame timing

Each frame can hold for a different time — pauses and quick cuts both work.

Frame delay 20–1000 ms

Default 400 ms, which is 2.5 frames per second; at 20 ms it is 50 per second.

Frame-by-frame preview

The timeline plays and steps one frame at a time, so you see it before exporting.

Runs locally

The images are never uploaded. Close the tab and nothing is left.

How to use

  1. 1
    Bring the images in
    Each image becomes a layer, and layer order is playback order.
  2. 2
    Make frames
    Layer > Animation > Make Frames marks the layers as animation frames.
  3. 3
    Adjust in the timeline
    Preview frame by frame and give each one its own duration.
  4. 4
    Export as GIF
    Choose GIF in the export dialog, then set frame delay and looping.

FAQ

Can it convert video to GIF?
Not here. This page handles image sequences only. For video to GIF use TutuCut — that is its job, and it can pull frames and trim the clip.
How do I set frame timing?
Two places: the timeline panel gives each frame its own duration; the export dialog has a single frame-delay slider from 20 to 1000 ms, default 400 (2.5 frames per second). Use the former when you want to hold on one frame and then cut fast.
Why does the background layer appear on every frame?
That is deliberate: the background layer stays, and only the other layers cycle. A meme base image should not have to be repeated on every frame. If you want the background to cycle too, convert it into an ordinary layer before making frames.
Is it free? Are my images uploaded?
Free, no sign-up, no usage limit. Nothing is uploaded either — it all runs in your own browser.

Try GIF maker · turn images into an animation now

Runs fully in your browser · no install · no signup · images never uploaded