← All Guides
productphotographyeditremove-bgupscaleoutpaintlifestyleecommerce

Product Photography Pipeline

Generate, edit, and process product images — from studio shots to lifestyle placements. Compare models, explore background removal, upscaling, outpainting, and the multi-seed pick-the-best workflow.

Mar 24, 2026 12 min read

A product photography shoot costs $500-$5,000 and takes days to coordinate. This pipeline replaces most of that with a single terminal session — generate studio shots, place products into lifestyle scenes, create ad variations, and upscale for print. No Photoshop, no manual masking. Every image on this page was generated with modl.

The pipeline

1. Generate     → Studio product shot (or use your own photo)
2. Remove bg    → Clean transparent background
3. Edit         → Place into lifestyle scenes, compare models
4. Style        → Ad variations — cyberpunk, retro, sketch
5. Text         → Branded mockups with accurate text rendering
6. Outpaint     → Extend to widescreen for banners
7. Upscale      → 4x for print/web hero images

Each step is a single modl command.

Speed modes:

—fast runs in 4 steps (~10x faster). —fast 8 runs in 8 steps (~6x faster, better for text). Both use a Lightning distillation LoRA. See the fast inference guide for details.

Which model for what

TaskBest modelSpeedWhy
Product with text/brandingqwen-image --fast 8~15sOnly model with accurate text rendering
Studio product shotqwen-image --fast~8sHighest detail, good lighting
Lifestyle placement (edit)qwen-image-edit --fast~10sBest edit fidelity, preserves product
Quick edit variationsflux2-klein-9b~12sPhotorealistic, artistic interpretation
Fastest iterationz-image-turbo~6sLightweight, good for exploration
Tip:

For e-commerce, the edit workflow is usually more valuable than generation from scratch — start with a real product photo and place it into scenes. Use —fast for iteration, —fast 8 when text accuracy matters.

Step 1: Generate product shots

Three models compared on the same prompt at comparable speeds. Each produces a distinct aesthetic.

$ modl generate "glass perfume bottle, luxury photography" \
--base qwen-image --fast 8 --seed 42
✓ Generated 1 image(s)
 
$ modl generate "glass perfume bottle, luxury photography" \
--base flux2-klein-9b --seed 42
✓ Generated 1 image(s)

Headphones

“A premium wireless headphone on a clean white surface, product photography, studio lighting”

1 Qwen `--fast 8`
Headphones qwen
2 Klein 9B (4s)
Headphones klein
3 Z-Image Turbo (4s)
Headphones z-image

Same prompt, three models. Qwen renders product details most accurately. Klein 9B has a photorealistic style. Z-Image Turbo is fastest.

Perfume bottle

“A glass perfume bottle with amber liquid, luxury cosmetics photography, soft gradient background”

1 Qwen `--fast 8`
Perfume qwen
2 Klein 9B (4s)
Perfume klein
3 Z-Image Turbo (4s)
Perfume z-image

Glass and liquid rendering. All three handle reflections well across different aesthetic styles.

Coffee mug

“A ceramic coffee mug with minimalist design on a wooden table, warm morning light”

1 Qwen `--fast 8`
Mug qwen
2 Klein 9B (4s)
Mug klein
3 Z-Image Turbo (4s)
Mug z-image

Warm product photography. Each model has a distinct aesthetic — pick the one that fits your brand.

Step 2: Remove background

One command removes the background, producing a transparent PNG.

1 Original
Original sneaker
2 Background removed
Sneaker no background

Clean edge isolation — works on photographs and AI-generated images.

$ modl process remove-bg sneaker.png
✓ Removed background: sneaker_nobg.png
 
# Also works on generated images
$ modl process remove-bg headphone.png
✓ Removed background: headphone_nobg.png
1 Generated headphone
Headphone original
2 Background removed
Headphone no bg

Remove-bg works on AI-generated product shots just as well as photographs.

Step 3: Lifestyle placement — the multi-seed workflow

This is where the pipeline earns its keep. Take your product photo, describe a scene, and generate multiple variations. Each seed produces a different composition and lighting — generate 3-4, pick the winner. Faster and cheaper than reshooting.

Use the multi-seed workflow:

Always generate at least 3-4 seeds for each scene. Run them in a loop and review — the best composition is rarely the first one.

# Generate 4 lifestyle variations
$ for SEED in 42 99 777 2024; do
modl edit "place on a rocky mountain trail, sunset lighting" \
--image sneaker.png --fast --seed $SEED
done
✓ Edited 1 image(s) # × 4

Mountain trail

“Place the sneaker on a rocky mountain trail with dramatic sunset lighting”

1 Seed 42
Mountain seed 42
2 Seed 99
Mountain seed 99
3 Seed 777
Mountain seed 777
4 Seed 2024
Mountain seed 2024

4 variations, same prompt. Pick the composition that works best for your campaign.

Gym floor

“Place the sneaker on a polished gym floor with dramatic sports lighting”

1 Seed 42
Gym seed 42
2 Seed 99
Gym seed 99
3 Seed 777
Gym seed 777
4 Seed 2024
Gym seed 2024

Sports context. Each seed changes the angle, reflections, and background elements.

Water splash

“Sneaker floating on a splash of water against a dark background, dynamic product photography”

1 Seed 42
Splash seed 42
2 Seed 99
Splash seed 99
3 Seed 777
Splash seed 777
4 Seed 2024
Splash seed 2024

Dynamic product shots with water effects. Each seed gives a different splash pattern.

Edit fidelity: Qwen Edit vs Klein 9B

For product listings, the edit model matters — you need the product to look like your product. Qwen-Image-Edit preserves shape, color, and details faithfully. Klein 9B is more creative but takes liberties.

“Place the sneaker on a beach at sunset with waves”

1 Source
Original sneaker
2 Qwen Edit (40s)
Beach qwen normal
3 Qwen Edit `--fast`
Beach qwen fast
4 Klein 9B (4s)
Beach klein

Qwen Edit preserves product details precisely. Klein 9B takes more creative liberties. Use Qwen for listings, Klein for hero images.

Tip:

For product listings where accuracy matters, use Qwen-Image-Edit. For creative hero images where some artistic interpretation is welcome, try Klein 9B.

Step 4: Style variations for ads

Transform the same product photo into different ad styles. Great for A/B testing creative across platforms — one product photo, multiple campaigns.

$ modl edit "transform into a neon cyberpunk advertisement" \
--image sneaker.png --fast --seed 42
✓ Edited 1 image(s)
1 Source
Original sneaker
2 Cyberpunk ad
Cyberpunk style
3 Retro 80s ad
Retro style
4 Pencil sketch
Sketch style

Three styles from one product photo. Edit transforms — it doesn't regenerate from scratch.

Step 5: Branded product mockups

Need product mockups with text? Qwen-Image is the only fast model that renders text accurately. Use --fast 8 (8 steps) instead of --fast (4 steps) — the extra steps give noticeably better character accuracy.

$ modl generate "a coffee mug with MODL.RUN printed on it" \
--base qwen-image --fast 8 --seed 42
✓ Generated 1 image(s)

Branded mug

“A coffee mug with ‘MODL.RUN’ printed on it, product photography, white background”

1 Qwen `--fast 8`
Mug with text qwen
2 Klein 9B
Mug with text klein

Qwen renders 'MODL.RUN' legibly. Klein 9B attempts text but garbles it.

T-shirt mockup

“A t-shirt flat lay with ‘DREAM BIG’ screen printed in bold letters”

1 Qwen `--fast 8`
Shirt with text qwen
2 Klein 9B
Shirt with text klein

For branded product mockups, Qwen-Image is the clear choice.

Step 6: Outpaint for wider shots

Extend a square product shot to widescreen for website banners and hero images. The model fills in the extra space coherently.

$ modl edit "extend the scene showing more of the surface" \
--image sneaker.png --size "16:9" --fast
✓ Edited 1 image(s)
1 Original (1:1)
Original sneaker
2 Outpaint `--fast` (16:9)
Outpaint fast
3 Outpaint normal (16:9)
Outpaint normal

Extend a 1:1 product shot to 16:9 for website banners.

Step 7: Upscale for print

4x upscale for print-ready resolution. Works on any image — generated, edited, or photographed.

1 No background (1024px)
Sneaker 1024
2 4x upscaled (4096px)
Sneaker 4096

4x upscale from 1024px to 4096px. Fine details like stitching and texture are enhanced.

$ modl process upscale sneaker_nobg.png
✓ Upscaled 4x: sneaker_nobg_4x.png (4096×4096)

Full pipeline in one script

From product photo to storefront-ready assets:

# 1. Remove background from your product photo
$ modl process remove-bg product.png
✓ Removed background: product_nobg.png
 
# 2. Generate lifestyle variations (pick the best seed)
$ for SEED in 42 99 777 2024; do
modl edit "place on a marble countertop in a luxury bathroom" \
--image product.png --fast --seed $SEED
done
 
# 3. Outpaint your favorite to widescreen
$ modl edit "extend the scene" \
--image best_lifestyle.png --size "16:9" --fast
✓ Edited 1 image(s)
 
# 4. Upscale for print
$ modl process upscale best_lifestyle.png
✓ Upscaled 4x: best_lifestyle_4x.png (4096×4096)
 
# 5. Create ad style variations
$ modl edit "transform into a minimalist magazine ad" \
--image product.png --fast --seed 42
✓ Edited 1 image(s)

Explore from here

  1. Fast inference guide — Detailed --fast quality comparison with text rendering benchmarks
  2. Image primitives — All processing tools (upscale, remove-bg, score, detect)
  3. Train a style LoRA — Train a custom style for consistent brand aesthetics
  4. Model comparison — Full breakdown of all supported models