Agent IA n8n pour la génération d’images : exemple de flux de travail
Cet exemple de flux de travail n8n pour la génération d’images par agent IA suit chaque nœud, du Chat Trigger jusqu’à l’URL finale de l’image : le message système, un sous-flux qui crée et interroge les prédictions, la mémoire pour les retouches successives, et un tableau de corrections pour les erreurs qui bloquent la plupart des montages.
Taper une phrase dans une zone de chat et récupérer une photographie finie ressemble à un petit tour de passe-passe, jusqu’au moment où vous le montez vous-même et où vous voyez un agent décider seul quoi écrire, quel outil appeler et quand s’arrêter. C’est ce que fait un flux de travail n8n de génération d’images par agent IA. Un modèle de langage se trouve au centre : il lit votre demande, la développe en un prompt détaillé, appelle une API d’images comme un outil, attend le rendu et renvoie un lien.
Cet exemple de flux de travail va du premier nœud au dernier. Vous obtenez la disposition des nœuds, le message système qui garde l’agent sur la bonne voie, les appels HTTP qui dialoguent avec un modèle d’images, la boucle d’interrogation qui arrête les résultats vides, et les erreurs qui font perdre une après-midi. Il fonctionne sur toute instance n8n, cloud ou auto-hébergée, et chaque modèle cité ici possède une page sur PicassoIA.
Ce que fait ce flux de travail
Le flux de travail prend une demande simple, comme « un marché de rue sous la pluie au crépuscule, photographié sur pellicule 35 mm », et renvoie l’URL hébergée d’une image. Entre la demande et le résultat, un nœud AI Agent prend les décisions. Il n’appelle jamais lui-même l’API d’images. Il appelle un outil, et c’est cet outil qui fait le travail lourd.
L’idée en termes simples
Cinq éléments composent l’ensemble du montage :
Chat Trigger : reçoit le message depuis le panneau de chat de n8n ou depuis un lien de chat public.
AI Agent : lit le message et décide de la suite.
Modèle de chat : le cerveau de l’agent, rattaché comme sous-nœud.
Mémoire : conserve les échanges précédents, pour que « rends-la plus large » ait encore du sens.
Outil d’image : un sous-flux qui lance le rendu, attend le résultat et renvoie l’URL.
Cela forme une seule boucle de conversation. L’utilisateur parle, l’agent réfléchit, l’outil génère le rendu, l’agent répond. Rien d’autre n’est nécessaire pour une première version, et chaque évolution ultérieure (validations, stockage, planification) se greffe sur l’un de ces cinq éléments.
Pourquoi un agent l’emporte sur une chaîne fixe
Une chaîne fixe (déclencheur, modèle de langage, requête HTTP, réponse) fonctionne jusqu’au jour où quelqu’un écrit « donne-moi trois variantes, et fais-en une carrée ». L’agent peut appeler l’outil trois fois avec des arguments différents, poser une question de précision, ou refuser une demande trop vague pour être visualisée. Une chaîne ne peut faire que ce que vous avez dessiné sur le canevas.
Situation
Chaîne fixe
AI Agent
Une demande simple
Fonctionne
Fonctionne
Trois variantes
Nécessite une boucle construite à la main
Appelle l’outil trois fois
Demande vague
Transmet le texte vague tel quel
Pose une question ou ajoute des détails
Format différent
Nécessite une nouvelle branche
Transmet un autre argument
Retouches successives
Oublie le contexte
Lit sa mémoire
Débogage
Linéaire et facile
Nécessite le journal d’exécution
💡 Le compromis est réel. Les agents consomment davantage de tokens et se comportent de façon moins prévisible qu’une chaîne. Si toutes les demandes se ressemblent, une chaîne est plus économique et plus simple. Choisissez l’agent lorsque les demandes varient.
De quoi avez-vous besoin pour commencer
Trois éléments : une instance n8n assez récente pour inclure le nœud AI Agent et ses sous-nœuds d’outils, des identifiants pour un modèle de chat, et des identifiants pour une API d’images. Ajoutez un peu de patience pour un premier test, et vous êtes prêt.
Choisir le modèle « cerveau »
Le modèle de l’agent doit appeler les outils de façon fiable. Un modèle rapide suffit en général, car l’agent rédige surtout un prompt et choisit deux arguments. Ces grands modèles de langage disponibles sur PicassoIA sont de bons candidats :
Réglez la température entre 0,2 et 0,4. Un faible degré d’aléatoire fait que les arguments des outils gardent la même forme à chaque fois.
Choisir le modèle d’images
Quel que soit le modèle d’images derrière l’outil, l’agent ne voit qu’un nom, une description et deux entrées. Changer de modèle plus tard revient à modifier une seule URL dans le sous-flux. Ces modèles de texte vers image forment une présélection utile :
L’API PicassoIA expose picassoia/picassoia-image pour le texte vers image et picassoia/picassoia-image-editor-pro pour les retouches. Les modèles du tableau fonctionnent depuis l’application web, ce qui en fait un banc d’essai pratique : testez un prompt là-bas avant de laisser l’agent l’envoyer.
Construire le flux de travail dans n8n
Étape 1 : Chat Trigger et agent
Créez un nouveau flux de travail. Ajoutez le nœud Chat Trigger (répertorié sous When chat message received), puis un nœud AI Agent, et reliez le déclencheur à l’agent. Les versions actuelles de n8n exécutent l’agent en mode tools agent par défaut. Si votre version vous demande un type d’agent, choisissez Tools Agent.
Sous le connecteur Chat Model de l’agent, cliquez sur le signe plus et ajoutez le nœud de modèle correspondant à vos identifiants. Collez les identifiants, réglez la température sur 0,3 et passez à la suite.
Étape 2 : rédiger le message système
Ouvrez le nœud AI Agent, ajoutez l’option System Message et collez ceci :
You are an image generation assistant.
When the user asks for an image, call the generate_image tool.
Before calling it, rewrite the request as one detailed photographic prompt of 60 to 120 words: subject, setting, lighting direction, lens and surface textures.
Avoid neon, cartoon and CGI wording unless the user asks for it.
If the request is too vague to picture, ask one short question first.
After the tool returns, reply with the image URL on its own line, then one sentence describing the result.
Never invent a URL. If the tool returns an error, say so and offer one retry.
Chaque ligne a une fonction. La règle de réécriture est à l’origine de la qualité des images. La règle « n’invente jamais d’URL » existe parce qu’un agent produit volontiers un lien plausible lorsqu’un outil échoue. La règle de nouvelle tentative évite les boucles sans fin.
💡 Dans les options de l’agent, réglez Max Iterations sur 6 ou 8. Une boucle bloquée se termine alors par une erreur au lieu de consommer des tokens toute la nuit.
Étape 3 : construire l’outil d’image
Ajoutez un sous-nœud Call n8n Workflow Tool au connecteur Tool de l’agent. Nommez-le generate_image et rédigez sa description comme un ordre de mission :
Creates one photographic image from a detailed prompt and returns its public URL.
Inputs: prompt (string, required), aspect_ratio (16:9, 1:1 or 9:16).
Faites pointer l’outil vers un second flux de travail, puis construisez ce dernier dans cet ordre :
Execute Workflow Trigger avec deux champs d’entrée : prompt et aspect_ratio.
HTTP Request nommé Create prediction, qui lance le rendu.
Nœud Wait réglé sur 5 secondes.
HTTP Request nommé Get prediction, qui vérifie le statut.
Nœud IF qui teste si le statut est égal à succeeded.
Si vrai : un nœud Edit Fields qui produit un champ nommé imageUrl.
Si faux : un second IF qui envoie failed vers un nœud Stop and Error et renvoie tous les autres statuts vers le nœud Wait.
Pourquoi un sous-flux plutôt qu’un simple HTTP Request Tool ? Les API d’images sont asynchrones. Un outil isolé lancerait le rendu et renverrait un identifiant, obligeant l’agent à interroger lui-même le serveur, ce qui coûte des tours et des tokens supplémentaires. Le sous-flux masque la boucle : l’agent ne voit qu’un appel d’outil et une URL.
Étape 4 : ajouter la mémoire
Rattachez le sous-nœud Simple Memory à l’agent et réglez la fenêtre de contexte sur environ huit messages. Il utilise par défaut l’identifiant de session du chat, de sorte que chaque visiteur dispose d’un historique distinct. Avec la mémoire activée, « maintenant, rends la deuxième plus large » fonctionne, car l’agent peut relire son prompt précédent et modifier un seul détail.
Le même agent répond aussi depuis un téléphone. Remplacez le Chat Trigger par un déclencheur Telegram ou Webhook, et le reste du flux de travail demeure inchangé.
Connecter l’API d’images
Les nœuds HTTP du sous-flux communiquent avec l’API PicassoIA : adresse de base https://api.picassoia.com/v1, un jeton bearer qui commence par pia_sk_, et des points de terminaison de prédiction de type Replicate. Les tâches sont asynchrones : vous créez une prédiction, vous l’interrogez, puis vous lisez le résultat. Créez votre jeton sur la page de l’API PicassoIA et enregistrez-le dans n8n comme identifiants Header Auth, avec le nom Authorization et la valeur Bearer suivie de votre jeton.
Créer la prédiction
Dans le nœud Create prediction, réglez la méthode sur POST, l’authentification sur Generic Credential Type avec Header Auth, et le type de corps sur JSON.
La réponse comprend une prédiction id. Les noms des champs d’entrée varient selon les modèles : vérifiez-les sur la page de l’API du modèle que vous appelez. Les prompts peuvent atteindre 4 000 caractères, ce qui laisse de la place pour une description photographique de 120 mots.
Interroger jusqu’à la fin du traitement
Dans Get prediction, envoyez une requête GET vers /v1/predictions/{{ $('Create prediction').item.json.id }}. Le statut passe à succeeded ou failed, et le nœud IF lit {{ $json.status }}. Le nœud Edit Fields extrait ensuite le lien de la réponse :
Certains modèles renvoient une liste et d’autres une simple chaîne, d’où ce contrôle. Ajoutez un compteur et envoyez l’exécution vers Stop and Error après 40 interrogations, soit environ trois minutes à raison de cinq secondes chacune. Sans ce plafond, une seule tâche bloquée peut maintenir une exécution ouverte pendant des heures.
💡 Un compte peut exécuter 5 prédictions simultanément. Pour les lots, placez un nœud Loop Over Items devant l’agent avec une taille de lot de 2 ou 3, afin que la cinquième requête n’arrive jamais dans une file saturée.
Des prompts que l’agent rédige mieux
Laisser l’agent développer les demandes courtes
Les gens tapent cinq mots. Les modèles d’images en veulent cinquante. Le message système comble cet écart : l’agent transforme une demande courte en un brief photographique complet.
Utilisateur : un marché de rue sous la pluie au crépuscule
Prompt de l’agent :Plan large d’un marché de rue au crépuscule après la pluie, marchands sous des auvents de toile rayée, pavés mouillés reflétant des ampoules au tungstène chaudes, passants munis de parapluies en second plan, brume douce venant de la gauche, objectif 35 mm à f/2, grain de film fin, palette Kodak Portra 400, tissage des tissus visible et gouttes d’eau sur les caisses de fruits.
Placez ces règles dans le message système, et l’agent les applique à chaque fois :
Précisez la direction de la lumière, par exemple une lumière douce venant d’une fenêtre à gauche.
Précisez l’objectif, par exemple 35 mm f/2 ou 85 mm f/1,8.
Décrivez les textures des surfaces : tissage des tissus, veinure du bois, pierre mouillée.
Gardez un seul sujet par prompt.
Évitez le texte dans les images, ou limitez-le à un ou deux mots.
Rédigez-les comme des règles (« précisez toujours l’objectif ») et non comme des souhaits (« essayez de mentionner l’objectif »). Les agents suivent bien plus souvent les règles que les suggestions.
Utiliser Flux 2 Pro
Avant d’intégrer une règle de style dans le message système, testez-la à la main sur PicassoIA :
Collez un prompt développé que l’agent a rédigé lors d’un test précédent.
Choisissez 16:9 pour les scènes larges, 1:1 pour les vignettes produit ou 9:16 pour les stories.
Lancez la génération et comparez le résultat avec l’image que vous avez en tête.
Modifiez un seul détail à la fois, la lumière d’abord et l’objectif ensuite, puis relancez.
Lorsque le résultat correspond, recopiez la formulation gagnante dans le message système.
💡 Ne changez qu’une variable à chaque essai. Si vous réécrivez tout le prompt à chaque fois, vous ne saurez jamais quelle modification a aidé. Pour un texte court et lisible à l’intérieur d’une scène, passez le même prompt par GPT Image 2 et comparez.
Là où le flux de travail se rend utile
Des photos de produits à la demande
Un commerçant tape « tasse en céramique sur du lin, lumière du matin » et reçoit en retour une photo de fiche produit en brouillon, au sein d’une même conversation. Ajoutez un nœud Google Sheets après l’agent pour ajouter le nom du produit, le prompt et l’URL dans une feuille. L’équipe dispose alors d’un journal de chaque rendu, et personne n’a besoin de fouiller l’historique du chat pour retrouver le bon.
Comme la mémoire est activée, le commerçant peut dire « même tasse, table en bois plus sombre », et l’agent réutilise la formulation précédente en ne changeant qu’un élément. Cette capacité à enchaîner les demandes distingue un agent d’un formulaire.
Lots pour le blog et les réseaux sociaux
Remplacez le Chat Trigger par un Schedule Trigger. Lisez une colonne de sujets dans une feuille, faites passer chaque ligne par Loop Over Items vers l’agent, et inscrivez l’URL renvoyée à côté du sujet. Une semaine d’images principales arrive alors pendant que vous vaquez à autre chose.
Ajoutez une validation humaine avant toute publication. Envoyez les URL sur Slack ou par e-mail et attendez un pouce levé. Les agents sont rapides, mais une personne repère encore le doigt en trop ou la mauvaise saison.
Corriger les échecs courants
Symptôme
Cause probable
Correction
L’agent répond sans appeler l’outil
Description de l’outil trop vague
Commencez la description par un verbe et nommez chaque entrée
L’outil s’exécute mais la réponse ne contient aucune URL
Nom de champ de sortie incorrect
Vérifiez que le nœud Edit Fields produit imageUrl et testez le sous-flux seul
L’interrogation ne se termine jamais
Aucune branche d’échec ni plafond d’interrogation
Acheminez failed vers Stop and Error et limitez la boucle à 40 interrogations
Réponse 401
En-tête incorrect ou jeton expiré
Recréez les identifiants Header Auth et conservez le préfixe Bearer
Erreurs 429 ou de file d’attente
Plus de 5 tâches simultanées
Utilisez Loop Over Items avec une taille de lot de 2 ou 3
Des images paraissent caricaturales
Le prompt manque de détails photographiques
Ajoutez au message système des règles sur l’objectif, la direction de la lumière et les textures
L’agent rappelle l’outil encore et encore
Max Iterations trop élevé
Réglez-le sur 6 et conservez la règle d’une seule nouvelle tentative
💡 Lorsque quelque chose casse, exécutez le sous-flux seul avec des données d’entrée épinglées. S’il fonctionne seul, le défaut se situe dans les instructions de l’agent, et non dans les nœuds HTTP.
Essayez dès aujourd’hui sur PicassoIA
Construisez d’abord la version la plus simple : un Chat Trigger, un AI Agent, un outil d’image. Dix minutes de montage vous donnent une zone de chat qui renvoie des photographies, et chaque évolution ensuite ne demande qu’un nœud de plus.
Ouvrez Flux 2 Pro, GPT Image 2 ou Nano Banana Pro dans votre navigateur et rédigez votre premier prompt à la main. Choisissez un cerveau parmi les grands modèles de langage ci-dessus, récupérez un jeton API sur la page de l’API PicassoIA, et laissez l’agent rédiger les cent prochains prompts à votre place. Créez vos propres images sur PicassoIA, puis renvoyez le meilleur prompt dans votre flux de travail.