Guide d'utilisation
Générer des images de produits e-commerce avec seedream-4.5/image-to-image via l'API hiapi
Un catalogue de produits n'est pas une seule photo — c'est le même SKU présenté dans une dizaine de contextes : photo produit sur fond blanc, photo en situation, retouche après changement de composant par le fournisseur, et versions assorties à l'identité visuelle de la marque saisonnière. Reshoot ou régénération à partir de zéro à chaque fois casse la cohérence, car un prompt entièrement nouveau dessinera un produit légèrement différent.
seedream-4.5/image-to-image est fait pour cela. Il prend votre vraie photo de produit — ou plusieurs images de référence à la fois — plus une instruction d'édition en langage naturel, et renvoie une image éditée qui préserve la géométrie, les matériaux et l'identité de marque réels du produit, en ne changeant que ce que vous demandez : l'arrière-plan, les détails d'usure, ou l'étalonnage nécessaire pour correspondre à une identité visuelle unifiée. Sur hiapi, il fonctionne comme tous les autres modèles via le même endpoint asynchrone /v1/tasks, à 0,045 $ par image.
Les deux exemples ci-dessous sont de vrais appels API, montrant les prompts exacts et les images générées.

Pourquoi éditer plutôt que régénérer
Le texte-vers-image et l'image-vers-image résolvent des problèmes différents :
- Texte-vers-image crée un produit à partir d'une description. Idéal pour la conception conceptuelle, inadapté à un catalogue produit — demandez deux fois et vous obtiendrez deux tasses différentes.
- Édition image-vers-image part de votre vraie photo de produit. Le modèle traite l'image de référence comme la vérité terrain pour la forme, les proportions et l'identité de marque, et ne change que ce que le prompt spécifie. C'est exactement ce qui le rend sûr pour de vraies fiches produit : le produit en sortie est toujours votre produit.
Le flux de travail réel est le suivant : conservez une photo de base propre pour chaque SKU (une photo studio neutre suffit comme référence), puis exécutez seedream-4.5/image-to-image une fois pour chaque contexte dont vous avez besoin — scène de vie, remplacement d'arrière-plan, arrière-plan cohérent avec la marque, retouche de détails — au lieu de reshooter ou de re-prompter à partir de zéro à chaque fois.
Exemple 1 : remplacer l'arrière-plan par une scène de vie
Référence de base : une photo studio neutre d'un dripper à café en céramique sur fond blanc.
Prompt d'édition envoyé au modèle :
Keep the ceramic pour-over dripper's exact shape, glaze color, and proportions
unchanged. Place it on a warm wood kitchen counter next to a steaming ceramic
mug and an open burlap coffee bag. Warm golden-hour side lighting, shallow
depth of field, soft shadows. Do not alter the dripper itself in any way —
only change the surrounding scene.
Le résultat préserve la silhouette et la couleur de glaçure du dripper, reconnaissables au pixel près, tout en le plaçant dans une scène de vie qu'une photo produit ordinaire ne pourrait pas produire seule — sans reshoot, sans étape de composition séparée.
Exemple 2 : unifier le produit sur un arrière-plan de marque
Référence de base : une photo studio neutre d'une basket en toile blanche.
Prompt d'édition envoyé au modèle :
Keep the sneaker's stitching, eyelets, laces, and canvas texture exactly as
shown. Replace the background with a solid terracotta studio backdrop and
place the sneaker on a matching terracotta pedestal. Even, soft studio
lighting from the upper left, subtle contact shadow. Do not change the
sneaker's shape, color, or any printed details.

C'est le schéma pour unifier visuellement un catalogue produit : choisissez un traitement d'arrière-plan, puis faites passer la photo de base de chaque SKU par la même instruction d'édition. Les produits diffèrent ; l'arrière-plan, la direction de la lumière et la teinte restent cohérents, car c'est le prompt qui les contrôle — pas le produit lui-même.
Appeler l'API directement
seedream-4.5/image-to-image fonctionne via l'endpoint de tâches asynchrones de hiapi. Soumettez la tâche, interrogez jusqu'à completion, puis téléchargez le résultat.
curl :
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": "Keep the product exactly as shown. Replace the background with a solid terracotta studio backdrop and matching pedestal. Even soft studio lighting from the upper left.",
"image_urls": ["https://your-storage.example.com/base-product-photo.jpg"],
"aspect_ratio": "1:1",
"resolution": "2K"
}
}'
La réponse renvoie un task_id. Interrogez GET /v1/tasks/{task_id} jusqu'à ce que status soit succeeded, puis lisez l'URL de l'image dans output[0].url. Cette URL est temporaire — téléchargez immédiatement.
Python (soumettre + interroger + télécharger) :
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
def edit_product_image(prompt: str, image_urls: list[str],
aspect_ratio: str = "1:1", resolution: str = "2K") -> bytes:
resp = requests.post(
f"{API_BASE}/tasks",
headers=HEADERS,
json={
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": prompt,
"image_urls": image_urls,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
},
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["task_id"]
while True:
poll = requests.get(f"{API_BASE}/tasks/{task_id}", headers=HEADERS, timeout=30)
poll.raise_for_status()
data = poll.json()
if data["status"] == "succeeded":
image_url = data["output"][0]["url"]
return requests.get(image_url, timeout=30).content
if data["status"] == "failed":
raise RuntimeError(f"task {task_id} failed: {data.get('error')}")
time.sleep(3)
Édition en masse d'un catalogue produit
Le schéma ci-dessus se généralise directement à un catalogue produit : maintenez une liste de (sku, base_photo_url), appliquez la même instruction d'édition à chaque entrée — ou une variante propre à chaque SKU — et écrivez les résultats en indexant par SKU.
CATALOG = [
{"sku": "dripper-ceramic-01", "base_url": "https://your-storage.example.com/dripper-01.jpg"},
{"sku": "sneaker-canvas-white", "base_url": "https://your-storage.example.com/sneaker-white.jpg"},
{"sku": "mug-stoneware-02", "base_url": "https://your-storage.example.com/mug-02.jpg"},
]
BACKDROP_PROMPT = (
"Keep the product's exact shape, materials, and any printed branding "
"unchanged. Replace the background with a solid terracotta studio "
"backdrop and matching pedestal. Even soft studio lighting from the "
"upper left, subtle contact shadow. Do not alter the product itself."
)
for item in CATALOG:
image_bytes = edit_product_image(
prompt=BACKDROP_PROMPT,
image_urls=[item["base_url"]],
aspect_ratio="1:1",
resolution="2K",
)
with open(f"{item['sku']}-branded.jpg", "wb") as f:
f.write(image_bytes)
print(f"{item['sku']}: done")
À 0,045 $ par image, un traitement d'arrière-plan sur un catalogue de 50 SKU coûte environ 2,25 $ — et comme chaque tâche est indépendante, elle peut être parallélisée via un pool de threads ou une file de tâches plutôt qu'exécutée séquentiellement.
image_urls accepte jusqu'à 14 images de référence par appel, donc les variantes plus avancées peuvent, lorsque l'édition est complexe, fournir au modèle plusieurs angles du même produit (face, profil, détail) en une seule fois.
Questions fréquentes
seedream-4.5/image-to-image modifie-t-il le produit lui-même ou seulement la scène ? Il suit strictement l'instruction d'édition. Si le prompt ne décrit que des changements d'arrière-plan, de lumière ou de contexte et demande explicitement de préserver le produit, alors la forme, la couleur et les détails imprimés du produit restent cohérents à travers plusieurs éditions — c'est précisément ce qui le rend utilisable pour un vrai catalogue produit plutôt que pour une image conceptuelle unique.
Combien d'images de référence puis-je envoyer par appel ?
Jusqu'à 14 URL d'images publiques dans image_urls. La plupart des éditions mono-produit n'en nécessitent qu'une (la photo de base) ; plusieurs références aident lorsque vous voulez que le modèle harmonise les détails du même objet sous plusieurs angles.
Quelles résolutions sont prises en charge ?
resolution accepte 2K ou 4K. Ce modèle n'a pas de palier 1K.
Combien coûte l'édition en masse de tout un catalogue ? 0,045 $ par image, quel que soit le palier de résolution. Un catalogue de 100 SKU pour une édition coûte environ 4,50 $.
Peut-on paralléliser les éditions pour accélérer les traitements par lots ?
Oui — chaque tâche est indépendante, donc soumettre plusieurs appels /v1/tasks en concurrence (dans la limite du débit de votre compte) et les interroger en parallèle est la manière la plus rapide de traiter un grand catalogue.
Essayez par vous-même
Pour la référence complète des paramètres et les tarifs en temps réel, consultez la page du modèle et la page des tarifs. Pour le format exact de requête/réponse de l'endpoint de tâches mentionné ci-dessus, reportez-vous à la documentation de création de tâche. Si vous mettez en place un flux de travail similaire avec un autre palier de modèle, le guide e-commerce seedream-5.0-lite approfondit le schéma d'ancrage mono-SKU puis d'édition.
Obtenez une clé API et lancez votre première édition sur une vraie photo de produit — le code ci-dessus est prêt à être copié-collé et exécuté dès aujourd'hui sur l'API hiapi.
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