Skip to main content
    All cases
    Own product · E-commerce / GenAI

    One warehouse photo becomes a whole storefront shoot

    Upload a plain product photo, pick a scene and a quality tier, then get storefront-ready variants where only the light and background change, never the product.

    Open live app
    597Tests

    Engine, presets, billing routes, i18n parity

    RU/ENLocales
    3Quality tiers
    10 weeksBrief → deploy-ready
    VITRINA landing page: warehouse photo becomes a storefront shot
    Landing: the same product staged as a finished storefront shot.
    1. 1Same product, badge confirms it wasn't swapped
    2. 2Only the scene changed, the mug itself is untouched

    Where AI does the work

    01 / GENERATE

    Storefront generation

    Every image model call runs through a provider abstraction over fal.ai, so archetype, shot set and quality tier turn a warehouse photo into several finished scenes without the app depending on one vendor.

    02 / FIDELITY

    Fidelity gate

    A sharp-based check compares every generated variant back to the original upload; a shot where the product itself visibly changed is rejected and never billed, only rerun.

    03 / BATCH

    Whole-catalog batch

    Batch mode runs the same generate-and-check pipeline per SKU across a full catalog upload, spending credits only on the shots that pass the fidelity gate.

    Built with Claude Code in 10 weeks

    Before

    New storefront scenes meant a studio booking for every SKU.

    After

    A warehouse photo turns into several fidelity-checked storefront shots.

    []/More screens
    VITRINA studio sign-in screen with a sample scene gallery
    Studio needs an account; the scene gallery (marble, counter, plinth) shows without one.
    VITRINA pricing page with Starter, Studio and Scale plans
    Pricing: credits per month by tier, batch processing unlocks at Studio.
    Under the hood

    01Context

    A warehouse photo is not a storefront photo

    A flat photo out of a warehouse box is fine for a picking list, not for a product page. Turning it into a real scene usually means a studio booking per SKU, and that cost repeats every time a catalog needs new scenes or a new market. VITRINA takes the warehouse photo as the only input and generates the storefront images around it.

    02What we built

    Archetype, quality tier, then a fidelity check

    Upload a product photo, pick an archetype and a shot set from the built-in scene library, choose a quality tier and get back several storefront-ready variants. Every variant is checked against the original before it counts as delivered: the product itself never changes, only its surroundings do. A single product goes through the studio; a whole catalog goes through batch, generating a listing set per SKU instead of one photo at a time.

    03How it works

    Next.js on Supabase, a provider abstraction over the model

    The app is Next.js 16 with Supabase for Postgres, Auth, Storage and Realtime. Every image model call goes through a provider abstraction so fal.ai isn't hardwired into the rest of the app; with no key set, a mock provider echoes the product back so the full upload-to-result flow works end to end while the real fidelity check still runs. 597 Vitest tests cover the generation engine, the scene presets, the billing routes and translation parity between Russian and English.

    ANM SOLUTIONS / CONTACT US

    Want something like this?

    First 30-minute call is free. We scope it, you decide.

    []/More cases