AI Fashion Models API alters garment details despite multiple product reference images

Hello Photoroom API team,

We are evaluating AI Fashion Models for a production workflow for Rouxamania, a fashion e-commerce business in Greece.

We successfully tested the Sandbox API using:

  • a custom model image
  • 4 real photographs of the same garment as product references
  • AI Fashion Models
  • standing pose
  • studio scene
  • portrait output

The API request succeeds (HTTP 200) and the overall generated image is visually good. However, the generated garment is not sufficiently faithful to the real SKU.

PRODUCT FIDELITY ISSUES OBSERVED

The real product is a men’s Damaged Jeans model ZR6A.

Across our tests, the generated image altered or removed SKU-specific details, including:

  1. The original wash / subtle distressing details were reduced or removed.
  2. The distinctive design of the main waistband button was not reproduced correctly.
  3. In a subsequent test, a small cross/star-like detail was invented near the front pocket even though it does not exist there on the real garment.
  4. Small construction/details can therefore be removed, changed, or relocated despite supplying multiple real product reference images.

For our use case, these are critical errors. The AI may change the model, pose, lighting and photographic presentation, but it must NOT redesign the garment.

Our required rule is:

REAL PRODUCT REFERENCES = SOURCE OF TRUTH.

The generated garment must preserve the original product’s:

  • color and wash
  • fading/distressing
  • logos and text
  • labels and patches
  • buttons and hardware
  • closures
  • pockets
  • stitching and seams
  • fabric/texture
  • hems
  • prints/embroidery
  • SKU-specific construction details

We can provide:

  1. Standalone Python code used for the Sandbox API request
  2. The original product reference images
  3. The custom model input
  4. The actual API output image
  5. Close-up examples showing the fidelity differences

Before moving this workflow to a paid API plan, we would appreciate technical guidance on the following:

  1. Is there a recommended AI Fashion Models API configuration or reference-image strategy for maximizing exact garment fidelity?

  2. Can Product Fixer be used programmatically through the API with:

    • the generated image,
    • original product reference image(s),
    • and a localized mask/repair region?
  3. Is Fashion Fidelity Rater / Visual QA available through a self-service API, or only through Enterprise?

  4. Can an API workflow automatically compare the generated garment against the original references and return a fidelity score, PASS/FAIL result, or detected mismatches?

  5. Can a failed fidelity check trigger a localized reference-based repair instead of regenerating the complete image?

Our target production workflow is:

REAL PRODUCT REFERENCES
→ AI FASHION MODELS
→ AUTOMATED PRODUCT FIDELITY QC
→ LOCALIZED REPAIR IF NEEDED
→ QC
→ EXPORT

Our expected volume is approximately 200–300 new fashion products per month, with multiple images per product.

We want to determine the technically correct Photoroom workflow before selecting a paid plan.

Thank you.

import os
import requests

API_KEY = os.environ.get(“PHOTOROOM_API_KEY”)

if not API_KEY:
raise RuntimeError(“PHOTOROOM_API_KEY not found”)

url = “https://image-api.photoroom.com/v2/edit

data = {
“removeBackground”: “false”,
“referenceBox”: “originalImage”,
“virtualModel.mode”: “ai.auto”,
“virtualModel.scene.preset.name”: “studio”,
“virtualModel.pose”: “standing”,
“virtualModel.size”: “PORTRAIT_HD_4_3”,
“virtualModel.prompt”: (
"Preserve the real garment exactly as shown in all product references. "
“Do not redesign, remove, move, simplify, invent or alter any garment detail.”
),
}

files = {
“imageFile”: open(“ZR6A.jpg”, “rb”),
“virtualModel.model.custom.imageFile”: open(“HOUSE_MODEL.jpg”, “rb”),
“virtualModel.additionalProductImages[0].imageFile”: open(“ZR6A_1.jpg”, “rb”),
“virtualModel.additionalProductImages[1].imageFile”: open(“ZR6A_2.jpg”, “rb”),
“virtualModel.additionalProductImages[2].imageFile”: open(“ZR6A_3.jpg”, “rb”),
}

response = requests.post(
url,
headers={“x-api-key”: API_KEY},
data=data,
files=files,
)

print(“STATUS:”, response.status_code)
print(“CONTENT-TYPE:”, response.headers.get(“content-type”))

response.raise_for_status()

with open(“ZR6A_PHOTOROOM_OUTPUT.png”, “wb”) as f:
f.write(response.content)