Aller au contenu principal

E-commerce : photos produit

E-commerce : photos produit

La génération d’images par IA transforme la production de visuels e-commerce. Là où un shooting photo classique coûte des milliers d’euros et prend des semaines, GPT Image permet de créer des visuels produit professionnels en quelques secondes. Cette leçon vous montre comment produire des photos produit exploitables commercialement.

Photo produit sur fond blanc

Le standard e-commerce par excellence : un produit détouré sur fond blanc.

from openai import OpenAI
import base64

client = OpenAI()

def photo_produit_fond_blanc(description_produit: str, output: str):
    """Génère une photo produit sur fond blanc, style e-commerce."""
    prompt = (
        f"{description_produit}, "
        "photographie produit professionnelle sur fond blanc pur, "
        "éclairage studio softbox, ombre douce, "
        "angle légèrement plongeant 3/4, "
        "netteté maximale, haute résolution, "
        "style Amazon / e-commerce premium"
    )

    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt,
        size="1024x1024",
        quality="high",
        response_format="b64_json"
    )

    data = base64.b64decode(response.data[0].b64_json)
    with open(output, "wb") as f:
        f.write(data)
    print(f"Photo produit : {output}")


photo_produit_fond_blanc(
    "Casque audio sans fil noir mat, design premium, coussinets cuir",
    "casque_fond_blanc.png"
)

Photos de mise en situation (lifestyle)

Les photos lifestyle montrent le produit dans son contexte d’utilisation :

from openai import OpenAI
import base64

client = OpenAI()

def photo_lifestyle(produit: str, contexte: str, output: str):
    """Génère une photo lifestyle d'un produit en situation."""
    prompt = (
        f"{produit} utilisé dans un contexte de {contexte}, "
        "photographie lifestyle éditoriale, lumière naturelle, "
        "profondeur de champ avec bokeh léger, "
        "composition décentrée règle des tiers, "
        "ambiance aspirationnelle, style magazine"
    )

    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt,
        size="1536x1024",
        quality="high",
        response_format="b64_json"
    )

    data = base64.b64decode(response.data[0].b64_json)
    with open(output, "wb") as f:
        f.write(data)
    print(f"Photo lifestyle : {output}")


photo_lifestyle(
    "Gourde isotherme en acier brossé",
    "randonnée en montagne, posée sur un rocher avec vue panoramique",
    "gourde_lifestyle.png"
)

photo_lifestyle(
    "Sac à dos en toile cirée marron",
    "café branché, posé sur une chaise en bois à côté d'un laptop",
    "sac_lifestyle.png"
)

Déclinaisons couleur d’un même produit

Générez rapidement toutes les variantes coloris de votre catalogue :

from openai import OpenAI
import base64

client = OpenAI()

produit_base = "Sneakers montantes en cuir"
couleurs = [
    ("blanc", "white_sneakers.png"),
    ("noir", "black_sneakers.png"),
    ("rouge bordeaux", "bordeaux_sneakers.png"),
    ("bleu marine", "navy_sneakers.png"),
    ("vert olive", "olive_sneakers.png"),
]

for couleur, filename in couleurs:
    prompt = (
        f"{produit_base} couleur {couleur}, "
        "photographie produit sur fond blanc, éclairage studio, "
        "vue 3/4 face, ombre portée douce, "
        "style site e-commerce premium, netteté maximale"
    )

    response = client.images.generate(
        model="gpt-image-1",
        prompt=prompt,
        size="1024x1024",
        quality="high",
        response_format="b64_json"
    )

    data = base64.b64decode(response.data[0].b64_json)
    with open(filename, "wb") as f:
        f.write(data)
    print(f"Couleur {couleur}{filename}")

Pack de vues multiples

Un produit e-commerce nécessite généralement plusieurs angles de vue :

from openai import OpenAI
import base64

client = OpenAI()

def pack_vues_produit(description: str, prefix: str):
    """Génère un pack de 4 vues d'un produit."""
    vues = [
        ("vue de face, centré", "face"),
        ("vue de profil gauche, angle 90 degrés", "profil"),
        ("vue de dessus, à plat (flat lay)", "dessus"),
        ("vue 3/4, angle plongeant léger", "3-4"),
    ]

    for prompt_vue, suffix in vues:
        prompt = (
            f"{description}, {prompt_vue}, "
            "fond blanc pur, éclairage studio professionnel, "
            "netteté maximale, style e-commerce"
        )

        response = client.images.generate(
            model="gpt-image-1",
            prompt=prompt,
            size="1024x1024",
            quality="high",
            response_format="b64_json"
        )

        path = f"{prefix}_{suffix}.png"
        data = base64.b64decode(response.data[0].b64_json)
        with open(path, "wb") as f:
            f.write(data)
        print(f"Vue {suffix}{path}")


pack_vues_produit(
    "Montre connectée avec bracelet en silicone noir, cadran rond, écran OLED",
    "montre"
)

Modifier l’arrière-plan d’une photo existante

Utilisez images.edit() pour replacer un produit dans un nouveau décor :

from openai import OpenAI
from PIL import Image, ImageDraw

client = OpenAI()

def changer_fond_produit(image_path: str, nouveau_fond: str, output: str):
    """
    Remplace l'arrière-plan d'une photo produit.
    Suppose que le produit est centré dans l'image.
    """
    source = Image.open(image_path)
    w, h = source.size
    mask = Image.new("RGBA", (w, h), (0, 0, 0, 0))
    draw = ImageDraw.Draw(mask)

    # Zone opaque au centre = protégée
    margin_x, margin_y = w // 5, h // 5
    draw.ellipse(
        [margin_x, margin_y, w - margin_x, h - margin_y],
        fill=(0, 0, 0, 255)
    )
    mask.save("temp_mask_fond.png")

    response = client.images.edit(
        model="gpt-image-1",
        image=open(image_path, "rb"),
        mask=open("temp_mask_fond.png", "rb"),
        prompt=f"Arrière-plan : {nouveau_fond}, le produit au centre reste intact"
    )

    import urllib.request
    urllib.request.urlretrieve(response.data[0].url, output)
    print(f"Fond modifié : {output}")


changer_fond_produit(
    "casque_fond_blanc.png",
    "bureau design minimaliste en bois clair, plante verte floue en arrière-plan",
    "casque_lifestyle_auto.png"
)

Limites et bonnes pratiques

  • Cohérence : GPT Image ne garantit pas que le même produit sera identique d’une génération à l’autre. Pour un catalogue cohérent, générez toutes les variantes dans la même session.
  • Texte sur le produit : les logos et textes sur le produit sont bien rendus, mais vérifiez toujours l’orthographe.
  • Dimensions réelles : le modèle ne connaît pas les proportions exactes de votre produit. Précisez-les dans le prompt si c’est important.
  • Validation humaine : utilisez l’IA pour accélérer la production, mais faites toujours valider les visuels avant publication.

Exercice pratique

Choisissez un produit (réel ou fictif). Créez un script qui génère automatiquement un pack e-commerce complet : 1 photo fond blanc, 2 photos lifestyle dans des contextes différents, et 3 déclinaisons couleurs.