Génération d’images
Transformez une description textuelle (prompt) en images avec les modèles d’image de Google (famille Nano Banana / Gemini Image). L’endpoint est compatible avec l’OpenAI Images API — il suffit de pointer le SDK openai vers la base URL Geraikita, avec la même clé gk- et le même solde de GeraiPoints.
Endpoint
https://ai.geraikita.com/v1/images/generations| En-tête | Valeur |
|---|---|
| Authorization | Bearer gk-... (ou x-api-key: gk-...) |
| Content-Type | application/json |
Une requête = un prompt, qui produit 1 à 4 images. Le streaming n’est pas pris en charge — la réponse est envoyée en une fois quand les images sont prêtes.
Paramètres du body
| Paramètre | Type | Description |
|---|---|---|
model | stringobligatoire | ID du modèle d’image, p. ex. gemini-3.1-flash-image ou gemini-3-pro-image — la liste complète figure dans le tableau des prix ci-dessous. |
prompt | stringobligatoire | Description de l’image souhaitée, 4000 caractères au maximum. |
n | integerfacultatif | Nombre d’images, 1–4. Par défaut 1. Chaque image réussie est facturée séparément. |
size | stringfacultatif | L’une des valeurs auto | 1024x1024 | 1536x1024 | 1024x1536 | 1792x1024 | 1024x1792. Par défaut auto : le modèle choisit le format, généralement paysage 16:9 (environ 1376×768). La taille n’est qu’une indication de format — la résolution finale dépend du modèle. |
response_format | stringfacultatif | url (par défaut) pour un lien vers l’image, ou b64_json pour les données de l’image en base64 directement dans la réponse. |
Les autres champs (p. ex. quality ou style) sont ignorés.
Exemples
curl https://ai.geraikita.com/v1/images/generations \
--max-time 300 \
-H "Authorization: Bearer gk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
"prompt": "Affiche promo pour un café glacé au sucre de palme sur une table en bois, lumière chaude du matin, grand texte \"-20%\" en haut, style illustration flat",
"n": 1,
"size": "1024x1024"
}'Exemple de réponse
data contient un objet par image réussie — url ou b64_json selon response_format. Si certaines images échouent, il peut y avoir moins d’objets que n.
{
"created": 1793464057,
"data": [
{ "url": "https://api.geraikita.com/cdn/ai-gambar/2026/11/xxxxxxxxxxxx.jpg" }
]
}En-têtes de réponse : X-Geraikita-Images = nombre d’images réussies, X-Geraikita-GP-Charged = GeraiPoints facturés pour cette requête.
Tarifs
Les modèles d’image sont facturés par image générée avec succès — pas au token. Les prix actuels (susceptibles de changer) figurent dans le tableau ci-dessous et sur la page des tarifs.
| Id du modèle | Nom | Par image |
|---|---|---|
| gemini-3.1-flash-image | Nano Banana 2 (Gemini 3.1 Flash Image) | 100 GP / image |
| gemini-3-pro-image | Nano Banana Pro (Gemini 3 Pro Image) | 100 GP / image |
- Les images en échec ne sont pas facturées, pas plus que les requêtes refusées (paramètres invalides ou violation de la politique de contenu).
- Votre solde de GeraiPoints doit couvrir
n× le prix par image avant le traitement de la requête ; sinon la réponse est402. - Les modèles d’image ne sont pas inclus dans l’Unlimited plan, Bansos (offre gratuite) ni aucun autre quota gratuit — ils sont toujours débités du solde de GeraiPoints.
- Chaque image apparaît comme une ligne dans l’historique d’utilisation du dashboard, avec le libellé Image.
Codes d’erreur
Les erreurs suivent le format OpenAI : un objet error avec message, type, param et code.
| Statut | type / code | Signification |
|---|---|---|
| 400 | invalid_request_error | Paramètre invalide (p. ex. n hors de 1–4, size inconnue, prompt vide ou trop long). Non facturé. |
| 400 | content_policy_violation | Le prompt enfreint la politique de contenu (voir ci-dessous). Non facturé. |
| 401 | — | Clé API absente ou invalide. |
| 402 | insufficient_quota | GeraiPoints insuffisants pour le nombre d’images demandé — veuillez recharger. |
| 403 | — | Ce modèle n’est pas autorisé pour cette clé API — ajoutez-le à la liste des modèles de la clé dans le dashboard. |
| 404 | model_not_found | Modèle inconnu, ou ce n’est pas un modèle d’image. |
| 429 | rate_limit_exceeded | Trop de requêtes — la limite est de 10 requêtes/minute par clé. Patientez selon l’en-tête Retry-After. |
| 502 | image_generation_failed | La génération de l’image a échoué côté serveur. Non facturé — veuillez réessayer. |
{
"error": {
"message": "...",
"type": "...",
"param": "...",
"code": "..."
}
}Appeler un modèle d’image via /v1/chat/completions renvoie 400 avec un renvoi vers cet endpoint — utilisez /v1/images/generations.
Conseils de prompt
- Les prompts peuvent être rédigés en français, en anglais, en indonésien ou dans d’autres langues.
- Le modèle peut écrire du texte dans l’image — mettez le texte exact entre guillemets, p. ex.
le texte "-20%". - Décrivez le sujet, le décor, le style (photo, illustration flat, 3D, aquarelle), l’éclairage et la composition — plus c’est précis, plus le résultat est fidèle.
- Choisissez
sizeselon l’usage :1024x1024pour le fil,1024x1792pour les stories/portrait,1792x1024pour les bannières paysage. - Besoin de plusieurs variantes ? Utilisez
njusqu’à 4 dans une seule requête — chaque image réussie est facturée.
Politique de contenu
Les requêtes suivantes sont refusées :
- Contenu sexuel ou explicite.
- Contenu qui exploite ou met en danger des enfants.
- Violence sadique ou gore.
- Personnalités politiques réelles ou personnalités publiques réelles.
Les refus renvoient 400 avec le code content_policy_violation et ne sont pas facturés.
Liens d’image et stockage
data[].url est publique — toute personne disposant du lien peut ouvrir l’image — et sa disponibilité n’est pas garantie indéfiniment. Téléchargez et conservez une copie dans votre propre stockage juste après la génération, ou demandez b64_json pour recevoir les données de l’image directement dans la réponse.