Product Studio

Summary

Product photography is one of the slowest and most expensive parts of running an online store. Every new item needs a shoot, clothing needs models to look its best, and lifestyle shots need props, a set and a photographer. For a small store, that cost adds up with every product they launch.

I built Product Studio to take a store from basic product photos to a finished listing without a photoshoot. Merchants upload the photos they already have, such as flat lays, hanger shots or simple mockups, and get back on-model and lifestyle images that are ready for their product pages. It runs inside the Shopify admin as an embedded app, so it works with any store theme and doesn't need a custom storefront.

Key Features:

On-Model Clothing Photos - Upload flat lays, ghost-mannequin or hanger shots and each garment is tried on a reusable house model, so a whole catalog uses the same face. Merchants can generate a model from a short description or upload a photo of their own model.

Print and Text Correction - Virtual try-on handles fit and drape well, but small printed text comes out garbled. When an image is saved, a second model redraws the garment's graphics and text from the original photo and leaves everything else alone. It's a per-photo option, so plain garments can skip it.

Lifestyle Scenes for Products - The background is removed automatically and the product is placed in a styled scene such as a spa shelf, bath ledge or marble counter, with the label artwork kept intact.

Review, Keep and Save - Each photo gets two variations. Merchants keep the ones they like and save them to an existing product, or have the app create a new draft product. Kept images survive a page reload, and a bulk action saves a whole batch at once.

Store-Ready Images and Copy - Saved images are upscaled for product zoom (2048px for scenes), and Claude writes alt text for each one. Claude can also draft a product description from the photos for the merchant to edit before it's applied, and it only describes what it can see, so it never invents materials or sizes.

Technical Highlights:

Built with Shopify's React Router app template and Polaris web components, so it looks and behaves like the rest of the admin, and the Shopify Admin GraphQL API with generated types that validate every query against Shopify's schema. The image pipeline uses fal.ai for background removal, Nano Banana scenes, FASHN virtual try-on and Bria upscaling, and the Anthropic API for alt text and descriptions. Each provider sits behind one module, so swapping a model is a one-file change.

Results and keep choices are stored with Prisma on SQLite, old unkept results are cleaned up after a week, and Shopify's required privacy webhooks delete a store's data on request. It's deployed to Fly.io as a separate production app, with secrets kept out of the code and the server image. A finished on-model photo costs roughly 25 to 30 cents in API fees.

This project pushed me into multi-model AI pipelines, Shopify app development and handling the cases where AI output isn't good enough on its own. It's exactly the kind of practical, money-saving tool I want to build for e-commerce clients.

Application Screenshots

Models page: describe a house model, preview, save
Studio: three garments on one model, ready to keep, correct and describe
Off-white t-shirt laid flat with a retro sunset graphic, palm trees and GOLDEN HOUR lettering
Input: a flat lay
A model wearing the sunset t-shirt with jeans and white sneakers on a grey studio backdrop
Output: on model, print corrected, 1696×2528
Close-up of the try-on result where the small line under the sunset graphic is garbled
Try-on alone: small text comes out garbled
Close-up after print correction with EST. 2026 sharp and readable
After print correction: "EST. 2026" restored
Mockup of a green eucalyptus candle and white Indulge gift box on a mint background
Input: a product mockup
The same candle and gift box on a light oak shelf in a bright bathroom with rolled towels and a plant
Output: "Spa shelf" lifestyle scene

Tech Stack

Shopify App (embedded)

React Router

TypeScript

Polaris Web Components

Shopify Admin GraphQL API

Prisma

SQLite

fal.ai

FASHN Try-On

Anthropic API

Docker

Fly.io

Interested in working together?Let's talk.

I would love the opportunity to work with you on your next project! If you're interested and want to start a conversation, reach out below.

Contact