TwinLens is a free, browser-based comparison tool for images and videos — no account required, no install, nothing uploaded unless you explicitly choose to share. This post is a complete tour of every feature, grouped so you can skim to what you need.
Compare up to 4 images
Drop one, two, three, or four images onto the canvas. With two images you can pick Slider, Split, or Peek. With three or four, switch to Horizontal, Vertical, or Grid layout. All panels pan and zoom together, so you're always inspecting the same region across every image at once.
Supported image formats: PNG, JPG, WebP, AVIF, GIF, HEIC, TIFF, BMP, and SVG. iPhone HEIC photos open directly — no conversion step.
Slider, split, peek & grid — six view modes
TwinLens adapts the layout to how many images you have loaded. Two-image views focus on revealing differences; multi-image views focus on arranging them legibly.
| Mode | How it works | Best for |
|---|---|---|
| Split | Both images side by side with a fixed divider | Color grading, layout checks |
| Slider | Drag a vertical divider to reveal one image over the other | Before & after, retouching |
| Peek | Click and hold to swap in the second image | Spot-checking subtle differences |
| Horizontal | 3-4 images arranged in a row | Wide landscape compares |
| Vertical | 3-4 images stacked top to bottom | Tall portrait compares |
| Grid | 2×2 tile layout for 3-4 images | A/B/C/D runs, variant reviews |
Switch views with 1 2 3 on your keyboard, or the icons in the top toolbar.
Synced video comparison
TwinLens is one of the best free video comparison tools on the web — no upload, no install, runs entirely in your browser. Drop two videos (MP4, WebM, or MOV) and they play in lockstep with automatic drift correction, a shared timeline, and variable playback speed from 0.25× to 2×.
Every view mode works for video too: slider, split, and peek, all with synced playback.
- Record the live comparison as a WebM file you can post or attach to a bug report.
- Snapshot the current frame as a PNG — perfect for pinpointing a specific moment.
- Share generates a link that preserves view mode, position, and labels.
Folder comparison
Drag two folders of images onto TwinLens and it automatically pairs them up by filename. Perfect for comparing upscaler outputs, render passes, A/B dataset runs, and matched HR/LR pairs.
- Navigate pairs with ← / → arrow keys.
- Press G to open a paginated thumbnail gallery of every pair.
- Unmatched files appear grouped at the end, so nothing is lost.
- Works with hundreds of images per side — thumbnails lazy-load.
Editable labels, snapshots & shareable links
Click the label bar beneath any panel to type a custom name — for example Before and After, or a filename, timestamp, or commit hash. Labels appear in-view, are included in snapshots, and travel with your share links.
Two export paths:
- Snapshot (E): downloads the current view as a PNG with labels and the divider baked in. Great for design reviews and docs.
- Share: uploads your images and returns a permanent URL. Anyone with the link can view — no TwinLens account required on the viewer side.
14-day links work without signing in. Signed-in users unlock never-expire links and a profile page to list, filter, and delete every link they've created.
Iframe embeds for your blog
Every share page comes with a ready-to-paste iframe snippet. Drop it into a blog post, Notion page, or documentation site and readers can slide, zoom, and pan directly inside your article — no plugins, no JavaScript to install.
Paste a TwinLens share URL into Discord, Slack, Twitter, or iMessage and it expands into a rich preview card with thumbnails. Shares look polished out of the box.
Paste a URL — no upload needed
Instead of uploading, paste any public image or video URL directly into a panel. TwinLens fetches it and works with it like any local file. Share links built from URL-sourced content are created instantly (no file upload) and are never-expire by default.
Great for comparing two CDN-hosted images, two model outputs on cloud storage, or two builds of a screenshot without routing gigabytes through your browser.
https://twinlens.app/sample-color.jpg
https://twinlens.app/sample-bw.jpg
Preserved viewport in share links
Every share link captures your exact viewport — view mode, zoom level, pan position, slider position, label visibility. Whoever opens the link lands on the same frame you were on. No more "look at the top-left corner" or "scroll down and zoom in to 200%" in Slack messages.
This applies to videos too: playback position, view mode, and speed all travel with the share URL.
Zoom, pan & keyboard shortcuts
Scroll to zoom, drag to pan. All panels move together so you always inspect the same region across every image or video. TwinLens is designed keyboard-first:
| Key | Action |
|---|---|
| 1 2 3 | Switch view mode |
| F | Fit to window |
| A | Actual size (1:1 pixel view) |
| S | Swap left and right |
| L | Toggle label visibility |
| E | Save snapshot as PNG |
| G | Open folder-pair gallery |
| ← / → | Previous / next folder pair (or seek video) |
| Space | Play / pause video |
| R | Reload all panels |
| + | Add a third or fourth image |
Input methods are equally flexible: drag and drop from Finder or Explorer, drag a whole folder, paste a URL from your clipboard, paste a screenshot you just took (⌘V / Ctrl+V), or click any empty panel to open a file picker.
Image quality metrics (PSNR & SSIM)
Press D to open the Details panel. With two images loaded, TwinLens computes PSNR (Peak Signal-to-Noise Ratio) and SSIM (Structural Similarity Index) locally — everything happens in your browser, nothing is uploaded.
The values are color-coded so you can read them at a glance:
- Green — PSNR ≥ 38 dB, SSIM ≥ 0.95 (near-identical)
- Yellow — PSNR 28-37 dB, SSIM 0.80-0.94 (visible differences)
- Red — below (substantial differences)
Useful for evaluating upscalers, codecs, compression settings, denoisers, or any pair of images where you want an objective quality number alongside the visual diff.
Desktop app & mobile
TwinLens runs in three places:
- Web at twinlens.app/compare — no install, works on any modern browser.
- Desktop — native macOS and Windows apps with offline support, file associations, and icon-drop targets.
- Mobile — the full web app works on phones and tablets with touch-friendly controls and responsive layout.
Privacy-first — local until you share
Your files stay on your device. Nothing is uploaded to a TwinLens server unless you explicitly click Share. Local comparisons — loading files, zooming, computing PSNR/SSIM, snapshotting to PNG — all happen in your browser's memory, and leave no trace on TwinLens infrastructure.
If you use URL sources, even Share doesn't upload your images — it just stores the URLs. You can delete any share link from your profile page and the associated files are removed from storage.
Related guides
- How to Compare Two Images Online — Step by Step
- How to Compare Folders of Images with TwinLens
- The Best Local Video Comparison Tool for Engineers and QA Teams
- How to Share and Embed Image & Video Comparisons
Ready to compare?
Free, private, and instant. No account or install needed — just open the tool and drop your images or videos in.
Sign in to your account
Unlock never-expire share links and a profile page to list, filter, and delete every link you've created.