Drop in product photographs and the studio drafts the title, description, tags, materials and alt text, then pushes a draft listing to Etsy. A daily job snapshots every listing, audits the photographs against the copy, and turns each applied fix into an experiment measured against the rest of the shop.
I cut things out of photographs and put them somewhere else.
Computer vision and generative imaging, built as pipelines that survive production traffic — not notebooks that work once on a laptop.
Automotive imaging pipeline
A vehicle segmentation and generative background-replacement system running in production. Dealer photographs go in; studio-grade images come out, at a cost per image that stays flat as volume grows.
Perspective and proximity matched to the source frame, so the replacement sits where the original scene was.
The vehicle is carried through pixel-for-pixel at full source resolution. Nothing is resampled or repainted.
Queue-based batching, autoscaling and GPU utilisation tuning hold the unit cost flat as throughput rises.
- Ingest
Dealer frames arrive at full resolution and are queued per batch.
- Segment
BiRefNet and SAM produce the vehicle matte; DINO features resolve material boundaries.
- Separate glass
Transparent regions are matted on their own terms, keeping reflection and tint.
- Generate
A Flux LoRA renders the replacement scene to match perspective and proximity.
- Composite
The untouched foreground is laid back over the new background at source resolution.
Glass is where most cutouts fail
A segmentation model that scores well on paper will still flatten a windscreen into an opaque shape, because the training objective rewards a confident edge and glass has no confident edge. The pipeline treats glass as its own material: reflections, transparency and tint survive the cut, so the replaced background shows through the windows the way the replaced scene actually would.
What I build
LoRA fine-tuning on Flux and diffusion models, correction LoRAs with DiffSynth, and masked-diffusion loss tuning when the default objective is training the wrong thing.
Training and deploying BiRefNet, SAM and DINO-based models for high-precision edge and material separation — the work that decides whether a composite holds up at full resolution.
AWS and RunPod infrastructure built to absorb high request volumes, with queue-based batching, autoscaling and GPU utilisation tuning that keeps per-image cost flat as throughput grows.
Multi-agent architectures, agentic retrieval, and custom MCP servers that give a model real tools against real systems rather than a wrapper around a prompt.
Shipped and running
Models are only worth what reaches a user. These are systems in production, most of them built and operated end to end — infrastructure, data and interface included.
The public shop: a catalogue mirrored hourly from Etsy, per-variation pricing, server-side cart totals and idempotent stock reservations. Server-priced by design — the client posts a destination and renders whatever comes back.
A research tool that scrapes product pages politely, extracts through four layers best-first, and classifies against a purpose-built taxonomy where every value records how it was decided and the evidence behind it.
A live garment try-on feature for a clothing e-commerce site — segmentation and generative composition applied to a shopper’s own photograph, at page-load latency.
Automated listing generation for eBay and Etsy sellers: photographs in, marketplace-ready copy and categorisation out, at catalogue scale.
Background
- AiDevlabSenior AI/ML Engineer
- AfinitiData Scientist
- Fatima FellowshipResearch Assistant
- Lahore University of Management SciencesResearch Associate
BS Computer ScienceLahore University of Management Sciences, 2017–2021. Specialised in artificial intelligence.
Five years of production experience and a team-leadership background. English and Urdu, both native or bilingual.
Send me the use case.
I scope honestly and tell you when an approach won’t work before you pay for it. Describe what you need built and I’ll tell you exactly how I’d approach it — including when the answer is that you don’t need a model at all.