# MPP Uplift — What We Need to Do

Source: `RFP/Request for Proposal - MPP Uplift (2).pdf`, `RFP/Input for MPP proposal (1).pdf`.

## The ask
IKEA IMC Studios is sourcing a **fully automated AI workflow** that takes existing Main Product Pictures (MPPs) and uplifts them — adding cohesive lighting, contrast, and shadows — without any manual retouching. We're submitting a proposal.

- **Volume target:** 10,000–100,000 images.
- **No human in the loop** at any stage.
- **Owned by IMC after handover:** code, models, docs, training.
- **Preferred tooling:** Freepik Enterprise platform/API (IMC supplies access if we're selected). Other approaches allowed but Freepik is the steer.

## Deadline
**Wednesday, May 6, 2026, 5:00 PM CEST.** Contact: Niklas Lindström, niklas.lindstrom1@inter.ikea.com.

## Outputs (per input image)
Three deliverables per SKU, all 4000×4000 px AdobeRGB:
1. **PNG** — uplifted product + shadow.
2. **PNG** — uplifted product on white, **no shadow**.
3. **JPG** — uplifted product + shadow.

## Visual standard (from input deck)
- **Frame:** 4000×4000 with **400 px margin** → product fits within 3200×3200. Don't crop close to edges; shadow needs room.
- **Shadow:**
  - Light always **from the left**, preferably **front-left**.
  - Equal density and color across the shadow.
  - **Neutral grey** — must not pick up product color (the "yellow shadow under yellow chair" example is the failure mode).
  - Shadow angle adapts to product type/size.
- **Contrast:** add depth via blacks and highlights — shape the form, but don't crush.
- **Quality bar:** 100% fidelity on textures, logos, seams, reflections, refractions. The deck shows a target vs. an unacceptable AI result where weave detail was smoothed out — that level of degradation is a hard fail.
- **Special cases flagged in the deck:**
  - **Flat-lying products** (e.g. KAJPLATS bulbs): shadows treated as if on a flat surface; shorter shadows to avoid mess.
  - **Pendant lamps** (PILSKOTT): hung from invisible ceiling ~1 m from a back wall, OR no shadow with a background-color treatment — open question they want us to explore.
  - **Patterned/textured items** (STOCKHOLM ottoman, NÄSSELKLOCKA bedding): preserve pattern fidelity; shadow falls off to the right.

## Test set
The input deck lists ~25 SKUs spanning the difficulty range we'll need to handle:
- **Large upholstered furniture:** STOCKHOLM 2025 sofa, JÄTTEBO, SALTSJÖBADEN, VIMLE, SÖDERHAMN, BLÅFJÄLLET bed, VATNESTRÖM mattress.
- **Hard furniture:** TONSTAD table, PAX/BERGSBO wardrobe, HAVSTA cabinet, ANTILOP highchair, VEDDINGE door.
- **Patterned/textile:** STOCKHOLM 2025 ottoman, NÄSSELKLOCKA bedding, MARGOSATRÄD throw, FANTASTISK napkins.
- **Small/tricky:** UPPFYLD peeler, BLECKA hooks, KAJPLATS bulbs, TILLBRINGARE clear jug, STOCKHOLM 2025 vase, PILSKOTT pendant, VINNÄSET knobs, FEJKA plant, DRYCK FLÄDER bottle, SKOGSDUVA plush, IKEA 365+ cookware.

These are the proof points the proposal needs to address — transparent glass, plush fur, stainless steel, patterns, plants, line drawings (VIMLE), tiny hardware.

## What our proposal must contain
Per RFP §5 and §6:

1. **Top-level technical approach.** Script-based vs. ComfyUI vs. other orchestration — say which and why.
2. **AI model inventory.** Every model in the pipeline: relighting, shadow generation, segmentation/matting, upscaling, QA. Purpose of each.
3. **API inventory.** External + internal APIs, purpose, auth method. (Freepik is the assumed primary.)
4. **Workflow architecture.** How orchestration is designed and managed.
5. **Stack.** Languages and key libraries (Python, PyTorch, vLLM, transformers, etc.).
6. **Hosting.** Cloud vs. on-prem, scaling strategy for 10k–100k throughput.
7. **Storage & security.** How originals + generated outputs are stored, processed, secured.
8. **QA strategy.** How we'd build automated quality assurance — this is called out specifically as an evaluation axis.
9. **Cost estimate.** Structured pricing, **excluding Freepik platform credits**.
10. **Timeline.** Setup → exploration → testing → handover for production readiness.

## Evaluation criteria (what they'll grade on)
- Automation + scale capability.
- Image quality and alignment with IKEA visual standards.
- **Ingenuity and robustness of the AI workflow and QA approach.**
- Cost efficiency and timeline.

## Open design questions to resolve before submission
- **Freepik vs. our own pipeline:** RFP says "preferably Freepik" — do we propose Freepik-first with fallback models, or pitch a hybrid? Affects cost story and handover scope.
- **QA at scale:** what's the automated check that catches the "yellow shadow / smoothed weave" failures the deck calls out? Likely a multi-signal approach (color analysis on shadow region, perceptual diff vs. original for texture preservation, segmentation-based margin check).
- **Shadow direction adaptivity:** rule-based (per category) or learned per image? Deck implies it varies by product.
- **Pendant/flat-lying treatments:** how the pipeline branches for non-standard cases — classifier upstream, or per-SKU config.
- **Handover model:** since IMC owns the result, anything tied to Freepik credits is a recurring cost they inherit. Worth noting in the cost section.

## Existing in this repo (relevant prior art)
We already have a Photoroom-based shadow + relight pipeline (`src/photoroom.mjs`, `src/relight.mjs`, `scripts/batch.mjs`, `scripts/relight.mjs`) running over IKEA product photos. That's a useful baseline for the proposal — it's evidence we've already worked on this exact problem shape, even though the RFP steers toward Freepik. We can reference the sweep methodology (`scripts/sweep.mjs`, `scripts/sweep-multi.mjs`) as the kind of param-search approach we'd apply during the exploration phase.
