HiAPI
Blog

Guide d'utilisation

flux-2/image-to-image pour les photos produits e-commerce : guide de l'API hiapi

Édition multi-images de référence, comportement des ratios d'aspect vérifié en conditions réelles, et un script Python prêt à traiter un catalogue produits en lot

Aug 8, 2026
flux-2/image-to-image pour les photos produits e-commerce : guide de l'API hiapi

Si vous disposez déjà de photos produits correctes — même des clichés désordonnés avec un mauvais fond ou un cadrage inadapté — flux-2/image-to-image peut les transformer en images e-commerce prêtes à publier sans les reprendre. C'est un modèle d'édition, pas un modèle texte-vers-image : vous fournissez 1 à 8 images de référence plus une instruction, et il renvoie une nouvelle image qui préserve précisément la forme, la couleur, la matière et les proportions du produit tout en remplaçant tout ce qui l'entoure — fond, lumière, composition, et même le décor dans lequel le produit est placé.

Nous avons exécuté de bout en bout deux tâches e-commerce courantes via le point d'accès /v1/tasks de hiapi — remplacement de fond studio et composition dans un décor lifestyle — et vérifié le schéma d'entrée, le comportement des ratios d'aspect ainsi que les prix réels par image par rapport à la page de tarification hiapi avant d'écrire ces lignes.

  • flux-2/image-to-image accepte jusqu'à 8 images de référence par appel, si bien que le remplacement de fond (1 image) et la composition de scène (2 images ou plus) utilisent exactement le même point d'accès.
  • aspect_ratio: "auto" suit bel et bien le ratio d'aspect de l'image d'entrée elle-même — une photo verticale 9:16 de baskets reste en 9:16, sauf si vous le surchargez. Une valeur explicite comme "1:1" impose cette forme, quelle que soit l'entrée.
  • La tarification se fait par paliers de résolution : 1K à 0,035 $/image, 2K à 0,05 $/image — prix fixe, sans facturation au mégapixel.
  • C'est une véritable édition, pas une repeinture : le logo, les coutures et la texture matière du produit lui-même restent intacts après le changement de fond ou de scène.
  • Un script de traitement par lot (voir ci-dessous) suffit à traiter tout un catalogue produits avec la même instruction de nettoyage de fond.

Ce que fait réellement flux-2/image-to-image

Sous le capot, il s'agit d'un seul modèle sur l'interface de tâches unifiée de hiapi — vous ne choisissez pas entre un outil de « suppression de fond » et un outil de « composition » ; vous écrivez une instruction et fournissez les bonnes images de référence pour la tâche :

curl -s https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-2/image-to-image",
    "input": {
      "prompt": "Remove the background and place the product on a seamless white studio background with a soft contact shadow. Keep the product'"'"'s shape, color and proportions unchanged.",
      "image_urls": ["https://your-cdn.example.com/raw-product-photo.jpg"],
      "aspect_ratio": "auto",
      "resolution": "1K"
    }
  }'

Les champs obligatoires sont prompt (chaîne), image_urls (tableau, 8 maximum), aspect_ratio (auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2 ou 2:3) et resolution (1K ou 2K). La réponse renvoie un taskId — interrogez GET /v1/tasks/{taskId} jusqu'à ce que status vaille success, puis téléchargez immédiatement l'image depuis output[0].url (ce lien expire, ne le considérez donc pas comme un stockage permanent).

Le remplacement de fond ne nécessite qu'une seule image de référence. Pour composer le produit dans un décor lifestyle, passez-en deux : l'image produit en premier, la scène cible ensuite, et précisez dans l'instruction quel objet va où.

Ce que fait réellement le ratio d'aspect « auto »

C'est la partie à tester avant de bâtir un pipeline autour d'elle, car on suppose vite que le modèle produit toujours un carré fixe ou une forme par défaut. Ce n'est pas le cas.

Voici une photo de baskets verticale, exécutée avec aspect_ratio: "auto" — la sortie fait 720×1280, correspondant exactement au 9:16 de l'image de référence d'entrée, sans recadrage ni ajout de bandes vers une autre forme. auto signifie « suivre l'entrée », et non « choisir une valeur par défaut ».

Même image source, même instruction — la seule différence est le réglage explicite de aspect_ratio: "1:1". La sortie est un carré exact de 1024×1024, le modèle recompose pour s'adapter plutôt que de simplement recadrer. Si votre catalogue a besoin d'une grille carrée cohérente pour les pages de liste, imposez ce ratio ; si vous voulez que chaque image conserve sa composition native, gardez auto.

Deux exemples de composition de scène

Le remplacement de fond est le cas simple. L'astuce plus utile pour le contenu e-commerce consiste à composer une image produit propre dans un décor lifestyle — pour les visuels principaux, les posts sociaux ou les photos secondaires de type « mise en situation », sans prise de vue réelle.

Ici, deux images de référence ont été fournies : une photo produit épurée du casque, et une scène séparée de table en chêne ensoleillée. L'instruction précise quel objet placer et où (« posé naturellement près de la plante »), et demande au modèle d'épouser la direction lumineuse existante de la scène et de projeter une ombre crédible — précisément le détail qui fait paraître la composition réelle plutôt que collée.

Même scène cible, produit différent, toujours avec aspect_ratio: "auto" (qui hérite de la composition carrée de l'image de référence de la scène). La forme du filtre et la matière céramique sont préservées telles quelles depuis sa propre photo de référence — seul l'environnement a changé.

Traiter un catalogue produits en lot

À 0,035 $/image (résolution 1K) — moins cher qu'une reprise de mise en scène d'un produit —, faire tourner flux-2/image-to-image sur tout un catalogue produits se justifie facilement. Si vous voulez d'abord tester une instruction à moindre coût, le palier plus léger flux-2-klein-4b/image-to-image vaut le coup d'œil avant d'utiliser le modèle complet à grande échelle ; les prix actuels des deux figurent sur la page de tarification hiapi.

Une fois l'instruction réglée pour un produit, l'exécuter sur tout le catalogue n'est qu'une boucle sur la même requête. Cet exemple parcourt un ensemble de photos produits brutes, lance la même instruction de nettoyage de fond sur chacune, et affiche l'URL d'hébergement du résultat :

import os
import time

import requests

API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]

HEADERS = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json",
}

BACKGROUND_PROMPT = (
    "Remove the existing background and place the product on a seamless pure white "
    "studio background with a soft, realistic contact shadow and even diffused catalog "
    "lighting. Keep the product's exact shape, color, material and proportions unchanged."
)


def edit_product_image(prompt, image_urls, aspect_ratio="auto", resolution="1K"):
    payload = {
        "model": "flux-2/image-to-image",
        "input": {
            "prompt": prompt,
            "image_urls": image_urls,
            "aspect_ratio": aspect_ratio,
            "resolution": resolution,
        },
    }
    resp = requests.post(API_BASE, headers=HEADERS, json=payload, timeout=60)
    resp.raise_for_status()
    task_id = resp.json()["data"]["taskId"]

    while True:
        time.sleep(3)
        status = requests.get(f"{API_BASE}/{task_id}", headers=HEADERS, timeout=30).json()
        state = status["data"]["status"]
        if state == "success":
            return status["data"]["output"][0]["url"]
        if state == "fail":
            raise RuntimeError(f"task {task_id} failed: {status}")


CATALOG = [
    {"sku": "SNK-001", "image_url": "https://cdn.example.com/raw/snk-001.jpg"},
    {"sku": "HDP-014", "image_url": "https://cdn.example.com/raw/hdp-014.jpg"},
    {"sku": "DRP-022", "image_url": "https://cdn.example.com/raw/drp-022.jpg"},
]

for item in CATALOG:
    out_url = edit_product_image(BACKGROUND_PROMPT, [item["image_url"]])
    print(item["sku"], "->", out_url)

Chaque output[0].url est un lien à durée limitée — téléchargez-le et réhébergez-le dans la boucle (votre propre bucket, CDN, ou tout service qui alimente le backend de votre boutique) plutôt que de conserver l'URL brute. Pour un tour complet de la boucle tâche/interrogation/téléchargement (avec gestion des erreurs), voir comment utiliser flux-2/image-to-image via l'API hiapi.

Questions fréquentes

flux-2/image-to-image modifie-t-il le produit lui-même, ou seulement le fond ? Avec une instruction appropriée, il ne doit modifier que ce que vous lui demandez — fond, scène, lumière — tout en préservant la forme, la couleur et la matière du produit de l'image de référence. Ce n'est pas parfait à chaque essai ; vérifiez la sortie par rapport à la source avant publication, en particulier les petits textes ou logos sur l'emballage.

Combien d'images de référence au maximum par appel ? Jusqu'à 8. Le remplacement de fond n'en nécessite qu'une. La composition de scène en demande généralement 2 (produit + scène cible) — davantage d'images de référence est utile lorsque vous voulez que le modèle reproduise un personnage, un accessoire ou un élément de marque précis déjà présent dans un ensemble de photos.

Faut-il utiliser la résolution 1K ou 2K ? 1K (0,035 $/image) suffit pour la plupart des catalogues produits et des listes web — les compositions du casque et du filtre ci-dessus ont été générées en 1K. Pour les bannières de visuels principaux ou tout contenu qui sera ensuite recadré et agrandi, choisissez 2K (0,05 $/image).

Quelle différence entre flux-2/image-to-image et le palier Klein ? Klein (9b et 4b) échange une partie de la fidélité d'édition contre un prix plus bas — idéal pour tester une instruction à moindre coût avant de faire tourner le modèle complet sur tout le catalogue. Les prix actuels figurent dans le tableau des tarifs ci-dessus.

Puis-je imposer une taille de sortie plutôt que de laisser le modèle décider ? Oui — réglez aspect_ratio sur une valeur explicite (1:1, 4:3, 16:9, etc.) plutôt que auto. Le modèle recompose pour s'adapter à cette forme plutôt que de simplement recadrer une sortie en mode auto.

Points clés

  • flux-2/image-to-image édite des photos produits existantes plutôt que de générer à partir de zéro — image de référence en entrée, image éditée en sortie, identité du produit préservée.
  • aspect_ratio: "auto" suit la forme de l'image d'entrée elle-même ; réglez-le explicitement lorsque vous avez besoin d'un ratio de sortie cohérent sur toute une grille de catalogue.
  • La résolution 1K (0,035 $/image) couvre la plupart des cas d'usage e-commerce ; 2K (0,05 $/image) pour les tailles de visuels principaux ou les sorties fortement recadrées.
  • Le même point d'accès gère à la fois le remplacement de fond sur une image et la composition de scène multi-images — la seule différence est le nombre d'image_urls transmises.
  • Le traitement par lot n'est qu'une boucle ordinaire posée autour de la boucle tâche/interrogation/téléchargement, sans point d'accès batch séparé.

Si vous êtes prêt à l'utiliser sur votre propre catalogue produits, la page du modèle flux-2/image-to-image fournit le schéma en direct et une requête de démarrage rapide, tandis que les recettes de prompts flux-2/image-to-image rassemblent d'autres modèles de prompts testés au-delà du remplacement de fond et de la composition de scène.

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API