PrestaShop combination images: one AI image per color

In PrestaShop you upload every image on the product, then tick which ones belong to each combination. Make one image per color from a packshot with Sume.

5 min readSume
All posts

PrestaShop does not store images per combination. You upload every image on the product, including those for each color or size, and then tick the images that represent each combination (PrestaShop 1.7 user guide, read 2026-10-03). So a product with five colors needs five clean images, uploaded once on the product and linked from five combinations.

Sume can make the five color images from one packshot with one image-edit request each. The linking is a PrestaShop back office step, and so is checking that the color is right.

How does PrestaShop attach images to combinations?

The guide describes two places. In the product's Basic settings tab, the image section takes all the images for the product, "including all of its combinations (color, size, shape, etc.)". The first thumbnail is the default cover image, and you can change it with the Cover image setting. When you edit a combination, the Image field shows the images already linked to the product, and you check the ones that best represent that combination (read 2026-10-03).

PrestaShop 1.7 product image handling, read 2026-10-03
StepWhat the guide saysWhat it means for AI images
UploadDrag and drop or select files; upload all images, including combinationsGenerate all color images first, then upload together
CoverThe first thumbnail is the cover; change it with the Cover image settingMake the lead color's image first
CaptionEach image can have a caption, used as the alt attribute; translate it per languageWrite the caption with the color name
CombinationTick the images that best represent the combinationOne image per color, named by color
Bulk actionsEdit several combinations at onceUseful for price or stock, not for picking images

How do you make one image per color with Sume?

Use the packshot as the reference and ask for one change: the color. On openai/gpt-image-2.5, input_references takes up to 16 images, so you can pass the packshot and a photo of the real fabric swatch as a second reference. State what must stay the same: cut, stitching, zips, labels.

The loop below sends one request per color with its own Idempotency-Key and prints either the image URL (200) or the status URL of a job to poll (202).

import os, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
packshot = "https://cdn.example.com/jacket-white.jpg"
colors = ["navy", "forest green", "burgundy"]
for color in colors:
    body = {
        "model": "openai/gpt-image-2.5",
        "prompt": f"The same jacket recolored {color}. Keep cut, stitching, zips and labels unchanged. Plain light background.",
        "input_references": [{"type": "image_url", "image_url": {"url": packshot}}],
        "image_size": "1200x1200",
    }
    key = "jacket-" + color.replace(" ", "-") + "-v1"
    r = requests.post("https://api.sume.com/v1/images", json=body, timeout=60,
                      headers={**H, "Idempotency-Key": key})
    if r.status_code == 200:
        print(color, r.json()["data"][0]["url"])
    elif r.status_code == 202:
        print(color, "poll", r.json()["data"]["status_url"])
    else:
        print(color, r.status_code, r.text[:200])

Can you trust the color?

Not without a check. Sume's docs list no color-matching control for image edits, so a recolor is a model's best reading of your words. A burgundy that drifts toward red sends returns. Put the real swatch photo in as a second reference, name the color the way your product data does, and compare each output against a physical sample or the supplier's color card before upload.

If a color fails the check, regenerate that one color under a new Idempotency-Key. Reusing a key with a changed prompt returns 409, which is the signal you changed the request and need a new version suffix.

What does the PrestaShop side add?

Captions are the part worth scripting. The guide says a caption is used as the image's alt attribute and so helps search engines, and that you should translate it if you run several languages (read 2026-10-03). A caption like Jacket, forest green, front per image is better than an empty field, and it is data you already have in the color column of your sheet.

The guide also notes that the default maximum file size comes from your server's PHP settings and can be lowered on the Images preference page, under Product images. Check a generated file against that limit on a real store before you plan a large upload.

What should the batch check include?

For a catalog run, generate by product, not by color across products, so one person can review a whole color set side by side and catch the odd one out. A navy that is two shades lighter than its siblings is obvious in a row of five and invisible in a folder of five hundred. Keep the packshot, the prompt text and the output URL in one sheet row per color so a failed one can be redone alone.

  • Name each file with the SKU and the color, such as jacket-1042-forest-green.png.
  • Upload every color image on the product first, then link images to combinations, then set the cover.
  • Write one caption per image and per language you sell in.
  • Review each set against the supplier color card, and regenerate failures with a new version suffix.
  • Sume accepts jobs beyond your plan's processing limit as queued work and returns 429 queue_full only when the queue is also full, so pace big loops and back off on that code.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume