Génération d'images de nano bananes

Décrivez le problème/l’erreur/la question

Mon objectif est la génération d’images Gemini. J’ai une image d’entrée et 6 invites d’entrée et je génère une image. Je voudrais générer 6 images de variation avec mes invites. Pour la première image d’entrée, c’est OK, mais pour la deuxième image d’entrée, l’automatisation ne fonctionne pas.
Processus :

  1. Créer un dossier
  2. Récupérer la 1ère image d’entrée et la première invite
  3. Générer l’image IA et l’enregistrer dans le dossier créé.
  4. Boucler sur 6 invites différentes pour la première image d’entrée.
  5. Boucler sur tous les scénarios pour la 2ème image d’entrée.
    Problème : L’automatisation ne crée que le dossier pour la deuxième image et ne génère pas d’image IA.

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre workflow


(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le workflow.)

Partagez la sortie renvoyée par le dernier nœud

image

Votre symptôme (fonctionne pour l'image 1, l'image 2 n'obtient qu'un dossier et aucune génération) est le problème classique de Loop Over Items imbriquée. Ce n'est presque jamais le nœud Gemini.

Pourquoi cela se produit

La Loop Over Items (SplitInBatches) de n8n conserve son compteur de batch à l'intérieur du nœud. Votre boucle interne sur les 6 prompts se termine pour l'image 1 et reste dans l'état « done ». À la deuxième itération externe, votre boucle d'images lui envoie l'image 2, mais la boucle interne croit toujours qu'elle a déjà terminé, donc elle déclenche immédiatement sa sortie done et ignore les nœuds Gemini et upload. Tout ce qui se trouve en amont de la boucle interne continue de s'exécuter, ce qui explique exactement pourquoi l'image 2 n'obtient que son étape Create Concept Folder et rien d'autre.

Le correctif à un nœud

Ouvrez votre nœud interne Loop Over Prompts, allez à Options, et activez Reset. Cela force la boucle interne à se réinitialiser chaque fois qu'une nouvelle image arrive de la boucle externe au lieu de rester « done ». C'est le correctif pour la grande majorité des rapports « nested loop runs once ».

Deux choses méritent une vérification rapide pendant que vous êtes là :

  • Confirmez que Build Prompts émet réellement 6 éléments par image. Si une exécution affiche un nombre total d'« items » inférieur à celui que vous attendez, la boucle a moins de choses à itérer que vous ne le pensez.
  • La branche done de votre boucle interne devrait revenir à la boucle externe d'images, ce qu'elle fait dans votre capture d'écran, donc le câblage lui-même est correct. Reset est la pièce manquante.

À considérer : supprimer complètement la boucle interne

Les boucles SplitInBatches imbriquées sont le modèle le plus fragile de n8n, et vos appels Gemini s'exécutent strictement un à la fois, donc 2 images à 6 prompts chacune font 12 générations séquentielles. Puisque vous êtes sur nano-banana (Gemini 3.1 Flash Image), vous pouvez distribuer les 6 prompts comme 6 éléments et les exécuter en parallèle avec une API d'image asynchrone. J'utilise KIE.AI, qui expose nano-banana comme un job submit-then-poll :

  • Build 6 Prompts (un nœud Code) émet 6 éléments.
  • Submit Task est un seul nœud HTTP sans boucle autour. Parce qu'un nœud HTTP s'exécute une fois par élément d'entrée, les 6 jobs se déclenchent quasi-simultanément et chacun retourne un taskId.
  • Une courte étape Wait then Poll collecte chaque résultat. Les éléments s'acheminent d'eux-mêmes : un terminé télécharge et enregistre immédiatement, un en attente attend et ré-interroge, donc les jobs rapides n'attendent pas les lents.

Il n'y a pas de Loop Over Items interne n'importe où, donc il n'y a pas d'état reset à mal gérer, et les 6 se rendent tous à la fois au lieu d'un à la fois.

J'ai mis un workflow de référence épuré ci-dessous (cliquez sur </> dans le compositeur et il s'importe directement). La boucle d'image externe reste ; la boucle de prompt interne a disparu. Remplacez les nœuds Google Drive par l'endroit où se trouvent vos images, déposez votre credential bearer KIE.AI sur les deux nœuds HTTP, et modifiez les six chaînes de scénario dans Build 6 Prompts. Il y a également une note collante montrant la modification d'une ligne pour exécuter image-to-image (variations de l'image source) au lieu de text-to-image.

Chaque approche vous répare : Reset si vous voulez conserver votre conception actuelle, ou le fan-out asynchrone si vous le voulez plus rapide et plus difficile à casser à mesure que vous ajoutez plus d'images d'entrée.

J'espère que cela vous aide,
Michael

1 « J'aime »

Bonjour @Trilogy_Elektronik
Mets la partie prompt de ceci dans un sous-workflow : la boucle d’images reste dans le workflow principal, et les 6 prompts, le nœud Gemini et l’upload Drive passent derrière un nœud Execute Sub-workflow qui s’exécute une fois par image. Chaque appel est sa propre exécution, donc la boucle prompt recommence propre pour l’image 2 et chaque image après celle-ci, et les données par image sont libérées après chaque appel au lieu de s’accumuler dans une seule longue exécution.
Sélectionne ces nœuds sur le canevas, fais un clic droit sur le fond et sélectionne « Convert to sub-workflow » (n8n 1.97.0+), les expressions se rébranchent automatiquement.
Vois ceci :