Prompt Cycler: eine Liste von Prompts in ComfyUI abarbeiten, einen pro Bild

Mein kostenloser Custom Node macht jede Zeile eines Textfelds zu einem eigenen Prompt und geht bei jedem Durchlauf zum nächsten. Wie du ihn installierst, verbindest, den aktuellen Prompt anzeigst und mit einem Concatenate-Node jeder Zeile ein festes Motiv hinzufügst.

Anton Tenitsky13. Oktober 20263 Min. LesezeitVideoversion unten

Diese Anleitung wurde mit KI aus dem Englischen übersetzt und kann Fehler enthalten. Zum Original.

Der Prompt-Cycler-Node in ComfyUI mit einer Liste von Prompts, Zyklusmodus sequential, neben einem erzeugten Bild von Wüstenfelsformationen bei Sonnenuntergang

Eine Liste von Prompts durchzugehen war in ComfyUI früher erstaunlich umständlich, also habe ich meinen eigenen Node gebaut. Im Prompt Cycler ist jede Textzeile ein eigener Prompt. Führe den Workflow aus, und du bekommst den nächsten. Reihe ein paar hundert Durchläufe ein, und du bekommst ein paar hundert verschiedene Bilder.

Er funktioniert mit jedem Modell, weil er nichts anderes tut, als Text auszugeben. Ich nutze ihn meist mit Flux; hier führe ich ihn mit reinem Stable Diffusion 1.5 vor, einem sehr einfachen Modell, daher sind die Bilder nicht toll.

Kurz gefasst

  • Beschaffen: tenitsky/tenitsky-prompt-cycler-simple auf GitHub, kostenlos. Entpacke oder klone nach ComfyUI/custom_nodes, starte neu.
  • Nutzen: ein Prompt pro Zeile; sein Ausgang prompt geht in CLIP Text Encode.
  • Modi: sequential oder random; reset_cycle beginnt wieder bei der ersten Zeile.
  • Extras: Display Any von rgthree zeigt den aktuellen Prompt; ein Concatenate-Node fügt jeder Zeile ein festes Motiv hinzu.

Installation

Der Node ist noch nicht im ComfyUI Manager. Installiere ihn von GitHub, auf eine der beiden Arten:

  • ZIP: Klicke auf Code → Download ZIP und entpacke es in deinen Ordner ComfyUI/custom_nodes.
  • git:
    cd ComfyUI/custom_nodes
    git clone https://github.com/tenitsky/tenitsky-prompt-cycler-simple.git

Wenn dein ComfyUI aktuell ist, musst du pip install -r requirements.txt nicht ausführen. Starte ComfyUI neu.

Die GitHub-Repository-Seite mit geöffnetem Menü Code und hervorgehobenem Download ZIP
Code → Download ZIP, dann in custom_nodes entpacken.

Neu bei ComfyUI? Beginne mit ComfyUI-Node-Grundlagen und Text-zu-Bild.

Verbinden

  1. Doppelklicke auf die Arbeitsfläche und suche nach Prompt Cycler (aufgeführt als Tenitsky Prompt Cycler Simple). Er kommt mit vorgeladenen Beispiel-Prompts.
  2. Verbinde seinen Ausgang prompt mit dem Text-Eingang eines CLIP Text Encode-Nodes, und diesen wie gewohnt mit dem positiven Eingang deines KSampler.
  3. Führe aus. Jeder Durchlauf nimmt die nächste Zeile.

Seine Einstellungen:

Einstellung Was sie tut
seed / control after generate Lass es auf increment, damit jeder Durchlauf weitergeht
cycle_mode sequential geht die Liste der Reihe nach durch; random wählt zufällig eine Zeile
reset_cycle Beginnt wieder bei der ersten Zeile
Textfeld Deine Prompts, einer pro Zeile, so viele du willst

Der Node gibt außerdem cycle_index aus, die Nummer der aktuellen Zeile.

Den aktuellen Prompt sehen

Ich füge gern Display Any von rgthree hinzu und verbinde den Prompt damit, um zu sehen, welche Zeile läuft.

Ein Display-Any-Node (rgthree), der den Text zeigt: cat posing in front a space station orbiting a distant planet
Display Any zeigt den verwendeten Prompt. Das fehlende Leerzeichen ist hier das unten beschriebene Trennzeichenproblem.

Jedem Prompt dasselbe Motiv hinzufügen

Um eine bestimmte Figur in jede Szene zu setzen, füge einen Concatenate-Node hinzu:

  1. Tippe das Motiv hinein, zum Beispiel cat posing in front.
  2. Verbinde den Prompt des Cyclers als string_b.
  3. Verbinde den Ausgang STRING mit dem Text-Encoder und mit Display Any.
  4. Setze das delimiter auf ein Leerzeichen. Ich habe es anfangs vergessen und „in fronta space station“ bekommen.
Ein Concatenate-Node mit cat posing in front als erstem String, dem Cycler als string_b verbunden und einem leeren Trennzeichenfeld
Concatenate setzt das feste Motiv vor jede Zeile. Setze das Trennzeichen auf ein Leerzeichen.

Jetzt erscheint die Katze in jedem Bild, egal welche Szene.

Ein SD-1.5-Bild einer schwarz-weißen Katze auf einem Felsen vor einem Bergsee, mit der Prompt-Liste links
„Cat posing in front“ plus die nächste Zeile aus der Liste: eine Katze an einem Bergsee. Reines SD 1.5, daher ist die Qualität einfach.

Kombiniere Verkettung mit einer langen Liste, und du kannst Tausende Prompts ausführen.

Warum ich ihn gebaut habe

Das war für mich ein Lebensretter. Davor habe ich eine ganze Kette von Nodes für dieselbe Aufgabe genutzt: Textdateien, Prompt-Listen, einen separaten Concatenate-Node mit mehreren Eingängen und eine Vorschau. Damals wusste ich nicht, wie man das komprimiert und vereinfacht.

Ein älterer SDXL-Batch-Workflow mit Text Concatenate, String-Nodes, einem Bind-Node des Inspire Pack und Notizen
Was ich vorher nutzte: viele Nodes für das, was jetzt ein Node erledigt.

Für einen günstigen Weg, große Prompt-Listen auszuführen, siehe Tausende KI-Bilder für unter 0,001 $ pro Stück. Für den früheren Ansatz mit mehreren Nodes, angewendet auf 3D-Renders, siehe Prompt-Listen: ein 3D-Render in vielen Kunststilen.

Wenn du Ideen für andere Nodes hast, hinterlasse sie in den Kommentaren zum Video. Wenn sie nützlich wären, baue ich sie vielleicht und teile sie.

Die Videoversion ansehen (3:17)

Alles oben steht auch im Video, falls du lieber am Bildschirm mitmachst. Das Video ist auf Englisch.

Häufige Fragen

Wie führe ich in ComfyUI für jedes Bild einen anderen Prompt aus?

Lege einen Prompt pro Zeile in den Prompt-Cycler-Node und verbinde seinen Prompt-Ausgang mit einem CLIP-Text-Encode-Node. Jeder Durchlauf nutzt die nächste Zeile; reihe so viele Durchläufe ein, wie du Zeilen hast.

Kann ich allen Prompts in der Liste dasselbe Motiv hinzufügen?

Ja. Lege das Motiv in einen Concatenate-Node, verbinde den Prompt des Cyclers als den anderen String, setze ein Leerzeichen als Trennzeichen und sende das Ergebnis an den Text-Encoder.

Ist der Prompt Cycler im ComfyUI Manager?

Noch nicht. Installiere ihn von GitHub, entweder indem du das ZIP nach custom_nodes lädst oder mit git clone.

Funktioniert er mit Flux oder SDXL?

Er funktioniert mit jedem Modell, weil er nur Text ausgibt. Ich nutze ihn meist mit Flux; die Demo verwendet SD 1.5.

Anton Tenitsky ist 3D-Artist mit mehr als 15 Jahren Erfahrung in der Computergrafik, tätig für Nickelodeon, Gameloft, Marvel Rivals und viele weitere Kunden. Mehr über mich

Ähnliche Anleitungen