# NoShot (/noshot)

<ProductBanner product="noshot" />

## The shoot is the bottleneck [#the-shoot-is-the-bottleneck]

A new drop needs a studio, a model, a stylist, a photographer and a retoucher before a single product goes online — and it needs all of that again for the next drop, and again for every market that wants a different look.

NoShot inverts it. The input is the flat product image you already produced for the catalogue. The output is that garment worn by a consistent model, in a place that suits the category, at a resolution you can put on a product page. It has its own site at [noshot.co](https://noshot.co) and does not require YourSizer or ResReturn.

<Cards>
  <Card title="What goes in">
    A packshot on a plain background, the product category, a size, and optionally a model and a place from the library.
  </Card>
  <Card title="What comes out">
    On-model imagery at print-usable resolution, generated per variant where the size actually differs, ready to append to the product.
  </Card>
</Cards>

## What makes the output usable [#what-makes-the-output-usable]

<Cards>
  <Card icon={<Users />} title="Fixed model library">
    A curated set of high-resolution models. Because the model, pose and lighting stay fixed across a collection, the product is the only thing that changes between images — which is what makes a category page look coherent instead of assembled.
  </Card>
  <Card icon={<MapPin />} title="Place library and taxonomy">
    Scenes are organised as a tree that branches by product category, not one flat list, so knitwear and swimwear are not offered the same backgrounds. Free text and “doesn’t matter” are always available.
  </Card>
  <Card icon={<Ruler />} title="Body-fidelity size gate">
    Generated imagery is scored on how faithfully the body matches the requested size before it is accepted. A model rendering an XXL as a sample size is a rejection, not a delivery.
  </Card>
  <Card icon={<Layers />} title="Variant generation">
    Sizes map to models explicitly rather than being inferred, and each variant gets its own image, so a size selector shows a body that plausibly wears that size.
  </Card>
  <Card icon={<ImageIcon />} title="Composite frames">
    Several uploaded pieces — dress, hat, earrings, bag — placed into a single styled frame, for lookbook and campaign imagery rather than product shots.
  </Card>
  <Card icon={<ShieldCheck />} title="Category sensitivity gate">
    Sensitive categories are classified separately from ordinary product categories and the gate fails closed: if the category cannot be determined, generation is refused rather than attempted.
  </Card>
</Cards>

## Publishing into your catalogue [#publishing-into-your-catalogue]

<Cards>
  <Card icon={<Undo2 />} title="Append, never overwrite">
    Generated imagery is appended to a product’s media. Nothing you photographed is replaced silently, and every publish is recorded so it can be rolled back as one operation.
  </Card>
  <Card icon={<Lock />} title="Variant images are a separate decision">
    Setting a variant’s image is the one write that can replace a merchant’s own photography, so it is gated on its own explicit confirmation rather than riding along with a normal publish.
  </Card>
  <Card icon={<Lock />} title="Write access is opt-in">
    Connecting a store grants read access. Writing to it is a separate switch, off by default, per merchant.
  </Card>
  <Card icon={<FileText />} title="Text as well as imagery">
    Product copy generated alongside the imagery can be published through the same append-and-rollback path.
  </Card>
</Cards>

Shopify publishing is live. Other storefront platforms are on the roadmap and use the same append-and-rollback contract. [Coverage matrix →](/platform/coverage)
