FrameProof
100% In-Browser - Private

Drop your photos here Release to add photos

JPG, PNG, WebP, AVIF or a whole folder. Files are decoded on your own device and never uploaded.

100% local browser processing
100%
Export

Contact Sheet Editor

A full-screen workspace for turning a folder of photos into a proof sheet you can print, send or file. Set the grid, the page size and the filename labels on the left; watch the sheet redraw on the right at any zoom from fit to 600%. Everything runs in your browser, so the photos never leave the machine they are on.

The studio is free, needs no account, and exports both the sheet itself and the selection record behind it — a PDF or image for the client, a filename list for your editor.

How the studio works

  1. 01

    Drop a folder of photos

    Drag files onto the page or use Add. JPEG, PNG, WebP, AVIF, GIF and BMP are accepted. Files are read by your browser — nothing is uploaded to a server.

  2. 02

    Set the grid and the page

    Columns and rows from 1×1 to 10×12, A4, US Letter, 16:9, square, 9:16 story, or a custom size in millimetres. Overflow flows onto numbered extra pages automatically.

  3. 03

    Review while you lay out

    Click a frame and press 1, 2 or 3 to mark it Kept, Flagged or Rejected. Filter pills at the top narrow the sheet to one status so you can print just the selects.

  4. 04

    Export the sheet or the list

    PDF and image exports render at twice the layout scale — 300 dpi for a paper size. Or export only the filenames as CSV, a Lightroom-ready comma string, or a JSON project manifest.

Every setting in the left panel

Nothing here is behind an upgrade. Each control redraws the sheet as you change it, and the numbers you set are the numbers the export uses — the page is laid out at 150 dpi and written at twice that.

Page

  • · Page size: A4 (210 × 297 mm), US Letter, 16:9 screen, square 1:1, story 9:16, or custom
  • · Custom size in millimetres, 40 mm to 1200 mm per edge, entered as short and long edge
  • · Portrait or landscape, applied to every size including custom
  • · Page border (margin) 0–96 px and gap between photos 0–60 px
  • · Sheet background and text colour

Grid

  • · Columns 1–10 and rows 1–12; the readout shows how many pages the batch needs
  • · Fill order: across then down (how a proof sheet reads) or down then across (how a film strip is laid out)
  • · Fit: whole photo letterboxed inside its cell, or crop to fill the cell
  • · Keyline around each photo, 0–6 px, with its own colour
  • · Rounded corners, 0–32 px, clipped so the photo itself is rounded rather than framed
  • · Start from a template instead of dialling in numbers by hand

Labels

  • · Label text: filename, frame number, or number + filename
  • · Position: in a reserved strip under the photo, or printed on the photo over a scrim
  • · Alignment for the under-photo strip: centred on the column or flush to its left edge
  • · Hide the file extension, or print labels in capitals
  • · Label size 6–28 px, scaled up with the export so print matches preview
  • · A live sample shows exactly what a label will print as before you export

Bands and marks

  • · Title band across the top of every page, with your own title text
  • · “Page 2 of 5” band along the bottom
  • · Keep / Flag / Reject badges drawn on the thumbnails, for a printed review copy
  • · Photo order: manual drag, filename, file date, or file size — ascending or descending

Review without leaving the sheet

Marks live on the photos, not in a separate list. Kept, Flagged and Rejected each have a filter pill at the top of the studio, so you can lay out a 200-frame shoot, mark it down to twelve selects, then switch the sheet to Kept only and export that.

The marks are also what the CSV, TXT and JSON exports carry, which is what makes the sheet a selection record rather than a picture of one.

Keyboard shortcuts

1
Mark the selected frame Kept and move to the next
2
Mark Flagged and move on
3
Mark Rejected and move on
0 or U
Clear the mark on the selected frame
← → ↑ ↓
Move the selection through the sheet
Delete
Remove the selected photo from the sheet
?
Open and close the shortcut list

What each export writes

Six formats, split between the sheet and the list of what is on it.

PDF
Every page in one document, rendered at twice the layout scale — 300 dpi at a paper size. The page format is taken from the sheet you laid out, so a square or 9:16 sheet stays square or 9:16 instead of being stretched to A4.
PNG
The page you are viewing, lossless, at twice the layout scale.
JPEG
The same raster, compressed, for email and messaging.
CSV
A filename table for the photos in the current filter — the selection record, not the picture.
Lightroom TXT
The same filenames as one comma-separated string, ready to paste into a Lightroom search field.
JSON
A project manifest: layout settings, order, and every review mark, so a sheet can be described without shipping the photos.

Contact sheet studio FAQ

What is the difference between this studio and the contact sheet maker on the homepage?

The layout engine, the settings and the exports are identical. The difference is room: the homepage tool is an island inside a marketing page, so an A4 sheet renders a few hundred pixels tall. This route gives the sheet the whole screen and adds zoom up to 600% with scrolling, so a single frame can be inspected at close to full size.

Do my photos get uploaded anywhere?

No. Files are read by the browser, decoded to canvas, and written back out as a download. There is no account, no upload step and no server-side copy of a photo, a thumbnail or a filename.

Can I print a contact sheet on a page size that is not A4 or Letter?

Yes. Choose Custom size and enter the short and long edge in millimetres, from 40 mm to 1200 mm. The PDF is written at those exact millimetre dimensions rather than being fitted into a standard paper size.

Are the original camera filenames kept?

Yes. Filenames are preserved and can be printed under each frame or over it, with the extension hidden and in capitals if you prefer. They are also what the CSV, TXT and JSON exports contain.

What happens when there are more photos than the grid holds?

The batch splits across as many pages as it needs, and the readout under the grid controls tells you the count before you export. The PDF export writes all of them; the PNG and JPEG exports write the page currently on screen.

Which file types can I add?

JPEG, PNG, WebP, AVIF, GIF and BMP. Camera raw files and HEIC from an iPhone are not supported yet — convert them to JPEG first.

Related pages