HiAPI
Blog

Tutoriel

Intégration de l'API de génération d'images texte-vers-image Seedream 5.0 Pro : curl, Python et l'art d'écrire du texte

1K à 0,05 $, 2K à 0,10 $, tous les paramètres, les erreurs courantes, comment faire écrire correctement le texte dans l'image, et la différence avec Lite.

Oct 19, 2026
Intégration de l'API de génération d'images texte-vers-image Seedream 5.0 Pro : curl, Python et l'art d'écrire du texte

Seedream 5.0 Pro texte-vers-image (seedream-5.0-pro/text-to-image) est la gamme la plus chère de la famille Seedream 5.0, et son point fort est le texte dans l'image : enseignes, emballages, titres d'affiches s'écrivent mot pour mot d'après le prompt. Cet article fournit des exemples curl et Python directement exécutables, tous les paramètres, les erreurs courantes, ainsi que quelques astuces pour que le texte soit écrit correctement.

D'abord, le prix

Résolution Par image 100 images
1K $0.05 $5
2K (par défaut) $0.10 $10

Tarif actuel de HiAPI, vérifié le 18 octobre 2026.

Le format n'affecte pas le prix, et les échecs ne sont pas facturés. Pro n'a pas de 4K ; pour du 4K, utilisez Seedream 5.0 Lite (2K/4K au même prix de $0.035). Voir la comparaison des trois gammes dans Prix de l'API Seedream 5.0.

Un exemple réel de génération

16:9, 1K, le texte de l'enseigne néon écrit mot pour mot :

A neon-lit night market street in a rainy cyberpunk city, a glowing storefront sign reads "SEEDREAM 5 PRO" in crisp lettering, cinematic composition, dramatic directional lighting, rich cohesive color grade, ultra-detailed, premium commercial finish, subtle film grain, shallow depth of field, high dynamic range

Générer avec ce prompt →

seedream-5.0-pro/text-to-image, 16:9, 1K, $0.05.

Réussir sa première génération

Préparation : créez une API Key dans la console et définissez-la comme variable d'environnement :

export HIAPI_KEY="votre clé"

curl : soumettre la tâche

curl -X POST "https://api.hiapi.ai/v1/tasks" \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-5.0-pro/text-to-image",
    "input": {
      "prompt": "A cozy coffee shop storefront at dusk, warm window light, a hand-painted wooden sign that reads \"THE DAILY GRIND\" in serif letters",
      "aspect_ratio": "16:9",
      "resolution": "2K"
    }
  }'

Renvoie un taskId :

{"code": 200, "message": "success", "data": {"taskId": "tk-hiapi-..."}}

curl : récupérer le résultat

curl "https://api.hiapi.ai/v1/tasks/tk-hiapi-..." \
  -H "Authorization: Bearer $HIAPI_KEY"

Quand data.status vaut success, l'URL de l'image se trouve dans data.output[0].url. Il s'agit d'un lien temporaire avec expiration ; téléchargez-le dès réception :

curl -o result.png "<l'url dans output>"

En 2K, la génération prend généralement environ une minute.

Python (bibliothèque standard uniquement)

import json, os, time, urllib.request

API = "https://api.hiapi.ai/v1/tasks"
KEY = os.environ["HIAPI_KEY"]

def api(url, payload=None):
    req = urllib.request.Request(
        url,
        data=json.dumps(payload).encode() if payload else None,
        headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
        method="POST" if payload else "GET",
    )
    with urllib.request.urlopen(req) as resp:
        return json.loads(resp.read())

task_id = api(API, {
    "model": "seedream-5.0-pro/text-to-image",
    "input": {
        "prompt": 'A minimalist product poster on matte black, bold white headline that reads "SHIP FASTER", small caption "batch v2.1" bottom right',
        "aspect_ratio": "3:4",
        "resolution": "2K",
    },
})["data"]["taskId"]

while True:
    task = api(f"{API}/{task_id}")["data"]
    if task["status"] == "success":
        break
    if task["status"] == "fail":
        raise RuntimeError(task)
    time.sleep(5)

urllib.request.urlretrieve(task["output"][0]["url"], "result.png")

Tous les paramètres

Champ Obligatoire Valeurs
prompt Oui 3–4000 caractères, il est conseillé de rester sous environ 600 mots anglais
aspect_ratio Oui 1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9
resolution Oui 1K ($0.05) ou 2K ($0.10)
output_format Non png (par défaut) ou jpeg

Les champs sont stricts : seed, n, size, image_urls ne sont pas acceptés, et en transmettre en trop renvoie un HTTP 400. Une requête produit une image ; pour en obtenir plusieurs, soumettez plusieurs tâches en parallèle.

Les résolutions diffèrent selon la gamme au sein de la même famille : Pro propose 1K/2K, Lite propose 2K/4K. Pensez à modifier resolution lors d'un changement de gamme.

Faire écrire le texte correctement

  • Mettez le texte à écrire entre guillemets : a sign that reads "OPEN 24 HOURS", bien plus fiable qu'une paraphrase.
  • Précisez la position et le style : le rendu de la police (serif, manuscrit, néon), la position (en bas à droite, centré), le support (panneau en bois, porte vitrée).
  • Pas trop de texte : quelques courts textes par image sont très stables, un long paragraphe l'est beaucoup moins.
  • Utilisez 2K si le texte est important : les petits caractères sont plus nets en haute résolution.

Erreurs courantes

Symptôme Réponse Comment corriger
Champ obligatoire manquant 400, missing required field "aspect_ratio" Les trois champs obligatoires doivent être transmis
Valeur d'énumération incorrecte 400, resolution: value must be one of '1K', '2K' Respectez le tableau ci-dessus
Envoi de seed, n, etc. en trop 400, additional properties ... not allowed Supprimez les champs superflus
Clé invalide 401, permission_denied Vérifiez la clé dans la console

Si une tâche échoue après sa création, le résultat de la requête indique status: "fail", sans facturation.

À vérifier avant la mise en production

  • Utilisez un callback plutôt que du polling : au niveau supérieur du corps de la requête (au même niveau que model et input), ajoutez "callback": {"url": "https://votre-domaine/hooks/hiapi", "when": "final"}. Une fois la notification reçue, faites un GET de la tâche pour confirmer le résultat.
  • Évitez la double facturation : la tâche est facturée dès sa prise en charge. Avant de réessayer, vérifiez si vous avez déjà enregistré le taskId de cette tâche ; si oui, continuez à interroger au lieu de resoumettre ; vous pouvez aussi ajouter un en-tête Idempotency-Key lors de la soumission.
  • Copiez rapidement les résultats : les liens de sortie expirent, ne les utilisez pas directement en lien externe.

Questions fréquentes

Peut-on fixer le seed pour reproduire un résultat ?

Non, cette interface n'accepte pas seed. Pour obtenir une version proche à partir d'une image existante, utilisez seedream-5.0-pro/image-to-image, avec jusqu'à 10 images de référence.

Quelle différence avec Lite ?

Lite coûte $0.035 par image, avec des résolutions 2K/4K ; Pro propose 1K/2K, à $0.10 l'image en 2K. La méthode d'appel est identique. Voir la comparaison à prompt identique entre Flash et Lite dans Seedream 5.0 Flash vs Lite.

Faut-il obligatoirement utiliser un callback ?

Non. Pour les scripts et les tâches par lots, le polling direct suffit, en interrogeant toutes les 5 secondes.

Vous pouvez aussi copier directement le prompt de l'enseigne néon ci-dessus et générer une image pour $0.05.

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