GIF Trimmer: Trim a GIF by Frame or Time
This free GIF Trimmer keeps one continuous part of an animated GIF and drops the rest. Choose frames by number or a time range in milliseconds, check the summary, then download the result. No signup is needed for free use, and each file is limited to {imageMax}.
- The trimmer keeps one continuous part. You cannot remove a section from the middle or join pieces.
- Sizes and times on this page were measured on a generated test animation, not real footage. Your results will vary with your file.
- Free use is limited to 5 MB per file and 30 files per day per visitor.
Drop an image here
PNG, JPG, WebP, AVIF, GIF, BMP or TIFF, up to 5 MB
The frames you keep keep their own delays and the loop count. The original file is not changed.
A GIF has at most 256 colours, and each pixel is fully transparent or fully opaque. The frames are decoded, edited and encoded again, so a GIF with many colours can look a little different. WebP output is lossy; use the quality slider.
Complete the human check to enable the button.
Result
Your GIF will appear here.
The free web tool takes images up to 5 MB, 30 per day. Signed in, the limit is 10 MB.
Retention: web-tool results are deleted after 10 minutes and no history is kept. API results are kept 1 day on the free plan and 7 days on Starter and Pro (30 days on Business and Scale).
No account needed
30 images per day for free, no watermark.
Edited frame by frame
The frames are decoded once, edited and encoded once. The original file is not changed, and the upload is deleted when the job ends.
Deleted automatically
Web tool results are removed after 10 minutes.
Privacy: what you submit is used only to make this file. The working copy is deleted when the job ends, the result after 10 minutes. See the privacy policy.
Do this from your code
The same request, built from the input and options above. Create an account to get an API key.
curl -X POST https://api.aiipworld.com/v1/render \
-H "Authorization: Bearer $AIIPWORLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"","output":"pdf","options":{}}'
# returns {"job_id": "...", "status": "queued"}; then poll:
curl https://api.aiipworld.com/v1/jobs/JOB_ID -H "Authorization: Bearer $AIIPWORLD_API_KEY"Batches
The web tool handles 1 image at a time. The API takes one request per image, so you can script as many as your plan allows.
Retention
Web-tool results are kept 10 minutes; free API results 1 day; Starter and Pro results 7 days; Business and Scale 30 days. The web tool allows 10 conversions per minute and 50 per day per visitor.
In one sentence
A free online tool that keeps one continuous part of an animated GIF or WebP, chosen by frame numbers or by a start and end time in milliseconds, and drops the rest.
Key facts
- Input: an animated GIF or WebP with more than one frame, up to 5 MB in the free tool and 10 MB when signed in, and up to 16 MP (4096 x 4096) per frame.
- Output: a GIF (or animated WebP) with the kept frames, each with its own delay and the original loop count; a frame is kept when it starts at or after the start time and before the end time.
- It keeps one continuous part; it cannot remove a section from the middle or join pieces.
- In our test a generated 30-frame GIF of 1.8 s and 106 KB became a 15-frame GIF of 0.9 s and 59 KB with frames 1 to 15; the test animation was generated by our scripts and results vary.
- The upload is deleted when the job ends and the result after 10 minutes; signed-in users pay 1 credit per file plus 1 credit for each started 10 MP of frames beyond the first 10 MP.
- Free without an account: up to 10 conversions per minute and 50 per day per visitor, no watermark. Signed in, each render costs 1 credit (100 free credits every month).
- Files are deleted automatically: 10 minutes after conversion without an account, 1 day with a free account.
- Developers can run the same render with POST https://api.aiipworld.com/v1/render and an API key (see the API docs page).
How it works
- Upload a GIF or animated WebP. The browser shows a preview and the frame count.
- Set "Cut by" to Frame numbers or Time in milliseconds, then set the range.
- Read the summary line to confirm which frames are kept.
- Choose "Save as": Same as the original, GIF, or Animated WebP.
- Click "Trim GIF" and download the result. Download links are short-lived.
Example output
How to use this GIF Trimmer
Upload your file, choose how you want to cut it, and run the job. The steps are the same for frame numbers and for time ranges. The preview and frame count appear before you run anything, so you can check the cut first. Start with "Cut by". Set the range, read the summary line, pick the output format, and click "Trim GIF". Then download the result before the link expires.
What this GIF Trimmer does
The tool keeps the frames you select and drops the rest. The frames you keep keep their own delays and the loop count. The picture of each frame is not changed, so the size and pixels stay the same. Your original file is not changed. At least one frame must be kept. Keeping a single frame gives a one-frame GIF.
- It keeps one continuous part of the animation.
- It does not add fades or reverse the animation.
- To change speed, use the GIF speed page.
Trim by frame numbers
Frame numbers are the default setting. Set First frame and Last frame, each with a number box and a slider. Both ends are kept, so frames 1 to 15 gives 15 frames. In our test on a generated 30-frame animation (320 x 240 px, 60 ms per frame), frames 1 to 15 kept 15 frames, 0.9 s. Frames 11 to 20 kept 10 frames, 0.6 s. Frame numbers past the end are refused, and the message gives the frame count.
- Count frames from 1.
- Check the preview for the total frame count.
Trim by time in milliseconds
Choose Time, then enter Start (ms) and End (ms). A frame is kept when it starts at or after the start and before the end. The end itself is not included. The browser reads the delays from the file header, so the summary shows which frames a range keeps before you run the job. In our test, 600 to 1200 ms kept frames 11 to 20, the same as the frame-number cut. A range from 0 to 1000 ms kept 17 frames, 1.0 s, because the 17th frame starts at 960 ms.
- A range where no frame starts is refused.
- Time counts from when each frame starts, so uneven delays change the result.
What happens to timing and loop
A trimmed GIF keeps the delays of the frames you kept. It also keeps the loop count from the original file. Playing time is counted the way browsers play the file, so a delay of 10 ms or less counts as 100 ms. The result panel shows a Frames kept row with the playing time before and after the cut. It also shows the playing time and loop for the animation. In our test with uneven delays (100, 100, 500, 100, 100, 1000 ms), a range of 150 to 800 ms kept frames 3 and 4, which start at 200 ms and 700 ms.
How much smaller is a trimmed GIF
Fewer frames usually mean a smaller file, but the size does not drop in a straight line. In our test, the full 30-frame GIF was 106 KB. Frames 1 to 15 came to 59 KB, and frames 11 to 20 came to 37 KB. A single frame came to 9.8 KB. Results vary with the file, because the picture content changes the size. Sizes are shown in KB, where 1 KB is 1024 bytes, as the result panel shows. These figures come from a generated test animation, not real footage.
Save as GIF or animated WebP
"Save as" offers Same as the original, GIF, or Animated WebP. When you choose WebP, a quality slider appears with a default of 80. Animated WebP output is lossy, so the quality setting changes picture detail. In our test, frames 1 to 15 saved as animated WebP came to 37 KB, compared with 59 KB as a GIF. Try both formats and compare the file sizes in the result panel for your own file.
Cut one frame, or keep just a part
To keep one frame, set the first and last frame to the same number. The result is a one-frame GIF. In our test, frame 5 gave a one-frame GIF of 9.8 KB. The trimmer keeps one continuous part. It cannot delete a section from the middle or join two pieces. For speed changes, use the GIF speed page. To turn frames into pictures, use the GIF to frames page.
Limits for animations
Limits are checked from the file header before the animation is decoded. Signed in, you can trim up to 300 frames and 64 MP in total pixels. Total pixels means frame width x frame height x number of frames. Without an account, the limits are 100 frames and 16 MP. Each single frame is limited to 16 MP (4096 x 4096). Pricing starts at 1 credit per file. You pay 1 more credit for each started 10 megapixels of decoded frames beyond the first 10 megapixels. Over a limit, the job fails and the credits are returned.
- The browser warns you before upload if an animation is over the limits.
Which files the trimmer accepts
The trimmer accepts GIF and animated WebP. A PNG, JPG, or other file is refused with a message that says so. The file type is read from the file content, not the file name. A text or corrupt file renamed to .gif is refused with an "unsupported image" message, and so is a GIF cut off before its end marker. Free web use allows up to 5 MB per file, 30 files per day per visitor without an account, and up to 16 MP (4096 x 4096) per frame. Signed-in users can upload up to 10 MB per file. A result larger than 20 MB fails with an "output too large" message instead of returning a cut-off file.
Trim GIF from code
Send a POST request to https://api.aiipworld.com/v1/image-jobs. The body is the raw file bytes, not JSON or multipart. Set Content-Type to image/gif or image/webp. Authenticate with Authorization: Bearer <API key> or x-api-key. Put op=gif_edit and action=trim in the query string, along with the trim parameters from the docs. Each action accepts only its own parameters, and unknown names are rejected. Send timeout_sec=60, the maximum, for animations. The API takes one request per file. There is no batch endpoint and no webhooks yet. The API returns 202 with a job_id. Poll GET /v1/jobs/:id until the job succeeds, fails, or times out. The page shows a ready cURL, Node, and Python example below the tool that follows the settings you choose. Docs are at /docs/#image-jobs.
Privacy: what happens to your file
Your file is sent to our server and is not edited in the browser. We process it with sharp (Apache-2.0), which is built on the libvips library. This is ordinary image processing, not artificial intelligence. The uploaded file is used only to make the result and is deleted as soon as the job ends, whether it succeeds or fails. The result is deleted after 10 minutes in the free web tool. No history is kept, and download links are short-lived. You must have the right to use what you upload, as set out in our Acceptable Use Policy.
Questions
Can I trim a GIF for free?
Yes, you can trim a GIF in the free web tool without an account, up to 30 files per day per visitor. Anonymous use needs a human check, and each file is limited to 5 MB. Signed-in use is charged in credits, starting at 1 credit per file.
How do I cut the start or the end of a GIF?
Set First frame to cut the start, or Last frame to cut the end, using frame numbers. You can also choose Time and set Start (ms) and End (ms). Read the summary line before you click "Trim GIF".
Does a trimmed GIF keep its timing?
Yes, the frames you keep keep their own delays and the loop count. The playing time in the result covers only the kept frames.
Which frames does a time range keep?
A frame is kept when it starts at or after Start (ms) and before End (ms). The end is not included. If no frame starts in the range, the job is refused.
Can I cut a part out of the middle of a GIF?
No, the trimmer keeps one continuous part. You cannot delete a section from the middle or join pieces. If you need individual pictures from the animation, use the GIF to frames page.
Can I keep just one frame?
Yes, set the first and last frame to the same number. The result is a one-frame GIF. In our test, frame 5 gave a 9.8 KB file.
Why is the trimmed GIF still large in KB?
Fewer frames help, but a GIF stores each frame as a picture with at most 256 colours, so the size depends on your file. In our test, the same frames saved as animated WebP came to 37 KB, compared with 59 KB as a GIF.
Can I trim an animated WebP?
Yes, animated WebP is accepted as input. For output, choose Same as the original, GIF, or Animated WebP. Animated WebP output is lossy, and the quality slider (default 80) changes picture detail.
What happens if my frame numbers are past the end?
The job is refused with a message that gives the frame count. In our test, frames 20 to 40 were refused for a 30-frame animation. Choose numbers from 1 up to the frame count shown in the preview.
Why was my GIF refused as too long or too large?
The file or animation went over a limit. Signed in, the limits are 300 frames and 64 MP in total pixels. Without an account, they are 100 frames and 16 MP. Each file is limited to 5 MB for free use and 10 MB when signed in. The browser warns you before upload, and an over-limit job fails with its credits returned.
How long is my file kept?
The uploaded file is deleted as soon as the job ends. The result in the free web tool is deleted after 10 minutes. No history is kept, and download links are short-lived.
Can I trim GIF files in code?
Yes, use the API. Send a POST to /v1/image-jobs with the raw file bytes, op=gif_edit, and action=trim. Send timeout_sec=60 for animations. The page shows ready cURL, Node, and Python examples.
Need this in your app or in bulk?
This tool runs on the same platform as the API, so the same image is one HTTP request from your code. A free account includes 100 credits a month.

