GPT-6 Sol et Claude Opus 5.5 disponiblesGPT-6 Sol à moitié prix par rapport à 5.6 Sol

API d’essayage virtuel : changer la tenue avec GPT Image 2

Une photo et un prompt suffisent à changer la tenue. Voici le code de la requête, trois changements exécutés le 28 octobre 2026 et les endroits où l’édition dérive.

Kiki, OmniaKey COO7 minutes de lecture
Sur cette page

Oui, avec un prompt texte. Le point de terminaison d’édition de GPT-Image 2 a changé la tenue sur une photo et conservé la pose, le visage et le fond lors de nos trois essais du 28 octobre 2026. Il n’a pas d’entrée dédiée au vêtement, mais une seconde photo du vêtement a changé la longueur de la robe dans notre essai. Vérifiez chaque résultat à l’œil.

La requête est une édition d’image sur l’API média d’OmniaKey : une photo source, un prompt et des images de référence facultatives. Nous avons vérifié la fonction ci-dessous le 28 octobre 2026 avec un autre prompt (un imperméable jaune) sur un JPEG de 1024 pixels du modèle de base, et elle a renvoyé un PNG de 1024x1536.

Ce qu’une édition peut faire pour un essayage, et ce qu’elle ne peut pas

Une édition d’image part d’une photo source et d’un prompt. L’opération est edit, la source est intégrée en Base64 et le prompt nomme la nouvelle tenue ; la documentation de l’API image d’OmniaKey (vérifiée le 28 octobre 2026) autorise aussi plusieurs images de référence dans un tableau images. Le résultat est une nouvelle image : les vêtements changent, la personne reste. Dans nos essais, le visage, la pose, les cheveux et le fond de studio ont tenu.

Deux limites comptent pour un essayage : il n’y a pas de champ séparé pour le vêtement, donc le modèle le dessine d’après votre description ou une seconde photo, et la nouvelle image peut toucher des détails que vous n’avez pas nommés. Une fonction d’essayage doit montrer le résultat pour vérification et laisser l’acheteur juger la ressemblance. La même opération sert aussi à retirer un objet d’une scène ; pour les éditions guidées par instruction, voyez le guide de l’alternative FLUX Kontext.

Envoyer la photo et le prompt de tenue

Envoyez un POST à https://api.omniakey.com/v1/media/tasks avec une clé bearer, un corps JSON et un en-tête Idempotency-Key ; la documentation de l’API image d’OmniaKey (vérifiée le 28 octobre 2026) indique que la création renvoie HTTP 202 et un id de tâche. Interrogez l’URL de la tâche tant que le statut est queued ou processing ; succeeded signifie que les ressources sont prêtes, et une tâche en échec porte error.code et error.message et n’est pas facturée.

Renseignez les champs de la tâche ainsi :

ChampValeur
modelgpt-image-2
typeimage
operationedit
input.promptl’instruction de tenue
input.imagela photo source sous forme d’objet data et mime_type
input.imagesphotos de référence supplémentaires
parameters.sizeWIDTHxHEIGHT
parameters.qualitylow, medium, high ou auto
parameters.n1

Gardez la requête sous 1 MiB, car le Base64 en ligne compte dans cette limite. Le nombre d’échantillons doit être 1, et l’API renvoie toujours un PNG opaque : lisez donc les dimensions réelles dans le fichier téléchargé.

Voici la fonction :

python
import base64
import json
import os
import time
import urllib.request
import uuid

API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]


def request(method, url, body=None, extra_headers=None):
    headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
    data = None
    if body is not None:
        headers["Content-Type"] = "application/json"
        data = json.dumps(body).encode()
    headers.update(extra_headers or {})
    req = urllib.request.Request(url, data=data, headers=headers, method=method)
    with urllib.request.urlopen(req, timeout=120) as resp:
        return json.load(resp)


def edit_image(source_path, prompt, out_path, size="1024x1536", quality="medium"):
    with open(source_path, "rb") as f:
        image = base64.b64encode(f.read()).decode()
    body = {
        "model": "gpt-image-2",
        "type": "image",
        "operation": "edit",
        "input": {"prompt": prompt, "image": {"data": image, "mime_type": "image/jpeg"}},
        "parameters": {"size": size, "quality": quality},
    }
    task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
    for _ in range(150):
        time.sleep(4)
        state = request("GET", f"{API}/{task}")
        if state["status"] not in ("queued", "processing"):
            break
    if state["status"] != "succeeded":
        raise RuntimeError(state.get("error") or state["status"])
    asset_url = state["assets"][0]["url"]  # lien signé : valable environ une heure, téléchargez maintenant
    req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
    with urllib.request.urlopen(req, timeout=120) as resp, open(out_path, "wb") as f:
        f.write(resp.read())
    return task
if __name__ == "__main__":
    task = edit_image(
        "vto-base.jpg",
        "Change the outfit: she now wears a red satin slip dress with thin straps that falls to mid-calf. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.",
        "vto-slip.png",
        size="1024x1536",
    )
    print("task", task)

L’URL signée de la ressource dure environ une heure et le fichier est conservé 24 heures, selon la même documentation ; téléchargez-le dès que la tâche réussit. Notre vérification du 28 octobre 2026 a utilisé le prompt de l’imperméable jaune sur un JPEG de 1024 pixels du modèle de base et a renvoyé un PNG de 1024x1536. Le script envoie un en-tête User-Agent : la valeur par défaut de Python a été refusée avec HTTP 403 dans notre essai, et l’ajout de l’en-tête a corrigé le problème.

Trois changements de tenue que nous avons exécutés

Les trois changements partaient de la même photo synthétique : une femme en T-shirt blanc à col rond et jean bleu foncé dans un studio uni gris clair, créée en 1024x1536 et qualité medium lors de nos essais du 28 octobre 2026.

Le premier demandait une robe nuisette en satin rouge à fines bretelles tombant au milieu du mollet. La robe est apparue, et la pose, le visage, les cheveux et le fond sont restés identiques. Les baskets blanches sont devenues des sandales blanches à talons et à lanières sans que nous les demandions.

Le deuxième demandait un blazer en laine vert foncé sur un caraco en soie crème, avec un pantalon droit noir. Les trois pièces sont apparues, et les baskets blanches sont restées.

Le troisième demandait un haut à manches longues à rayures horizontales bleu marine et blanches, avec un petit cœur rouge brodé sur la poitrine gauche. Les rayures et le cœur se sont placés sur la poitrine gauche ; le jean bleu foncé et les baskets blanches sont restés.

Quatre portraits de studio : le T-shirt blanc et le jean d’origine, une robe nuisette en satin rouge, un blazer vert foncé et un haut rayé
L’original et trois changements de tenue par texte seul. Même pose, même visage et même fond de studio sur chaque image.

Toutes les personnes et scènes sont synthétiques, et nous avons exécuté chaque prompt une fois : chaque image est donc un seul échantillon.

Généré avec GPT-Image 2 via l’API OmniaKey le 28 octobre 2026, taille 1024x1536, qualité medium.

Une photo de vêtement comme seconde référence

Pour un résultat plus fidèle, envoyez le vêtement comme seconde image. Nous avons mis la photo de la personne en premier, une robe nuisette en satin rouge à plat en second, et utilisé input.images avec ce prompt : "Dress the woman in the first image in the red satin slip dress shown in the second image. Keep her pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos."

La robe descend jusqu’au sol, proche de la longueur de la photo à plat. La version du même vêtement décrite uniquement en mots s’arrêtait au milieu du mollet. Dans notre unique échantillon, la photo du vêtement a apporté la longueur que les mots laissaient ouverte.

Trois panneaux : une robe nuisette rouge à plat, la même robe portée par le mannequin jusqu’au sol et une version texte seul qui s’arrête au milieu du mollet
À gauche : la photo du vêtement envoyée. Au centre : avec deux images, la robe suit la longueur de la photo. À droite : la même robe décrite uniquement en mots.

Où le résultat a dérivé

La dérive est apparue dans les parties que nous avions laissées hors du prompt : le changement en nuisette a modifié les chaussures alors que le prompt ne nommait que la robe. Vérifiez le visage, les mains, l’ourlet, les chaussures et tout motif en taille réelle avant de montrer un résultat à un acheteur. Nous n’avons pas testé un vêtement avec un logo imprimé, le motif exact du tissu d’une photo produit, ni plus de deux images.

Quand une API d’essayage dédiée convient mieux

Une API d’essayage dédiée prend la personne et le vêtement comme entrées séparées. La page Vertex AI de Google « Generate Virtual Try-On Images » (dernière mise à jour le 26 octobre 2026 ; vérifiée le 28 octobre 2026) dit : "You provide an image of a person and an image of a clothing product." La même page liste personImage et productImages comme champs Base64, un sampleCount de 1 à 4 et l’id de modèle virtual-try-on-001. Elle comporte aussi un avis indiquant que la documentation Vertex AI n’est plus mise à jour.

Choisissez ce type de point de terminaison quand la photo du vêtement fait foi et que vous avez besoin de plusieurs échantillons par requête. Choisissez l’édition GPT-Image 2 quand un seul pipeline pour les changements de tenue et les autres éditions compte plus que le nombre d’échantillons par appel.

La page de tarifs d’OpenAI (vérifiée le 28 octobre 2026) indique que gpt-image-2 est facturé au token : la page liste des tarifs par token, sans tableau par image, et renvoie à un calculateur dans le guide de génération d’images. Le tarif actuel d’OmniaKey figure sur la page tarifs.

Un modèle de prompt pour changer de tenue

Reprenez la forme qui a fonctionné dans nos essais : nommez d’abord le vêtement, puis verrouillez la personne et le décor.

Change the outfit: she now wears [garment, colour, fabric, length]. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.

  • Vêtement : une phrase avec couleur, tissu et longueur. « A red satin slip dress with thin straps that falls to mid-calf » a produit un changement net.
  • Verrous : pose, visage, cheveux, corps, fond, éclairage. Énumérez-les explicitement dans le prompt.
  • Finition : « Photorealistic, no text, no logos. » Nos prompts utilisaient cette fin.
  • Chaussures : nommez-les si elles doivent rester, par exemple « keep the white sneakers ». Notre changement en nuisette les a modifiées quand elles n’étaient pas dans le texte.

Ajoutez une seconde image quand la longueur compte plus que les mots : la personne en premier, le vêtement ensuite, et dans le prompt référez-vous à « the first image » et « the second image », comme nous l’avons fait. Pour l’ordre général du prompt, voyez le guide des prompts GPT Image 2.

Questions fréquentes

Existe-t-il un point de terminaison d’essayage virtuel dédié dans l’API GPT Image 2 ?

Non. La page du modèle chez OmniaKey (vérifiée le 28 octobre 2026) liste le texte en image et l’édition d’image. Dans nos essais, un essayage était une édition avec un prompt texte et une seconde image facultative.

Puis-je envoyer une photo du vêtement ?

Oui, comme seconde image de référence dans input.images. Lors de notre essai du 28 octobre 2026, elle a changé la longueur de la robe pour suivre la photo à plat.

Le visage reste-t-il identique ?

Dans nos trois changements et l’essai à deux références, oui, à l’œil. Vérifiez chaque résultat en taille réelle avant de le montrer.

Combien de temps les liens de résultat durent-ils ?

Environ une heure, selon la documentation de l’API image d’OmniaKey vérifiée le 28 octobre 2026, et le fichier est conservé 24 heures. Téléchargez-le dès que la tâche réussit.

Quelle taille demander ?

Passez size en WIDTHxHEIGHT, par exemple 1024x1536, puis lisez les dimensions réelles dans le PNG téléchargé. Nos essais utilisaient 1024x1536 en qualité medium.

Commencez avec une photo et un prompt de tenue. La page GPT-Image 2 couvre le modèle ; les tarifs actuels sont à part.

Modèles cités dans cet article

API d’essayage virtuelGPT Image 2édition d’imageschangement de tenueAPI

Articles similaires

Articles récents