MenuGénération d’images

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

POSThttps://ai.geraikita.com/v1/images/generations
En-têteValeur
AuthorizationBearer gk-... (ou x-api-key: gk-...)
Content-Typeapplication/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ètreTypeDescription
modelstringobligatoireID 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.
promptstringobligatoireDescription de l’image souhaitée, 4000 caractères au maximum.
nintegerfacultatifNombre d’images, 1–4. Par défaut 1. Chaque image réussie est facturée séparément.
sizestringfacultatifL’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_formatstringfacultatifurl (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

Le traitement prend en général 15 à 45 secondes par requête, et jusqu’à environ 4 minutes quand la voie de secours est utilisée. Réglez un timeout client d’au moins 300 secondes pour que la requête ne soit pas coupée avant la fin des images.
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.

200 OK · application/json
{
  "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èleNomPar image
gemini-3.1-flash-imageNano Banana 2 (Gemini 3.1 Flash Image)100 GP / image
gemini-3-pro-imageNano 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 est 402.
  • 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.

Statuttype / codeSignification
400invalid_request_errorParamètre invalide (p. ex. n hors de 1–4, size inconnue, prompt vide ou trop long). Non facturé.
400content_policy_violationLe prompt enfreint la politique de contenu (voir ci-dessous). Non facturé.
401—Clé API absente ou invalide.
402insufficient_quotaGeraiPoints 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.
404model_not_foundModèle inconnu, ou ce n’est pas un modèle d’image.
429rate_limit_exceededTrop de requêtes — la limite est de 10 requêtes/minute par clé. Patientez selon l’en-tête Retry-After.
502image_generation_failedLa génération de l’image a échoué côté serveur. Non facturé — veuillez réessayer.
Exemple d’erreur
{
  "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 size selon l’usage : 1024x1024 pour le fil, 1024x1792 pour les stories/portrait, 1792x1024 pour les bannières paysage.
  • Besoin de plusieurs variantes ? Utilisez n jusqu’à 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

L’URL dans 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.