Module 6 · L'API en directEnviron 1 min
Un script Python pour une série
Pour produire une série sans n8n, un script suffit. Celui-ci prend des fiches complètes, les envoie en JSON brut précédées d’une phrase de consigne, joint les images de référence dans l’ordre de la liste, puis enregistre l’image et une ligne de journal. C’est l’autre méthode du module 3 : si votre test a désigné le texte compilé, remplacez le contenu du premier bloc par votre prompt compilé.
python
"""Génère une image par fiche JSON : python generer.py fiches/*.json"""
import base64
import datetime
import json
import mimetypes
import pathlib
import sys
from google import genai
MODELE = "gemini-nano-banana-2.1"
client = genai.Client() # lit la clé dans la variable GEMINI_API_KEY
def generer(chemin):
fichier = pathlib.Path(chemin)
fiche = json.loads(fichier.read_text(encoding="utf-8"))
consigne = "Crée l'image décrite par cette fiche. Les images jointes suivent l'ordre de la liste references.\n"
entree = [{"type": "text", "text": consigne + json.dumps(fiche, ensure_ascii=False, indent=2)}]
for ref in fiche.get("references", []):
photo = fichier.parent / ref["fichier"]
entree.append({
"type": "image",
"mime_type": mimetypes.guess_type(photo.name)[0] or "image/jpeg",
"data": base64.b64encode(photo.read_bytes()).decode("ascii"),
})
interaction = client.interactions.create(
model=MODELE,
input=entree,
store=False,
response_format={
"type": "image",
"mime_type": "image/jpeg",
"aspect_ratio": fiche["format"]["ratio"],
"image_size": fiche["format"]["taille"],
},
)
image = interaction.output_image
sortie = fichier.with_suffix(".jpg")
if image:
sortie.write_bytes(base64.b64decode(image.data))
journal = {
"date": datetime.datetime.now().isoformat(timespec="seconds"),
"fiche": str(fichier),
"modele": MODELE,
"image": str(sortie) if image else None,
"statut": "à valider" if image else "à revoir",
}
with open("journal.jsonl", "a", encoding="utf-8") as f:
f.write(json.dumps(journal, ensure_ascii=False) + "\n")
print(f"{fichier.name} : {journal['statut']}")
for chemin in sys.argv[1:]:
generer(chemin)Installez la bibliothèque de Google avec pip install google-genai, définissez GEMINI_API_KEY, puis lancez python generer.py fiches/*.json. Les chemins des références se lisent depuis le dossier de chaque fiche.
Commencez petitLancez d’abord le script sur trois fiches et regardez les images avant de passer aux soixante-douze. Un défaut de gabarit se corrige pour quelques centimes, pas pour quelques dollars.