MUSE · BAG IMAGERY · 28 OCT 2026

Bag Cutout Lab

100 bags from production's four capsules, up to four photos each, run through the cutout pipeline we'd self-host. Every image on this page was generated by it; nothing was retouched by hand.

Outcomes across the sample

Showroom · pick a bag

Each bag's final image as the app would show it. Filter by outcome or capsule.

The bench

—

Hero photo, then the u2net and IS-Net cutouts on dark
Hero photou2netIS-Net
Final image
Final image
Drag to turn

Studio cutout vs depth relief

They stack: the relief is built from the same cutout, so it's an add-on, not an alternative.

Studio cutout

  • Static WebP at the app's widths (320–1280).
  • Used everywhere: Showroom cards, item, vault, reveal card.
  • No app work beyond pointing at a new URL.
  • Always the exact bag; it stays a photo.

Depth relief

  • The cutout plus a small depth map (320 px, 16-bit, about 70 KB).
  • For item detail or a reveal-card tilt.
  • Needs a small 3D view in the app (three.js / expo-gl or Skia).
  • Holds up at moderate depth and turns; past that the invented sides show.

How it runs at ingest

A step inside the backend's image worker, once per bag, before any image reaches a phone.

  1. Mask every photo with both models. IS-Net and u2net through rembg, on CPU. About 3 s per photo for both.
  2. Score each photo and pick the hero. Agreement between the models, the mask touching the frame, fragments, a busy background and the bag's size in pixels. For Target images, request the large rendition first.
  3. Route the bag. Pass → studio cutout. Low-res → studio cutout at a capped size. Models disagree → studio cutout, flagged for a person in the Workbench. Nothing usable → framed original photo.
  4. Clean and store. Remove the old background's fringe from the edges, trim, and store the transparent cutout next to the original.
  5. Render. Studio images at 320–1280 px and the 16-bit depth map; the API returns their URLs with the bag.
StepModelSizeRuns on
MaskIS-Net (isnet-general-use) + u2net, via rembg~175 MB eachCPU, a standard Railway worker
Edge clean-uppymatting foreground estimation—CPU
DepthDepth Anything V2 Small (Apache-2.0; larger sizes are non-commercial)~100 MBCPU, about 1 s
Optional upgradeBiRefNet224 MB–1 GBNeeds over 6 GB RAM, or a GPU

Every bag

Click a row to open it on the bench.

BagCapsulePhotos triedModel IoUBag pxScoreOutcome