HiAPI
Blog

Guide d'utilisation

FLUX 1.1 Pro pour les images produits e-commerce : guide de l'API hiapi

Jul 3, 2026
FLUX 1.1 Pro pour les images produits e-commerce : guide de l'API hiapi

Si vous vendez en ligne, vous connaissez déjà le calcul : une fiche produit a besoin d'une image sur fond blanc, d'une photo en situation, et idéalement d'une série de vues sous plusieurs angles — pour chaque SKU, chaque coloris. Une journée de studio ne couvre qu'une dizaine de produits ; une API d'images en couvre mille.

flux-1.1-pro (FLUX.1.1 [pro] de Black Forest Labs) est le modèle réaliste de référence sur hiapi : il rend des matières convaincantes — métal brossé, verre, textile, bokeh doux — avec une facturation uniforme de 0,05 $ par image. Ce guide est une recette e-commerce directement applicable : chaque image ci-dessous a été générée avec le prompt imprimé tel quel juste au-dessus, via les mêmes appels /v1/tasks que vous pouvez copier-coller, et nous avons relevé les plages de paramètres réelles — y compris ceux qui semblent devoir exister mais renvoient un 400 dès l'envoi.

L'API en 60 secondes

Sur hiapi, flux-1.1-pro fonctionne sur un endpoint de tâches asynchrone. Vous créez une tâche, vous la sondez, puis vous téléchargez le résultat :

# 1. Create the task
curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-1.1-pro",
    "input": {
      "prompt": "Studio packshot of an unbranded stainless steel wristwatch...",
      "aspect_ratio": "1:1",
      "output_format": "jpg",
      "seed": 6607
    }
  }'
# => {"code":200,"data":{"taskId":"tk-hiapi-01KWK3JG..."},"message":"success"}

# 2. Poll until status is "success" (typically 10–40s for flux-1.1-pro)
curl https://api.hiapi.ai/v1/tasks/tk-hiapi-01KWK3JG... \
  -H "Authorization: Bearer $HIAPI_API_KEY"

# 3. Download output[0].url — it carries an expireAt timestamp,
#    so save the file to your own storage immediately.

Avant d'entrer dans le vif du sujet, deux points d'exploitation à retenir :

Les vraies plages de paramètres (et les 400 qu'on récolte en devinant)

Si vous avez utilisé des modèles FLUX sur d'autres plateformes, votre mémoire musculaire vous poussera à régler steps et guidance. Mais dans le schéma de tâche hiapi pour flux-1.1-pro, ces champs n'existent pas — l'API valide strictement l'entrée et rejette les propriétés inconnues :

{
  "code": 400,
  "error_code": "INVALID_REQUEST",
  "message": "invalid input: <root>: additional properties 'steps', 'guidance' not allowed"
}

Ce n'est pas un bug ; FLUX 1.1 [pro] est proposé comme endpoint hébergé, et le mécanisme d'échantillonnage interne est fixé par le fournisseur. Voici ce que vous pouvez envoyer, vérifié sur le schéma de production :

Champ Type Valeurs / plages acceptées
prompt string obligatoire
aspect_ratio string 1:1, 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 4:5, 5:4, custom
width, height integer 256–1440 px (à la place du ratio d'aspect, ou en complément du ratio d'aspect custom)
seed integer n'importe quel entier — fige la composition pour la reproductibilité
output_format string jpg, png, webp
prompt_upsampling boolean demande au backend de réécrire/étendre votre prompt
safety_tolerance integer 0–6

Valeurs par défaut utiles pour les images produits : output_format: "jpg", un aspect_ratio explicite selon l'emplacement de diffusion (1:1 pour les grilles de boutique, 4:5 pour les fils d'actualité/scènes de vie, 3:2 ou 1440×960 pour les bannières), un seed figé par série de SKU, et prompt_upsampling désactivé — en e-commerce, vous voulez que le modèle suive strictement votre formulation, pas qu'il en rajoute.

Recette 1 — L'image propre sur fond blanc

L'image de base : un produit, un fond sans raccord, une lumière principale douce. Nommez explicitement la couleur du fond, demandez un reflet au sol et — important avec tout modèle réaliste — écrivez toujours « sans marque, sans logo, sans texte ». Les cadrans et les étiquettes sont précisément là où FLUX risque d'inventer des gribouillis en forme de logo, qu'il faudrait ensuite retoucher.

Studio packshot of an unbranded stainless steel wristwatch with a plain deep green dial and brushed metal bracelet, the dial completely clean with simple baton hour markers and no logo, no brand name, no text or numerals anywhere, standing upright on a seamless light grey background, centered composition, soft diffused key light from the upper left, subtle reflection beneath the watch, photorealistic e-commerce product photography

Envoyez avec aspect_ratio: "1:1" et seed: 6607. Le rendu du métal brossé et le reflet doux au sol, c'est exactement ce que vous payez avec le palier professionnel à 0,05 $ — les modèles bon marché aplatissent précisément ces détails.

Recette 2 — La photo en situation

Les grilles de boutique veulent du fond blanc ; les fiches produit et les réseaux sociaux convertissent avec des scènes. Placez le produit dans un décor, laissez l'étiquette vierge, et utilisez une faible profondeur de champ pour l'effet « premium ». 4:5 correspond au recadrage des fils d'actualité.

A lit soy candle in a clear glass jar with a plain blank kraft-paper label, on a rustic oak nightstand next to a stack of two linen-bound books, warm evening window light, softly blurred bedroom background, cozy lifestyle product photography for an online store, photorealistic

Envoyez avec aspect_ratio: "4:5" et seed: 7301. Remarquez que l'étiquette vierge est préservée — c'est le canevas sur lequel vous incrusterez ensuite votre vrai visuel de marque.

Recette 3 — Variantes de coloris avec un seed figé

C'est l'astuce la plus économique du catalogage. Le seed fige l'initialisation du bruit, donc si vous gardez la structure du seed et du prompt strictement identique et ne changez que le mot de couleur, vous obtenez la même composition dans le nouveau coloris — sans re-shooting, sans pipeline img2img.

Les deux images ci-dessous utilisent seed: 5150 et aspect_ratio: "1:1", et leurs prompts diffèrent exactement de deux mots (navy blue → coral pink) :

A single insulated stainless steel water bottle in matte navy blue, standing on a round travertine stone slab against a soft warm beige studio background, centered, soft diffused lighting, minimalist e-commerce product photo, photorealistic

Même silhouette de bouteille, même dalle, même composition, mais un SKU différent. C'est le seed figé qui remplace une journée de shooting de variantes.

En lot : rendre tout un catalogue par SKU

Voici la boucle que nous avons réellement exécutée : soumettre, sonder, télécharger, réessayer. Une exécution en production révèle un point à anticiper : les tâches flux-1.1-pro échouent parfois avec un générique {"code": "TASK_FAILED"} — c'est transitoire, et la même entrée réussit généralement à la re-soumission. Prévoyez jusqu'à 3 tentatives par image (vous ne payez que les images rendues avec succès).

import json, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer YOUR_HIAPI_KEY",
           "Content-Type": "application/json"}

CATALOG = [
    {"sku": "bottle-navy",  "colour": "matte navy blue"},
    {"sku": "bottle-coral", "colour": "matte coral pink"},
    {"sku": "bottle-sage",  "colour": "matte sage green"},
]
TEMPLATE = ("A single insulated stainless steel water bottle in {colour}, "
            "standing on a round travertine stone slab against a soft warm "
            "beige studio background, centered, soft diffused lighting, "
            "minimalist e-commerce product photo, photorealistic")

def render(prompt, seed, retries=3):
    for attempt in range(retries):
        task = requests.post(API, headers=HEADERS, json={
            "model": "flux-1.1-pro",
            "input": {"prompt": prompt, "aspect_ratio": "1:1",
                      "output_format": "jpg", "seed": seed},
        }).json()
        task_id = task["data"]["taskId"]
        while True:
            state = requests.get(f"{API}/{task_id}", headers=HEADERS).json()["data"]
            if state["status"] == "success":
                return requests.get(state["output"][0]["url"]).content
            if state["status"] == "fail":          # transient TASK_FAILED happens;
                break                              # resubmit with the same input
            time.sleep(5)
    raise RuntimeError(f"gave up after {retries} attempts")

for item in CATALOG:
    img = render(TEMPLATE.format(colour=item["colour"]), seed=5150)
    with open(f"{item['sku']}.jpg", "wb") as f:
        f.write(img)                               # re-host immediately; task URLs expire
    print(item["sku"], "done")

Si vous devez pousser des centaines de SKU, cadencez vos soumissions — le guide détaillé des limites de débit des API d'images explique le comportement de limitation et une concurrence raisonnable.

Tarification et quand choisir flux-1.1-pro

Vérifié sur la page de tarifs hiapi :

Modèle Prix par image Cas d'usage
flux-schnell/text-to-image 0,005 $ Brouillons, compositions de mise en page, miniatures en gros volume
flux-1.1-pro 0,05 $ uniforme Packshots réalistes et photos en situation, jusqu'à 1440 px à toute résolution
flux-2/text-to-image 0,0375 $–0,125 $ (au MP) Respect maximal du prompt, texte lisible dans l'image

Le prix uniforme est un avantage discret : une bannière principale 1440×960 et une miniature 512×512 coûtent toutes deux 0,05 $, alors que flux-2 facture au mégapixel. Si votre charge de travail est « images produits réalistes, tailles hétérogènes », flux-1.1-pro est le choix par défaut au coût prévisible ; si vous avez besoin d'un nombre précis d'objets ou de texte imprimé lisible dans l'image, passez à flux-2 — nous l'avons testé ici avec la même recette e-commerce.

Une PDP de cinq images (visuel principal, fond blanc, scène de vie, deux coloris) revient à 0,25 $ par produit. Rafraîchir un catalogue de 200 SKU : 50 $, un après-midi, un script.

En résumé

flux-1.1-pro sur hiapi vous livre des images produits réalistes via un workflow asynchrone en deux appels : une plage de paramètres stricte mais simple (ratio d'aspect, dimensions, seed, format — sans se battre avec steps/guidance), des variantes de coloris à seed figé, et un tarif uniforme de 0,05 $ qui rend le budget catalogue très prévisible. Obtenez votre clé API, commencez sur la page du modèle flux-1.1-pro, et rendez votre premier packshot sur fond blanc avec l'appel curl ci-dessus — votre café n'aura pas le temps de refroidir que vous aurez déjà une image prête pour la PDP.

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