skwish
private
browser-based
Reduce image size for AI vision so the request is accepted, not downscaled for you
Every vision API has a size rule, and none of them are the same rule. Claude caps an image at 8000x8000 px and 10 MB base64, bills 28x28-pixel patches as visual tokens, and tightens the per-image dimension limit the moment a request carries more than 20 images. OpenAI accepts PNG, JPEG, WEBP and non-animated GIF up to a 512 MB total payload with 1,500 images per request, but rejects any single image that needs more than 30,000 patches after resizing instead of resizing it down for you. Gemini takes PNG, JPEG, WEBP, HEIC and HEIF, up to 3,600 files per request, and lets media_resolution decide how many tokens each image can spend. The shared consequence: a 12-megapixel phone photo is mostly wasted bytes. It gets downscaled server-side anyway, so you pay for tokens or payload you never use, and in the OpenAI case you can hit a hard rejection instead of a graceful downscale. Reducing the file before the request puts you back in control of what the model actually sees. Skwish resizes to an exact dimension, converts format and compresses in the browser with a per-file before and after readout, and batches a whole folder into one ZIP.
Search match

This page is tuned for reduce image size for ai vision so visitors land in the right workflow immediately.

Fast output

See original size, compressed size, and percentage saved before you move on.

Batch ready

Compress multiple files and pull the results down as a ZIP.

Get to the compressor fast
Exact-intent SEO page first. Clear next step. Pretty later.

People usually search for a specific task, not a brand story. So this page keeps the promise simple: compress images without sending them to a third-party server.

Built for people searching “reduce image size for ai vision”, not a generic landing page.

No uploads, no accounts, no waiting on a server.

See the savings before you download anything.

Batch export stays available when the job is bigger.

Best for this search

Shrink a folder of evaluation images before uploading them to a vision endpoint, so token cost and latency stay predictable per call.
Resize screenshots to 1,568 px long edge so they land inside Claude's standard native resolution instead of being downsampled blind.
Cut a 12-megapixel photo to 2,048 px for OpenAI high detail, where going bigger buys no extra tokens or accuracy.
Convert oversized PNG screenshots to JPG when a request payload is creeping toward the byte ceiling.
Compress images now

Opens the upload box on the free browser compressor.

Drop images in the browser
Keep the whole workflow local. Nothing leaves your device unless you download it.
Set the output you need
Adjust compression until the file size and quality fit the job instead of guessing.
Download a clean result
Save one file or a ZIP bundle with skwish-prefixed names so the output is easy to find.
Pick the target from the model's own numbers
Use these before you upload or share the page.
Claude standard tier caps a native long edge at 1,568 px, high-resolution tier at 2,576 px. Anything past that is downscaled before processing, so resizing first loses nothing.
OpenAI high detail fits within 2,048x2,048 and 2,500 patches. Export at 2,048 px on the long edge and stop there.
Gemini lets media_resolution decide the token budget per image, so the pixel size you send is the only lever you fully control.
Check the rotation before you compress. All three vendors treat a sideways image as a real quality problem, and compression makes it worse.

Ready to compress images?

Open the free browser upload box, keep files local, and download the optimized result.

Compress images now