ThumbCraftedTry Free Editor
Free · Private · No Upload

Change a GIF's speed without touching a pixel

Every other tool decodes and re-encodes. This one rewrites the timing bytes.

A GIF stores how long to hold each frame in a few bytes next to the frame. Change those and the animation runs at a new speed with the image data byte-for-byte untouched. No colour banding, no dithering artefacts, no generation loss.

Drop or click to upload

Drag & drop or paste from clipboard

Animated GIF — 60MB max

Zero quality loss Nothing uploaded Instant

Original

The original GIF

New

The GIF at the new speed

Speed

Playback

Why every other GIF speed tool costs you quality

The usual approach is to decode the GIF into frames, change the timing, and encode a new GIF. That sounds harmless and is not, because encoding a GIF is lossy in a way people forget: a GIF frame can hold at most 256 colours, so the encoder must quantise and dither. Do that to an image that was already quantised and dithered once and you get a second, different approximation stacked on the first. Flat areas band, gradients speckle, and edges pick up noise.

None of that is necessary, because speed is not stored in the pixels.

What a GIF actually contains

A GIF is a sequence of labelled blocks. Before most frames sits a small Graphic Control Extension, and inside it is a two-byte field: the delay before the next frame, measured in hundredths of a second. The frame's actual image data is a separate block of LZW-compressed bytes that follows it.

So changing playback speed is a matter of rewriting those two-byte fields and copying every other byte of the file across unchanged. That is what this page does. The compressed image data is never decoded, never re-quantised, and never re-encoded. Your output is pixel-identical to your input, and the file size barely moves.

Reversing, trimming and dropping frames work the same way, by reordering or omitting whole blocks rather than rebuilding them. Which brings up the one honest caveat.

The caveat: not every GIF can be reordered

Many GIFs store each frame as a full picture. Plenty of others store frames as differences from the frame before, painting only the pixels that changed. That is a big saving, and it means those frames are not independent: frame 40 is meaningless without frames 1 to 39 having been drawn first.

For files like that, reversing or dropping frames would produce visible garbage, so this tool checks first and disables those options when it is not safe, telling you why. Speed changes are always safe, because timing has nothing to do with how a frame was stored.

The limit nobody mentions: you cannot speed up forever

Delay is stored in hundredths of a second, so the smallest value a GIF can express is 1, which is 10 milliseconds, or 100 frames a second. That is already the floor. But there is a second, stricter limit that trips people up:

Browsers treat a delay of 0 or 1 as 10. It is a decades-old compatibility rule, inherited from early animated GIFs that specified absurdly fast timing, and every major browser still applies it. The practical consequence is that a GIF asking for 1 hundredth of a second per frame plays at 10 hundredths, roughly 10fps, no matter what the file says.

So when you ask for a speed that would push frames below that floor, this page tells you the request cannot be met and shows the speed you will actually get, rather than writing a number that browsers will quietly ignore. When that happens, dropping frames is the real fix: half as many frames at the same delay genuinely plays twice as fast.

Delay writtenWhat browsers doEffective rate
0 or 1 (0-10ms)Clamped to 10~10 fps
2 (20ms)Honoured50 fps
4 (40ms)Honoured25 fps
10 (100ms)Honoured10 fps

This tool never writes a delay below 2, because 2 is the fastest value that is actually respected. Writing 1 would look like a faster GIF and play slower.

Nothing is uploaded

The file is read into memory, the timing bytes are rewritten, and a new blob is handed straight back to you. There is no server in the path, which is also why the result appears the instant you move the slider instead of after a round trip and a queue.

GIF Speed Questions

Does changing the speed reduce quality?
Not here. The compressed image data is copied across byte-for-byte and only the two-byte delay fields are rewritten, so the output is pixel-identical to the input. Tools that decode and re-encode do lose quality, because a GIF frame holds at most 256 colours and re-encoding means quantising and dithering a second time.
Is my GIF uploaded anywhere?
No. It is read into memory in your browser, the timing bytes are rewritten locally, and the result is handed back immediately. That is also why there is no progress bar: there is no transfer to wait for.
Why won't it speed up past a certain point?
GIF stores delay in hundredths of a second, and browsers clamp any delay of 0 or 1 up to 10 for backwards compatibility. So the fastest value that is actually respected is 2, meaning 50 frames a second. Beyond that the only way to genuinely go faster is fewer frames, which is what the drop-frames option does. The page tells you when your request hits that floor instead of pretending it worked.
Why is reverse greyed out on my GIF?
Because that file stores frames as differences from the previous frame rather than as complete pictures. Each frame only paints what changed, so playing them out of order produces garbage. The tool checks the frame structure and disables reordering when it would break the image, rather than letting you download something broken.
Will the file get bigger or smaller?
Neither, to within a few bytes, because the image data is unchanged and only timing fields are rewritten. Dropping frames is the exception: removing half the frames removes roughly half the file. If size is your goal, dropping frames is far more effective than any speed change.
Can I change the loop count?
Yes, and losslessly too. Loop count lives in a small Netscape application extension block near the start of the file. You can set forever, once, or a specific number. If the original has no loop block and you ask for a specific count, one is inserted.
Does it work on a still, non-animated GIF?
There is nothing to change. A single-frame GIF has no meaningful timing, so the tool will tell you it found only one frame rather than producing an identical file and calling it done.
Can I make a GIF from images instead?
Yes, that is the GIF maker. This page only retimes a GIF you already have.

Continue crafting

Keep going without re-uploading — your image carries over to the next tool automatically.

  1. 1EditAdd text, effects, or a fresh background
  2. 2GIF Maker