Prompt Cycler : exécuter une liste de prompts dans ComfyUI, un par image

Mon custom node gratuit transforme chaque ligne d'une zone de texte en prompt à part entière et passe au suivant à chaque exécution. Comment l'installer, le connecter, afficher le prompt courant et ajouter un sujet fixe à chaque ligne avec un node Concatenate.

Anton Tenitsky13 octobre 20264 min de lectureVersion vidéo plus bas

Ce guide a été traduit de l'anglais par IA et peut contenir des erreurs. Lire l'original.

Le node Prompt Cycler dans ComfyUI avec une liste de prompts, mode de cycle sur sequential, à côté d'une image générée de formations rocheuses du désert au coucher du soleil

Parcourir une liste de prompts était étonnamment pénible dans ComfyUI, j’ai donc construit mon propre node. Dans le Prompt Cycler, chaque ligne de texte est un prompt à part entière. Lancez le workflow et vous obtenez le suivant. Mettez en file quelques centaines d’exécutions et vous obtenez quelques centaines d’images différentes.

Il fonctionne avec n’importe quel modèle, car tout ce qu’il fait est de sortir du texte. Je l’utilise généralement avec Flux ; ici, je le démontre avec le Stable Diffusion 1.5 de base, un modèle très basique, les images ne sont donc pas terribles.

En bref

  • Où le trouver : tenitsky/tenitsky-prompt-cycler-simple sur GitHub, gratuit. Décompressez ou clonez dans ComfyUI/custom_nodes, redémarrez.
  • Utilisation : un prompt par ligne ; sa sortie prompt va dans CLIP Text Encode.
  • Modes : sequential ou random ; reset_cycle recommence à la première ligne.
  • Extras : Display Any de rgthree affiche le prompt courant ; un node Concatenate ajoute un sujet fixe à chaque ligne.

Installation

Le node n’est pas encore dans le ComfyUI Manager. Installez-le depuis GitHub, de l’une ou l’autre façon :

  • ZIP : cliquez sur Code → Download ZIP et décompressez-le dans votre dossier ComfyUI/custom_nodes.
  • git :
    cd ComfyUI/custom_nodes
    git clone https://github.com/tenitsky/tenitsky-prompt-cycler-simple.git

Si votre ComfyUI est à jour, vous n’avez pas besoin de lancer pip install -r requirements.txt. Redémarrez ComfyUI.

La page du dépôt GitHub avec le menu Code ouvert et Download ZIP mis en évidence
Code → Download ZIP, puis décompressez dans custom_nodes.

Nouveau sur ComfyUI ? Commencez par les bases des nodes ComfyUI et le texte vers image.

Le connecter

  1. Double-cliquez sur le canevas et cherchez Prompt Cycler (listé sous le nom Tenitsky Prompt Cycler Simple). Il est fourni avec des prompts d’exemple préchargés.
  2. Connectez sa sortie prompt à l’entrée de texte d’un node CLIP Text Encode, et celui-ci à l’entrée positive de votre KSampler comme d’habitude.
  3. Lancez. Chaque exécution prend la ligne suivante.

Ses réglages :

Réglage Ce qu’il fait
seed / control after generate Laissez sur increment pour que chaque exécution avance
cycle_mode sequential parcourt la liste dans l’ordre ; random choisit une ligne au hasard
reset_cycle Recommence à la première ligne
Zone de texte Vos prompts, un par ligne, autant que vous voulez

Le node sort aussi cycle_index, le numéro de la ligne courante.

Voir le prompt courant

J’aime ajouter Display Any de rgthree et lui connecter le prompt, pour voir quelle ligne est en cours.

Un node Display Any (rgthree) affichant le texte : cat posing in front a space station orbiting a distant planet
Display Any montre le prompt utilisé. Ici, l'espace manquant est le problème de délimiteur décrit plus bas.

Ajouter le même sujet à chaque prompt

Pour mettre un personnage précis dans chaque scène, ajoutez un node Concatenate :

  1. Saisissez-y le sujet, par exemple cat posing in front.
  2. Connectez le prompt du cycler comme string_b.
  3. Connectez la sortie STRING à l’encodeur de texte et à Display Any.
  4. Réglez le delimiter sur un espace. Je l’avais oublié au début et j’ai obtenu « in fronta space station ».
Un node Concatenate avec cat posing in front comme première chaîne, le cycler connecté comme string_b et un champ de délimiteur vide
Concatenate place le sujet fixe devant chaque ligne. Réglez le délimiteur sur un espace.

Maintenant le chat apparaît dans chaque image, quelle que soit la scène.

Une image SD 1.5 d'un chat noir et blanc assis sur un rocher devant un lac de montagne, avec la liste de prompts à gauche
« Cat posing in front » plus la ligne suivante de la liste : un chat à un lac de montagne. SD 1.5 de base, la qualité est donc basique.

Combinez la concaténation avec une longue liste et vous pouvez exécuter des milliers de prompts.

Pourquoi je l’ai construit

Cela m’a sauvé la vie. Avant, j’utilisais toute une chaîne de nodes pour le même travail : fichiers texte, listes de prompts, un node concatenate séparé avec plusieurs entrées, et un aperçu. À l’époque, je ne savais pas comment le compresser et le simplifier.

Un ancien workflow par lots SDXL avec Text Concatenate, des nodes de chaînes, un node Bind de l'Inspire pack et des notes
Ce que j'utilisais avant : beaucoup de nodes pour ce que fait maintenant un seul node.

Pour un moyen peu coûteux d’exécuter de grandes listes de prompts, voir des milliers d’images IA à moins de 0,001 $ pièce. Pour l’approche antérieure, à plusieurs nodes, appliquée à des rendus 3D, voir listes de prompts : un rendu 3D dans de nombreux styles artistiques.

Si vous avez des idées pour d’autres nodes, laissez-les dans les commentaires de la vidéo. S’ils sont utiles, je pourrai les construire et les partager.

Voir la version vidéo (3:17)

Tout ce qui précède est aussi dans la vidéo, si vous préférez suivre à l’écran. La vidéo est en anglais.

Questions fréquentes

Comment exécuter un prompt différent pour chaque image dans ComfyUI ?

Mettez un prompt par ligne dans le node Prompt Cycler et connectez sa sortie prompt à un node CLIP Text Encode. Chaque exécution utilise la ligne suivante ; mettez en file autant d'exécutions que vous avez de lignes.

Puis-je ajouter le même sujet à chaque prompt de la liste ?

Oui. Mettez le sujet dans un node Concatenate, connectez le prompt du cycler comme l'autre chaîne, réglez un espace comme délimiteur et envoyez le résultat à l'encodeur de texte.

Le Prompt Cycler est-il dans le ComfyUI Manager ?

Pas encore. Installez-le depuis GitHub, soit en téléchargeant le ZIP dans custom_nodes, soit avec git clone.

Fonctionne-t-il avec Flux ou SDXL ?

Il fonctionne avec n'importe quel modèle, car il ne sort que du texte. Je l'utilise généralement avec Flux ; la démonstration utilise SD 1.5.

Anton Tenitsky est artiste 3D avec plus de 15 ans d'expérience en infographie, qui a travaillé avec Nickelodeon, Gameloft, Marvel Rivals et de nombreux autres clients. En savoir plus sur moi

Guides associés