Guide d'utilisation
Flux-2-Klein-4b image-to-image pour les photos de produits e-commerce
Un workflow pratique pour éditer des photos de produits existantes avec flux-2-klein-4b/image-to-image sur l'API hiapi — avec de vrais prompts, de vrais résultats et du code par lots.
Pourquoi éditer les photos de produits plutôt que de les reshooter
Une seule photo principale de produit couvre rarement tout ce dont une fiche produit a besoin. La grille d'une plateforme e-commerce exige une image propre sur fond blanc. Un article de blog ou une publicité a besoin du même produit dans une scène de vie. Une campagne saisonnière nécessite une variante de couleur ou de matière qui n'existe peut-être pas encore. Reshooter chaque variante est lent et coûteux — et la plupart du temps, la géométrie du produit (forme, position du logo, proportions) ne devrait pas changer du tout : seuls l'arrière-plan ou une matière donnée doivent évoluer.
C'est exactement le type de tâche pour lequel flux-2-klein-4b/image-to-image sur l'API hiapi est conçu : il prend une photo de produit existante et une instruction d'édition, et produit une nouvelle image dans laquelle tout ce que vous n'avez pas demandé de modifier reste identique. C'est le palier rapide et économique de la gamme FLUX.2 [klein] — pas le modèle à choisir pour générer un produit à partir de zéro, mais un excellent choix une fois que vous disposez d'une photo de base satisfaisante.
Voici deux éditions réelles effectuées sur la même photo de départ, avec les prompts exacts utilisés, ainsi qu'un script par lots pour appliquer ce processus à tout un catalogue de produits.
La photo de départ

Voici l'image de base sur laquelle reposent toutes les éditions ci-dessous : un casque audio supra-auriculaire noir mat, photographié sur fond de studio gris uni — une photo « avant » typique de fiche produit, qui a besoin de plus de variantes.
Édition 1 : placer le produit dans une scène de vie

Prompt utilisé :
Gardez le casque exactement identique (forme, finition noir mat, logo et proportions inchangés). Remplacez le fond de studio gris uni par une scène de vie chaleureuse : le casque posé sur un bureau en chêne clair, à côté d'un MacBook fermé, d'une petite plante verte et d'une tasse à café en céramique, une douce lumière naturelle entrant par une fenêtre à gauche, faible profondeur de champ, photographie de produit éditoriale dans un style bureau à domicile chaleureux.
L'astuce essentielle réside dans la première phrase : avant de décrire le nouvel arrière-plan, indiquez explicitement au modèle quelles parties doivent rester parfaitement identiques (forme, finition, logo, proportions). Sans ce point d'ancrage, les modèles image-to-image modifient parfois les proportions ou la finition du produit en même temps que la scène. Avec lui, le casque est conservé tel quel et seul l'environnement change.
Édition 2 : remplacer la matière sans toucher à la forme

Prompt utilisé :
Gardez la forme, les proportions, le logo et l'angle de prise de vue du casque exactement identiques. Changez uniquement la matière et la couleur des coussinets d'oreille et du rembourrage de l'arceau, du noir mat vers un effet cuir fauve avec coutures visibles, tandis que la coque et les branches de l'arceau restent en noir mat. Conservez le fond de studio gris uni et l'éclairage inchangés, photographie de produit pour catalogue e-commerce.
Cette édition est plus ciblée que celle de la scène de vie : même arrière-plan, même éclairage, même angle de prise de vue — seule la matière des coussinets d'oreille et du rembourrage de l'arceau passe du noir mat au cuir fauve. C'est en restreignant l'instruction avec une telle précision (en désignant exactement les pièces concernées et la matière exacte) que le reste du produit — coque, logo, silhouette — reste inchangé.
Pourquoi ces éditions sont fiables
- Indiquez ce qui reste inchangé, pas seulement ce qui change. Faire précéder l'instruction d'édition de « gardez la forme, le logo et les proportions inchangés » est plus efficace que n'importe quel détail accumulé sur le nouvel arrière-plan ou la nouvelle matière.
- Soyez littéral sur la cible. « effet cuir fauve avec coutures visibles » laisse moins de place à l'interprétation du modèle que « rendez-le haut de gamme ».
- Une seule édition par prompt. Le remplacement d'arrière-plan et le remplacement de matière fonctionnent bien séparément ; empiler plusieurs modifications sans rapport dans un même prompt brouille souvent les points d'ancrage et fait dériver des détails non souhaités.
- Réutilisez la même photo de base entre les variantes. Chaque image de ce guide part de la même photo source, ce qui explique qu'elles puissent être utilisées ensemble pour une même fiche produit ou campagne marketing.
Éditer un catalogue de produits par lots
Les deux éditions ci-dessus utilisent la même structure de requête : une URL d'image existante plus un prompt d'édition, soumis au point de terminaison de tâche asynchrone de hiapi. L'extrait ci-dessous boucle sur une liste de tuples (base_image_url, prompt, output_name) — c'est exactement le même schéma que vous utiliseriez pour traiter tout un catalogue en une série de variantes d'arrière-plan ou de matière.
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
MODEL = "flux-2-klein-4b/image-to-image"
def submit_edit(base_image_url: str, prompt: str) -> str:
resp = requests.post(
API_BASE,
headers={"Authorization": f"Bearer {TOKEN}"},
json={
"model": MODEL,
"input": {
"prompt": prompt,
"image_urls": [base_image_url],
"resolution": "1 MP",
},
},
timeout=60,
)
resp.raise_for_status()
return resp.json()["data"]["taskId"]
def wait_and_download(task_id: str, out_path: str, poll_s: int = 5, timeout_s: int = 300) -> None:
deadline = time.time() + timeout_s
while time.time() < deadline:
r = requests.get(
f"{API_BASE}/{task_id}",
headers={"Authorization": f"Bearer {TOKEN}"},
timeout=30,
)
task = r.json().get("data", {})
if task.get("status") == "success":
url = task["output"][0]["url"]
img = requests.get(url, timeout=120)
with open(out_path, "wb") as f:
f.write(img.content)
return
if task.get("status") == "fail":
raise RuntimeError(task.get("error"))
time.sleep(poll_s)
raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")
# One entry per product / variant you need.
batch = [
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the product exactly as-is (shape, finish, logo, proportions). "
"Replace the background with a warm lifestyle desk scene, soft natural "
"light from the left.",
"headphones-lifestyle.jpg"),
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the shape, proportions, logo, and camera angle exactly as they "
"are. Change only the ear cushion and headband padding material to tan "
"brown leather with visible stitching; background and lighting stay "
"the same.",
"headphones-tan-leather.jpg"),
]
for base_url, prompt, out_name in batch:
task_id = submit_edit(base_url, prompt)
wait_and_download(task_id, out_name)
print(f"saved {out_name}")
Chaque appel est indépendant ; pour un gros catalogue, vous exécuterez donc généralement un petit groupe de ces tâches en parallèle (quelques workers suffisent en général — le goulot d'étranglement est l'API de tâches elle-même, pas votre client) plutôt qu'une boucle strictement séquentielle.
Tarification
flux-2-klein-4b/image-to-image est facturé à l'image, avec un coût qui augmente selon la résolution de sortie. En date d'août 2026, le palier 1MP utilisé pour les deux éditions de ce guide coûte 0,00715 $ par image ; consultez la page de tarification pour connaître l'ensemble des paliers de résolution (de 0,25MP à 4MP) et les tarifs actuels des autres modèles, car les prix peuvent évoluer.
Questions fréquentes
L'image-to-image modifie-t-il la forme ou le logo du produit ? Pas si vous demandez explicitement de ne pas y toucher. Indiquer clairement au début du prompt ce qui doit rester fixe (forme, proportions, logo) est précisément ce qui maintient ces éléments stables — l'absence d'indication explicite est la cause la plus fréquente de dérive indésirable.
Quelle résolution utiliser pour l'édition de catalogue ? 1MP suffit pour la plupart des fiches web et des contenus en situation de vie, tout en maîtrisant les coûts ; ne passez à 2MP ou 4MP que pour les images destinées à être recadrées de près ou imprimées, car chaque palier coûte plus cher.
Puis-je traiter tout un catalogue en une seule fois ?
Oui — le script par lots ci-dessus illustre ce schéma : parcourir une liste de tuples (image, prompt, output name) et soumettre chaque élément comme tâche indépendante. Exécutez quelques requêtes en parallèle plutôt qu'une immense boucle séquentielle.
Quelle différence avec la génération d'un produit à partir de zéro en text-to-image ? Le text-to-image part de zéro et ne peut donc pas garantir une correspondance avec la géométrie exacte d'un produit existant. L'image-to-image part de votre vraie photo ; la forme, le logo et les proportions que vous n'avez pas demandé de modifier sont donc préservés par construction — exactement ce dont un catalogue de produits a besoin.
Essayez par vous-même
Une fois le prompt précisément délimité, chacune des deux éditions ci-dessus ne nécessite qu'un seul appel API. Si vous disposez déjà de photos de produits et souhaitez générer des variantes en situation de vie ou de matière sans reshooter, le démarrage rapide de la documentation hiapi vous guide en quelques minutes à travers l'authentification et votre première requête.
Articles similaires
Voir tous les articles →-
Guide d'utilisation
Guide de démarrage pour seedream-5.0-pro/image-to-image : capacités, tarification et points d'intégration
Limites de capacité, mode de facturation et pratiques d'intégration technique du modèle d'édition d'image de ByteDance
-
Guide d'utilisation
Guide de prise en main de la génération d'images par texte avec seedream-5.0-pro : limites de capacités, intégration API et maîtrise des coûts
Point de vue pratique pour les développeurs : des points clés des paramètres à l'estimation du coût de 0,05 $ par image
-
Guide d'utilisation
Guide de prise en main de Hailuo 2.3 Fast image-to-video : limites de capacités, tarification et intégration pratique
Points clés pour les développeurs : choisir et intégrer le modèle image-to-video de MiniMax