Context
Teams selling on several marketplaces need product imagery that is consistent, on-brand and available at volumes traditional studio photography cannot sustain. Every new SKU, every seasonal refresh and every channel with its own image rules adds work that does not scale by hiring more photographers.
The engineering problem is not a single model call. It is throughput and predictability: many images per job, heavy processing steps, and output that has to satisfy per-channel requirements before anyone is willing to publish it.
What we built
The workflow covers ingestion, image processing, batch execution and export to marketplace channels.
- Ingestion — bulk upload of source photos, with every file tracked as its own item through each later stage, so a result can always be traced back to the file it came from.
- Image pipeline — processing is a chain of discrete steps (background removal, generation, output verification, review) rather than one opaque call, so a failed item can be retried and a result re-run from the cleaned input or the current output without redoing the whole batch.
- Batch execution — long-running work is queued and handled by background workers instead of the request cycle, so a large batch survives a deploy and one failed item does not take down the job.
- Review — generated results are inspected before they leave the system. Batch AI output is only useful when someone can approve or re-run it at scale, so the review surface matters as much as the model.
- Marketplace export — finished images are exported using per-channel size and format presets, and connected shops (Shopify, WooCommerce) can receive the result directly on the product listing.
Stack
A Next.js/TypeScript application on Postgres, with BullMQ on Redis for batch and pipeline jobs and a separate worker process, local or S3 storage for source and derived assets, and hosted image models from two providers behind one narrow interface with automatic fallback — because image models change far faster than product requirements do.
Status
Case study on request. Detailed metrics and client references are available on request under NDA.