NotShot Blog

Spree Commerce product image size for clothing (2026)

Published 2026-11-01

Spree Commerce is an open source commerce platform, and its README on GitHub lists a REST API, a React admin dashboard and a Next.js storefront. Spree turns every product photo into a set of fixed sizes, and in a default setup every one of them is square. This page reads those sizes and the crop behavior from the Spree 6.0.1 source code, the latest Spree release on GitHub when we checked on 1 November 2026, and turns them into settings for clothing photos. We make NotShot, an AI on-model photo tool, so we also cover where on-model images fit.

Close crop of a man from the nose down to the chest, in a light heather gray crewneck sweatshirt with a ribbed collar, against a plain light gray background. The knit texture of the fabric is visible.
An on-model render made with NotShot, 1182×1600 pixels and about 395 KB. In the square Spree sizes, only a 1182 × 1182 area of this portrait frame would fit, so 418 pixels of its height would be cut.

The default Spree image sizes

The core configuration in Spree 6.0.1 lists these product image sizes, made at twice the display size for sharp screens:

There is also a 1200 × 630 size for social sharing images. Spree makes all of these when the photo is uploaded. A developer can replace the list in the store's initializer, so check with whoever runs your store if the sizes look different.

Why Spree crops portrait clothing photos

The media model in Spree 6.0.1 builds each product size with resize_to_fill. That fills the exact box and cuts off whatever does not fit, and a comment in the configuration says it squares off whatever it is given. A full length photo of a standing model is taller than it is wide, so in a square size the top and bottom of the frame are lost. That can mean a cut off head, hem or pair of shoes.

Two ways to handle it for clothing:

Images placed inside a product description are handled differently. Spree limits their longest side to 1200 pixels by default and does not crop them, so size charts keep their shape.

Formats and file output

Spree checks product image uploads against the Rails list of web image types. In an app on current Rails 8.1 defaults that list is PNG, JPEG, GIF and WebP. Whatever you upload, Spree saves each product size as a WebP file at a quality of 75, with metadata stripped. Upload a sharp JPEG or PNG and let Spree make the WebP copies.

Main image and variant images

In the Spree 6.0.1 product model, the main image is the first one by position. Spree updates it when images are added, removed or reordered, and falls back to variant images if the product itself has none. Images can also be linked to variants, so each color can show its own photos.

Spree image checklist for clothing

  1. Shape: square, to match the default sizes, or custom sizes that match your photos.
  2. Size: 2000 × 2000 pixels for the default xlarge size.
  3. File: JPEG, PNG or WebP. Spree makes the WebP copies.
  4. Framing: the whole garment inside the square, with space around it.
  5. Main image: the best front or on-model view, first in position.
  6. Variants: an image set for each color.

Running another platform too? Compare Medusa product image size for clothing, Saleor product image size for clothing and Sylius product image size for clothing. Running Bagisto too? See Bagisto product image size for clothing. For lighting and backdrops, see our clothing product photography guide.

Where NotShot fits

Spree sets no rule against models in product images, so on-model photos can sit next to your packshots and variant images. Check each marketplace's own rules before you sell there. NotShot renders your garment on your own model from the product photo you already have, and every render is checked by an AI judge that compares it with your upload for color, print and cut. Renders below the quality bar are refunded automatically, so you pay for photos that pass the check, not for attempts. Plans are on the pricing page.

Questions we get asked

What image size should I upload to Spree for clothing?
Upload square photos of at least 2000 x 2000 pixels. In Spree 6.0.1 the largest default size, xlarge, is 2000 x 2000 pixels and is used for the main gallery image and the lightbox. Every default product size is square, so a square upload keeps the whole frame.
What are the default Spree product image sizes?
Spree 6.0.1 sets mini at 128 x 128, small at 256 x 256, medium at 400 x 400, large at 720 x 720 and xlarge at 2000 x 2000 pixels, plus a 1200 x 630 social sharing image. A developer can change them in the store's initializer.
Does Spree crop product images?
Yes. In Spree 6.0.1 the product sizes use resize_to_fill, which fills the exact box and cuts off whatever does not fit. Every default product size is square, so a portrait photo of a standing model loses part of its height.
Which file formats does Spree accept for product images?
Spree 6.0.1 checks uploads against the Rails list of web image types. In an app on current Rails 8.1 defaults that list is PNG, JPEG, GIF and WebP. Spree then saves each product size as a WebP file.
How does Spree pick the main product image?
Spree 6.0.1 uses the first image by position as the product's main image. Reordering the images updates it, so drag your best front or on-model view to the top.

NotShot is a Berlin-based tool for on-model product photography without the photoshoot.
Try NotShot