Passer au contenu principal
Transforme un prompt texte en images avec POST /images/generations, en composant éventuellement les modèles style, object, person et setting entraînés de ton organisation, plus une palette de couleurs. Passe engine pour choisir le modèle text-to-image ; omets-le pour utiliser le moteur par défaut, nano_banana_pro. GET /images/models liste les moteurs que tu peux utiliser, avec leurs limites et leurs credits.

Moteurs

Chaque moteur accepte num_outputs de 1 à 4 ; les valeurs par défaut sont aspect_ratio 1:1 et resolution 1K. Un ratio ou une résolution que le moteur ne prend pas en charge renvoie 422 avant qu’aucun credit ne soit facturé — la requête n’est jamais remise en forme.
  • Modèles entraînés et palettes. style_id, object_ids, person_ids, setting_ids et color_palette_id fonctionnent avec nano_banana_pro, nano_banana_2_1 et nano_banana_2. Avec nano_banana, imagen_4, seedream_4 ou flux_1_pro, ils renvoient 422 (avec param = le champ) — ils ne sont jamais ignorés, et le moteur n’est jamais changé.
  • Autres endpoints. Cette liste vaut pour POST /images/generations (et l’outil MCP generate_image). Magic Edit et img2img acceptent leurs propres valeurs d’engine : les deux acceptent nano_banana_pro, nano_banana_2 et nano_banana_2_1, et Magic Edit accepte aussi gemini et kontext.
  • Organisations limitées aux modèles entraînés. Certaines organisations génèrent uniquement avec leurs modèles entraînés. Pour elles, GET /images/models renvoie une liste data vide avec unavailable_reason: "organization_restricted", tout engine renvoie 422, et une requête doit omettre engine et passer au moins un modèle entraîné (style_id, object_ids, person_ids, setting_ids) ou un color_palette_id.

Modèle asynchrone

La génération est asynchrone. POST /images/generations renvoie immédiatement 202 Accepted avec un id de job, un status et une valeur estimated_credits. Interroge GET /images/generations/{id} jusqu’à ce que status soit completed (ou failed/cancelled), puis lis les images produites — chacune porte une presigned URL valable 24 heures. Un job dont tous les outputs ont échoué dans le pipeline de conformité se termine en failed avec error delivery_blocked_compliance: <codes> (voir Blocages compliance). Passe un webhook_url pour être notifié au lieu d’interroger (voir Webhooks).

Credits

Chaque sortie (output) coûte 5 credits en 1K, en fonction de la résolution (1K ×1, 2K ×2, 4K ×4) et multiplié par num_outputs — identique sur chaque moteur. Les coûts puisent dans le pool de ton organisation ; un pool épuisé renvoie 402. Voir Tarifs.

Quickstart

Un parcours complet de zéro jusqu’à l’image avec curl, Python et TypeScript.