Guide d'utilisation
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 URL de sortie sont temporaires. Téléchargez et réhébergez dès que la tâche réussit — voir ce qui se passe lorsque l'URL de sortie hiapi expire.
- Si une tâche reste en état
processingplus longtemps que prévu, ne la re-soumettez pas à l'aveugle ; voici un guide de diagnostic des tâches bloquées ou expirées.
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 →-
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